--- rxvt-unicode/src/main.C 2008/01/04 21:25:57 1.296 +++ rxvt-unicode/src/main.C 2008/02/19 10:47:03 1.307 @@ -13,7 +13,7 @@ * Copyright (c) 1997,1998 Oezguer Kesim * Copyright (c) 1998-2001 Geoff Wing * - extensive modifications - * Copyright (c) 2003-2007 Marc Lehmann + * Copyright (c) 2003-2008 Marc Lehmann * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -174,9 +174,7 @@ #if ENABLE_TRANSPARENCY || ENABLE_PERL rootwin_ev.set (this), #endif -#ifdef HAVE_SCROLLBARS scrollbar_ev.set (this), -#endif #ifdef USE_XIM im_ev.set (this), #endif @@ -228,6 +226,10 @@ #endif delete fontset[0]; +#ifdef HAVE_BG_PIXMAP + bgPixmap.destroy (); +#endif + if (display) { selection_clear (); @@ -276,13 +278,10 @@ } clear (); - } -#ifdef HAVE_BG_PIXMAP - bgPixmap.destroy (); -#endif - display->flush (); /* ideally .put should do this */ - displays.put (display); + display->flush (); /* ideally .put should do this */ + displays.put (display); + } scr_release (); @@ -338,9 +337,7 @@ #if USE_XIM im_ev.stop (display); #endif -#if HAVE_SCROLLBARS scrollbar_ev.stop (display); -#endif #if ENABLE_TRANSPARENCY || ENABLE_PERL rootwin_ev.stop (display); #endif @@ -469,122 +466,6 @@ _exit (EXIT_FAILURE); } -/*----------------------------------------------------------------------*/ -void -rxvt_term::init (int argc, const char *const *argv, stringvec *envv) -{ - this->envv = envv; - - SET_R (this); - set_locale (""); - set_environ (envv); // few things in X do not call setlocale :( - - init_vars (); - - init_secondary (); - - const char **cmd_argv = init_resources (argc, argv); - -#ifdef KEYSYM_RESOURCE - keyboard->register_done (); -#endif - -#ifdef HAVE_SCROLLBARS - if (option (Opt_scrollBar)) - scrollBar.setIdle (); /* set existence for size calculations */ -#endif - - pty = ptytty::create (); - - create_windows (argc, argv); - - init_xlocale (); - - scr_reset (); // initialize screen - -#if 0 - XSynchronize (dpy, True); -#endif - -#ifdef HAVE_SCROLLBARS - if (option (Opt_scrollBar)) - resize_scrollbar (); /* create and map scrollbar */ -#endif -#ifdef HAVE_BG_PIXMAP - { - bgPixmap.set_target (this); - -#ifdef ENABLE_TRANSPARENCY - if (option (Opt_transparent)) - { - bgPixmap.set_transparent (); - -#ifdef HAVE_AFTERIMAGE - if (rs [Rs_blurradius]) - bgPixmap.set_blur_radius (rs [Rs_blurradius]); -#endif - if (ISSET_PIXCOLOR (Color_tint)) - bgPixmap.set_tint (pix_colors_focused [Color_tint]); - - if (rs [Rs_shade]) - bgPixmap.set_shade (rs [Rs_shade]); - - bgPixmap.set_root_pixmap (); - XSelectInput (dpy, display->root, PropertyChangeMask); - rootwin_ev.start (display, display->root); - } -#endif - -#ifdef BG_IMAGE_FROM_FILE - if (rs[Rs_backgroundPixmap]) - { - const char *p = rs[Rs_backgroundPixmap]; - - if ((p = strchr (p, ';')) != 0) - { - p++; - bgPixmap.set_geometry (p); - } - else - bgPixmap.set_defaultGeometry (); - - if (bgPixmap.set_file (rs[Rs_backgroundPixmap])) - if (!bgPixmap.window_position_sensitive ()) - update_background (); - } -#endif - } -#endif - -#if ENABLE_PERL - rootwin_ev.start (display, display->root); -#endif - - set_colorfgbg (); - - init_command (cmd_argv); - - free (cmd_argv); - - if (pty->pty >= 0) - pty_ev.start (pty->pty, ev::READ); - - HOOK_INVOKE ((this, HOOK_START, DT_END)); - -#if ENABLE_XEMBED - if (rs[Rs_embed]) - { - long info[2] = { 0, XEMBED_MAPPED }; - - XChangeProperty (dpy, parent[0], xa[XA_XEMBED_INFO], xa[XA_XEMBED_INFO], - 32, PropModeReplace, (unsigned char *)&info, 2); - } -#endif - - XMapWindow (dpy, vt); - XMapWindow (dpy, parent[0]); -} - static struct sig_handlers { ev::sig sw_term, sw_int; @@ -646,7 +527,7 @@ rxvt_term::window_calc (unsigned int newwidth, unsigned int newheight) { short recalc_x, recalc_y; - int x, y, sb_w, flags; + int x, y, flags; unsigned int w, h; unsigned int max_width, max_height; @@ -713,12 +594,11 @@ szHint.base_width = szHint.base_height = 2 * int_bwidth; - sb_w = 0; window_vt_x = window_vt_y = int_bwidth; if (scrollBar.state) { - sb_w = scrollbar_TotalWidth (); + int sb_w = scrollBar.total_width (); szHint.base_width += sb_w; if (!option (Opt_scrollBar_right)) @@ -752,9 +632,6 @@ szHint.height = szHint.base_height + height; } - if (scrollBar.state && option (Opt_scrollBar_right)) - window_sb_x = szHint.width - sb_w; - if (recalc_x) szHint.x += DisplayWidth (dpy, display->screen) - szHint.width - 2 * ext_bwidth; @@ -922,7 +799,6 @@ { #ifdef XTERM_COLOR_CHANGE rxvt_color xcol; - int i; if (color == NULL || *color == '\0') return; @@ -934,7 +810,7 @@ /* handle color aliases */ if (isdigit (*color)) { - i = atoi (color); + int i = atoi (color); if (i >= 8 && i <= 15) { @@ -1104,12 +980,7 @@ if (fix_screen || newwidth != old_width || newheight != old_height) { if (scrollBar.state) - { - XMoveResizeWindow (dpy, scrollBar.win, - window_sb_x, 0, - scrollbar_TotalWidth (), szHint.height); - resize_scrollbar (); - } + scrollBar.resize (); XMoveResizeWindow (dpy, vt, window_vt_x, window_vt_y, @@ -1720,7 +1591,7 @@ ev_tstamp to_wait = 0.5 - (ev::now () - bgPixmap.valid_since); - if ( to_wait <= 0. ) + if (to_wait <= 0.) bgPixmap.render (); else update_background_ev.start (to_wait);