--- rxvt-unicode/src/screen.C 2006/11/02 17:23:50 1.267 +++ rxvt-unicode/src/screen.C 2007/08/13 22:41:34 1.274 @@ -28,8 +28,6 @@ #include "rxvt.h" /* NECESSARY */ #include "rxvtperl.h" /* NECESSARY */ -#include /* get the typedef for CARD32 */ - #include #include "salloc.C" // HACK, should be a seperate compile! @@ -49,7 +47,7 @@ * GENERAL SCREEN AND SELECTION UPDATE ROUTINES * * ------------------------------------------------------------------------- */ #define ZERO_SCROLLBACK() \ - if (OPTION (Opt_scrollTtyOutput)) \ + if (option (Opt_scrollTtyOutput)) \ view_start = 0 #define CLEAR_SELECTION() \ selection.beg.row = selection.beg.col \ @@ -163,6 +161,7 @@ scr_overlay_off (); #endif + rvideo_mode = false; view_start = 0; num_scr = 0; @@ -239,7 +238,6 @@ selection.op = SELECTION_CLEAR; selection.screen = PRIMARY; selection.clicks = 0; - rvideo_state = rvideo_mode = false; } else { @@ -512,7 +510,7 @@ void rxvt_term::scr_swap_screen () { - if (!OPTION (Opt_secondaryScreen)) + if (!option (Opt_secondaryScreen)) return; for (int i = prev_nrow; i--; ) @@ -544,7 +542,7 @@ int i = current_screen; current_screen = scrn; scrn = i; #if NSCREENS - if (OPTION (Opt_secondaryScreen)) + if (option (Opt_secondaryScreen)) { num_scr = 0; @@ -557,7 +555,7 @@ } else #endif - if (OPTION (Opt_secondaryScroll)) + if (option (Opt_secondaryScroll)) scr_scroll_text (0, prev_nrow - 1, prev_nrow); } @@ -626,7 +624,7 @@ if (count > 0 && row1 == 0 - && (current_screen == PRIMARY || OPTION (Opt_secondaryScroll))) + && (current_screen == PRIMARY || option (Opt_secondaryScroll))) { top_row = max (top_row - count, -saveLines); @@ -686,7 +684,7 @@ } // finally move the view window, if desired - if (OPTION (Opt_scrollWithBuffer) + if (option (Opt_scrollWithBuffer) && view_start != 0 && view_start != -saveLines) scr_page (UP, count); @@ -1073,7 +1071,7 @@ // store horizontal tab commands as characters inside the text // buffer so they can be selected and pasted. - if (ht && OPTION (Opt_pastableTabs)) + if (ht && option (Opt_pastableTabs)) { base_rend = SET_FONT (base_rend, 0); @@ -1650,12 +1648,9 @@ rvideo_state = on; ::swap (pix_colors[Color_fg], pix_colors[Color_bg]); -#if XPM_BACKGROUND +#ifdef HAVE_BG_PIXMAP if (bgPixmap.pixmap == None) #endif -#if TRANSPARENT - if (!OPTION (Opt_transparent) || am_transparent == 0) -#endif XSetWindowBackground (dpy, vt, pix_colors[Color_bg]); XGCValues gcvalue; @@ -1888,12 +1883,25 @@ # ifndef NO_MAPALERT # ifdef MAPALERT_OPTION - if (OPTION (Opt_mapAlert)) + if (option (Opt_mapAlert)) # endif XMapWindow (dpy, parent[0]); # endif +# if ENABLE_FRILLS + if (option (Opt_urgentOnBell)) + { + XWMHints *h; + + h = XGetWMHints(dpy, parent[0]); + if (h != NULL) + { + h->flags |= XUrgencyHint; + XSetWMHints(dpy, parent[0], h); + } + } +# endif - if (OPTION (Opt_visualBell)) + if (option (Opt_visualBell)) { rvideo_bell = true; scr_rvideo_mode (rvideo_mode); @@ -1903,7 +1911,6 @@ } else XBell (dpy, 0); - #endif } @@ -1994,12 +2001,9 @@ have_bg = 0; refresh_count = 0; -#if XPM_BACKGROUND +#ifdef HAVE_BG_PIXMAP have_bg |= bgPixmap.pixmap != None; #endif -#if TRANSPARENT - have_bg |= OPTION (Opt_transparent) && am_transparent; -#endif ocrow = oldcursor.row; /* is there an old outline cursor on screen? */ /* @@ -2053,7 +2057,7 @@ if (showcursor && focus) { - if (OPTION (Opt_cursorUnderline)) + if (option (Opt_cursorUnderline)) *crp ^= RS_Uline; else { @@ -2396,7 +2400,7 @@ { if (focus) { - if (OPTION (Opt_cursorUnderline)) + if (option (Opt_cursorUnderline)) *crp ^= RS_Uline; else { @@ -2470,28 +2474,22 @@ void rxvt_term::scr_recolour () NOTHROW { - if (1 -#if TRANSPARENT - && !am_transparent -#endif -#if XPM_BACKGROUND - && !bgPixmap.pixmap -#endif - ) - { - XSetWindowBackground (dpy, parent[0], pix_colors[Color_border]); - XClearWindow (dpy, parent[0]); - XSetWindowBackground (dpy, vt, pix_colors[Color_bg]); -#if HAVE_SCROLLBARS - if (scrollBar.win) - { - XSetWindowBackground (dpy, scrollBar.win, pix_colors[Color_border]); - scrollBar.setIdle (); - scrollbar_show (0); - } +#ifdef HAVE_BG_PIXMAP + bgPixmap.apply (); +#else + XSetWindowBackground (dpy, parent[0], pix_colors[Color_border]); + XClearWindow (dpy, parent[0]); + XSetWindowBackground (dpy, vt, pix_colors[Color_bg]); +# if HAVE_SCROLLBARS + if (scrollBar.win) + { + XSetWindowBackground (dpy, scrollBar.win, pix_colors[Color_border]); + scrollBar.setIdle (); + scrollbar_show (0); + } +# endif #endif - } - + scr_clear (); scr_touch (true); want_refresh = 1; @@ -3416,7 +3414,7 @@ else if (selection.clicks == 3) { #if ENABLE_FRILLS - if (OPTION (Opt_tripleclickwords)) + if (option (Opt_tripleclickwords)) { selection_delimit_word (UP, &selection.beg, &selection.beg);