--- rxvt-unicode/src/command.C 2005/10/25 19:04:45 1.207 +++ rxvt-unicode/src/command.C 2005/12/18 00:59:42 1.208 @@ -137,18 +137,19 @@ x = Pixel2Col (x); y = Pixel2Row (y); - if (x < 0 || x >= TermWin.ncol - || y < 0 || y >= TermWin.nrow) + if (x < 0 || x >= ncol + || y < 0 || y >= nrow) return; for (;;) { - text_t t = screen.text[y + TermWin.saveLines - TermWin.view_start][x]; + const line_t &l = save[y + saveLines - view_start]; + + text_t t = l.t[x]; if (t != NOCHAR || !x) { - iso14755_51 (screen.text[y + TermWin.saveLines - TermWin.view_start][x], - screen.rend[y + TermWin.saveLines - TermWin.view_start][x]); + iso14755_51 (l.t[x], l.r[x]); iso14755buf = ISO_14755_54; break; } @@ -368,7 +369,7 @@ return; #endif - if (TermWin.saveLines) + if (saveLines) { #ifdef UNSHIFTED_SCROLLKEYS if (!ctrl && !meta) @@ -379,9 +380,9 @@ int lnsppg; #ifdef PAGING_CONTEXT_LINES - lnsppg = TermWin.nrow - PAGING_CONTEXT_LINES; + lnsppg = nrow - PAGING_CONTEXT_LINES; #else - lnsppg = TermWin.nrow * 4 / 5; + lnsppg = nrow * 4 / 5; #endif if (keysym == XK_Prior) { @@ -847,9 +848,9 @@ return; /* not mapped */ if (options & Opt_scrollTtyKeypress) - if (TermWin.view_start) + if (view_start) { - TermWin.view_start = 0; + view_start = 0; want_refresh = 1; } @@ -1036,8 +1037,8 @@ || mouse_slip_wheel_speed < 0 ? scr_page (DN, -mouse_slip_wheel_speed) : scr_page (UP, mouse_slip_wheel_speed)) { - if (TermWin.view_start == TermWin.nscrolled || - TermWin.view_start == 0) + if (view_start == nscrolled || + view_start == 0) mouse_slip_wheel_speed = 0; refresh_type |= SMOOTH_REFRESH; @@ -1094,7 +1095,7 @@ void rxvt_term::pointer_unblank () { - XDefineCursor (display->display, TermWin.vt, TermWin_cursor); + XDefineCursor (display->display, vt, TermWin_cursor); recolour_cursor (); #ifdef POINTER_BLANK @@ -1112,7 +1113,7 @@ if (! (options & Opt_pointerBlank)) return; - XDefineCursor (display->display, TermWin.vt, display->blank_cursor); + XDefineCursor (display->display, vt, display->blank_cursor); XFlush (display->display); hidden_pointer = 1; @@ -1424,22 +1425,15 @@ break; case ConfigureNotify: - if (ev.xconfigure.window == TermWin.parent[0]) + if (ev.xconfigure.window == parent[0]) { - int height, width; - - do - { /* Wrap lots of configures into one */ - width = ev.xconfigure.width; - height = ev.xconfigure.height; - D_SIZE ((stderr, "Size: ConfigureNotify: %4d x %4d", width, height)); - } - while (XCheckTypedWindowEvent (disp, ev.xconfigure.window, ConfigureNotify, &ev)); + while (XCheckTypedWindowEvent (disp, ev.xconfigure.window, ConfigureNotify, &ev)) + ; - if (szHint.width != width || szHint.height != height) + if (szHint.width != ev.xconfigure.width || szHint.height != ev.xconfigure.height) { seen_resize = 1; - resize_all_windows (width, height, 1); + resize_all_windows (ev.xconfigure.width, ev.xconfigure.height, 1); } #ifdef TRANSPARENT /* XXX: maybe not needed - leave in for now */ @@ -1470,14 +1464,14 @@ break; case UnmapNotify: - TermWin.mapped = 0; + mapped = 0; #ifdef TEXT_BLINK text_blink_ev.stop (); #endif break; case MapNotify: - TermWin.mapped = 1; + mapped = 1; #ifdef TEXT_BLINK text_blink_ev.start (NOW + TEXT_BLINK_INTERVAL); #endif @@ -1491,16 +1485,16 @@ case GraphicsExpose: case Expose: - if (ev.xany.window == TermWin.vt) + if (ev.xany.window == vt) { do scr_expose (ev.xexpose.x, ev.xexpose.y, ev.xexpose.width, ev.xexpose.height, False); - while (XCheckTypedWindowEvent (disp, TermWin.vt, ev.xany.type, &ev)); + while (XCheckTypedWindowEvent (disp, vt, ev.xany.type, &ev)); ev.xany.type = ev.xany.type == Expose ? GraphicsExpose : Expose; - while (XCheckTypedWindowEvent (disp, TermWin.vt, ev.xany.type, &ev)) + while (XCheckTypedWindowEvent (disp, vt, ev.xany.type, &ev)) scr_expose (ev.xexpose.x, ev.xexpose.y, ev.xexpose.width, ev.xexpose.height, False); @@ -1526,7 +1520,7 @@ #endif #ifdef TRANSPARENT - if (am_transparent && ev.xany.window == TermWin.parent[0]) + if (am_transparent && ev.xany.window == parent[0]) XClearWindow (disp, ev.xany.window); #endif } @@ -1547,14 +1541,14 @@ if ((priv_modes & PrivMode_mouse_report) && !bypass_keystate) break; - if (ev.xany.window == TermWin.vt) + if (ev.xany.window == vt) { if (ev.xbutton.state & (Button1Mask | Button3Mask)) { - while (XCheckTypedWindowEvent (disp, TermWin.vt, MotionNotify, &ev)) + while (XCheckTypedWindowEvent (disp, vt, MotionNotify, &ev)) ; - XQueryPointer (disp, TermWin.vt, + XQueryPointer (disp, vt, &unused_root, &unused_child, &unused_root_x, &unused_root_y, &ev.xbutton.x, &ev.xbutton.y, @@ -1576,8 +1570,8 @@ ev.xbutton.state & Button3Mask ? 2 : 0); #ifdef SELECTION_SCROLLING - if (ev.xbutton.y < TermWin.int_bwidth - || Pixel2Row (ev.xbutton.y) > (TermWin.nrow-1)) + if (ev.xbutton.y < int_bwidth + || Pixel2Row (ev.xbutton.y) > (nrow-1)) { int dist; @@ -1595,15 +1589,15 @@ selection_save_state = (ev.xbutton.state & Button3Mask) ? 2 : 0; /* calc number of lines to scroll */ - if (ev.xbutton.y < TermWin.int_bwidth) + if (ev.xbutton.y < int_bwidth) { scroll_selection_dir = UP; - dist = TermWin.int_bwidth - ev.xbutton.y; + dist = int_bwidth - ev.xbutton.y; } else { scroll_selection_dir = DN; - dist = ev.xbutton.y - (TermWin.int_bwidth + TermWin.height); + dist = ev.xbutton.y - (int_bwidth + height); } scroll_selection_lines = Pixel2Height (dist) @@ -1650,9 +1644,9 @@ void rxvt_term::focus_in () { - if (!TermWin.focus) + if (!focus) { - TermWin.focus = 1; + focus = 1; want_refresh = 1; #if USE_XIM if (Input_Context != NULL) @@ -1678,9 +1672,9 @@ void rxvt_term::focus_out () { - if (TermWin.focus) + if (focus) { - TermWin.focus = 0; + focus = 0; want_refresh = 1; #if ENABLE_FRILLS || ISO_14755 @@ -1747,7 +1741,7 @@ /* * VT window processing of button press */ - if (ev.window == TermWin.vt) + if (ev.window == vt) { #if ISO_14755 // 5.4 @@ -1962,15 +1956,15 @@ { if (scrollbar_above_slider (ev.y)) # ifdef RXVT_SCROLL_FULL - scr_page (UP, TermWin.nrow - 1); + scr_page (UP, nrow - 1); # else - scr_page (UP, TermWin.nrow / 4); + scr_page (UP, nrow / 4); # endif else if (scrollbar_below_slider (ev.y)) # ifdef RXVT_SCROLL_FULL - scr_page (DN, TermWin.nrow - 1); + scr_page (DN, nrow - 1); # else - scr_page (DN, TermWin.nrow / 4); + scr_page (DN, nrow / 4); # endif else scrollBar.setMotion (); @@ -1978,7 +1972,7 @@ else { scr_page ((ev.button == Button1 ? DN : UP), - (TermWin.nrow + (nrow * scrollbar_position (ev.y) / scrollbar_size ())); } @@ -2020,7 +2014,7 @@ sel_scroll_ev.stop(); #endif - if (ev.window == TermWin.vt) + if (ev.window == vt) { #if ISO_14755 // 5.4 @@ -2081,7 +2075,7 @@ if (ev.state & ShiftMask) i = 1; else if (options & Opt_mouseWheelScrollPage) - i = TermWin.nrow - 1; + i = nrow - 1; else i = 5; @@ -2089,8 +2083,8 @@ if (ev.state & ControlMask) { mouse_slip_wheel_speed += v ? -1 : 1; - if (mouse_slip_wheel_speed < -TermWin.nrow) mouse_slip_wheel_speed = -TermWin.nrow; - if (mouse_slip_wheel_speed > +TermWin.nrow) mouse_slip_wheel_speed = +TermWin.nrow; + if (mouse_slip_wheel_speed < -nrow) mouse_slip_wheel_speed = -nrow; + if (mouse_slip_wheel_speed > +nrow) mouse_slip_wheel_speed = +nrow; if (slip_wheel_ev.at < NOW) slip_wheel_ev.at = NOW + SCROLLBAR_CONTINUOUS_DELAY; @@ -2382,14 +2376,14 @@ XGetWindowAttributes (disp, display->root, &wrootattr); rootdepth = wrootattr.depth; - XGetWindowAttributes (disp, TermWin.parent[0], &wattr); + XGetWindowAttributes (disp, parent[0], &wattr); if (rootdepth != wattr.depth) { if (am_transparent) { pchanged = 1; - XSetWindowBackground (disp, TermWin.vt, pix_colors_focused[Color_bg]); + XSetWindowBackground (disp, vt, pix_colors_focused[Color_bg]); am_transparent = am_pixmap_trans = 0; } @@ -2440,7 +2434,7 @@ GC gc; XGCValues gcvalue; - XTranslateCoordinates (disp, TermWin.parent[0], display->root, + XTranslateCoordinates (disp, parent[0], display->root, 0, 0, &sx, &sy, &cr); nw = (unsigned int)szHint.width; nh = (unsigned int)szHint.height; @@ -2476,10 +2470,10 @@ if (am_transparent && am_pixmap_trans) { pchanged = 1; - if (TermWin.pixmap != None) + if (pixmap != None) { - XFreePixmap (disp, TermWin.pixmap); - TermWin.pixmap = None; + XFreePixmap (disp, pixmap); + pixmap = None; } } @@ -2487,8 +2481,8 @@ } else { - if (TermWin.pixmap != None) - XFreePixmap (disp, TermWin.pixmap); + if (pixmap != None) + XFreePixmap (disp, pixmap); #if TINTING if (ISSET_PIXCOLOR (Color_tint)) @@ -2502,15 +2496,15 @@ } #endif - TermWin.pixmap = XCreatePixmap (disp, TermWin.vt, + pixmap = XCreatePixmap (disp, vt, szHint.width, szHint.height, image->depth); - gc = XCreateGC (disp, TermWin.vt, 0UL, &gcvalue); - XPutImage (disp, TermWin.pixmap, gc, image, 0, 0, + gc = XCreateGC (disp, vt, 0UL, &gcvalue); + XPutImage (disp, pixmap, gc, image, 0, 0, nx, ny, image->width, image->height); XFreeGC (disp, gc); XDestroyImage (image); - XSetWindowBackgroundPixmap (disp, TermWin.parent[0], TermWin.pixmap); - XClearWindow (disp, TermWin.parent[0]); + XSetWindowBackgroundPixmap (disp, parent[0], pixmap); + XClearWindow (disp, parent[0]); if (!am_transparent || !am_pixmap_trans) pchanged = 1; @@ -2520,21 +2514,21 @@ } if (am_pixmap_trans) - XSetWindowBackgroundPixmap (disp, TermWin.vt, ParentRelative); + XSetWindowBackgroundPixmap (disp, vt, ParentRelative); else { unsigned int n; /* * InheritPixmap transparency */ - for (i = 1; i < (int) (sizeof (TermWin.parent) / sizeof (Window)); i++) + for (i = 1; i < (int) (sizeof (parent) / sizeof (Window)); i++) { - oldp = TermWin.parent[i]; - XQueryTree (disp, TermWin.parent[i - 1], &root, - &TermWin.parent[i], &list, &n); + oldp = parent[i]; + XQueryTree (disp, parent[i - 1], &root, + &parent[i], &list, &n); XFree (list); - if (TermWin.parent[i] == display->root) + if (parent[i] == display->root) { if (oldp != None) pchanged = 1; @@ -2542,7 +2536,7 @@ break; } - if (oldp != TermWin.parent[i]) + if (oldp != parent[i]) pchanged = 1; } @@ -2552,19 +2546,19 @@ { for (; n < (unsigned int)i; n++) { - XGetWindowAttributes (disp, TermWin.parent[n], &wattr); + XGetWindowAttributes (disp, parent[n], &wattr); if (wattr.depth != rootdepth || wattr.c_class == InputOnly) { - n = (int) (sizeof (TermWin.parent) / sizeof (Window)) + 1; + n = (int) (sizeof (parent) / sizeof (Window)) + 1; break; } } } - if (n > (int) (sizeof (TermWin.parent) / sizeof (TermWin.parent[0]))) + if (n > (int) (sizeof (parent) / sizeof (parent[0]))) { - XSetWindowBackground (disp, TermWin.parent[0], pix_colors_focused[Color_border]); - XSetWindowBackground (disp, TermWin.vt, pix_colors_focused[Color_bg]); + XSetWindowBackground (disp, parent[0], pix_colors_focused[Color_border]); + XSetWindowBackground (disp, vt, pix_colors_focused[Color_bg]); am_transparent = 0; /* XXX: also turn off Opt_transparent? */ } @@ -2577,16 +2571,16 @@ #endif for (n = 0; n < (unsigned int)i; n++) { - XSetWindowBackgroundPixmap (disp, TermWin.parent[n], ParentRelative); - XClearWindow (disp, TermWin.parent[n]); + XSetWindowBackgroundPixmap (disp, parent[n], ParentRelative); + XClearWindow (disp, parent[n]); } - XSetWindowBackgroundPixmap (disp, TermWin.vt, ParentRelative); + XSetWindowBackgroundPixmap (disp, vt, ParentRelative); am_transparent = 1; } - for (; i < (int) (sizeof (TermWin.parent) / sizeof (Window)); i++) - TermWin.parent[i] = None; + for (; i < (int) (sizeof (parent) / sizeof (Window)); i++) + parent[i] = None; } if (scrollBar.win) @@ -2648,7 +2642,7 @@ bool refreshnow = false; int nlines = 0; unicode_t *str = buf; - unicode_t *eol = str + min (TermWin.ncol, UBUFSIZ); + unicode_t *eol = str + min (ncol, UBUFSIZ); for (;;) { @@ -2665,20 +2659,20 @@ refresh_count++; if (!(options & Opt_jumpScroll) - || (refresh_count >= refresh_limit * (TermWin.nrow - 1))) + || (refresh_count >= refresh_limit * (nrow - 1))) { refreshnow = true; ch = NOCHAR; break; } - // scr_add_lines only works for nlines <= TermWin.nrow - 1. - if (nlines >= TermWin.nrow - 1) + // scr_add_lines only works for nlines <= nrow - 1. + if (nlines >= nrow - 1) { scr_add_lines (buf, nlines, str - buf); nlines = 0; str = buf; - eol = str + min (TermWin.ncol, UBUFSIZ); + eol = str + min (ncol, UBUFSIZ); } if (str >= eol) @@ -2689,7 +2683,7 @@ break; } else - eol = min (eol + TermWin.ncol, buf + UBUFSIZ); + eol = min (eol + ncol, buf + UBUFSIZ); } } @@ -3495,36 +3489,36 @@ * commands */ case 1: /* deiconify window */ - XMapWindow (disp, TermWin.parent[0]); + XMapWindow (disp, parent[0]); break; case 2: /* iconify window */ - XIconifyWindow (disp, TermWin.parent[0], display->screen); + XIconifyWindow (disp, parent[0], display->screen); break; case 3: /* set position (pixels) */ - XMoveWindow (disp, TermWin.parent[0], args[1], args[2]); + XMoveWindow (disp, parent[0], args[1], args[2]); break; case 4: /* set size (pixels) */ set_widthheight ((unsigned int)args[2], (unsigned int)args[1]); break; case 5: /* raise window */ - XRaiseWindow (disp, TermWin.parent[0]); + XRaiseWindow (disp, parent[0]); break; case 6: /* lower window */ - XLowerWindow (disp, TermWin.parent[0]); + XLowerWindow (disp, parent[0]); break; case 7: /* refresh window */ scr_touch (true); break; case 8: /* set size (chars) */ - set_widthheight ((unsigned int) (args[2] * TermWin.fwidth), - (unsigned int) (args[1] * TermWin.fheight)); + set_widthheight ((unsigned int) (args[2] * fwidth), + (unsigned int) (args[1] * fheight)); break; //case 9: NYI, TODO, restore maximized window or maximize window default: if (args[0] >= 24) /* set height (chars) */ - set_widthheight ((unsigned int)TermWin.width, - (unsigned int) (args[1] * TermWin.fheight)); + set_widthheight ((unsigned int)width, + (unsigned int) (args[1] * fheight)); break; @@ -3532,30 +3526,30 @@ * reports - some output format copied from XTerm */ case 11: /* report window state */ - XGetWindowAttributes (disp, TermWin.parent[0], &wattr); + XGetWindowAttributes (disp, parent[0], &wattr); tt_printf ("\033[%dt", wattr.map_state == IsViewable ? 1 : 2); break; case 13: /* report window position */ - XGetWindowAttributes (disp, TermWin.parent[0], &wattr); - XTranslateCoordinates (disp, TermWin.parent[0], wattr.root, + XGetWindowAttributes (disp, parent[0], &wattr); + XTranslateCoordinates (disp, parent[0], wattr.root, -wattr.border_width, -wattr.border_width, &x, &y, &wdummy); tt_printf ("\033[3;%d;%dt", x, y); break; case 14: /* report window size (pixels) */ - XGetWindowAttributes (disp, TermWin.parent[0], &wattr); + XGetWindowAttributes (disp, parent[0], &wattr); tt_printf ("\033[4;%d;%dt", wattr.height, wattr.width); break; case 18: /* report text area size (chars) */ - tt_printf ("\033[8;%d;%dt", TermWin.nrow, TermWin.ncol); + tt_printf ("\033[8;%d;%dt", nrow, ncol); break; case 19: /* report window size (chars) */ - tt_printf ("\033[9;%d;%dt", TermWin.nrow, TermWin.ncol); + tt_printf ("\033[9;%d;%dt", nrow, ncol); break; case 20: /* report icon label */ { char *s; - XGetIconName (disp, TermWin.parent[0], &s); + XGetIconName (disp, parent[0], &s); tt_printf ("\033]L%-.250s\234", (options & Opt_insecure) && s ? s : ""); /* 8bit ST */ XFree (s); } @@ -3563,7 +3557,7 @@ case 21: /* report window title */ { char *s; - XFetchName (disp, TermWin.parent[0], &s); + XFetchName (disp, parent[0], &s); tt_printf ("\033]l%-.250s\234", (options & Opt_insecure) && s ? s : ""); /* 8bit ST */ XFree (s); } @@ -3719,7 +3713,7 @@ const char *str = ""; if (prop - && XGetWindowProperty (disp, TermWin.parent[0], + && XGetWindowProperty (disp, parent[0], prop, 0, 1<<16, 0, AnyPropertyType, &actual_type, &actual_format, &nitems, &bytes_after, &value) == Success @@ -3741,7 +3735,7 @@ set_utf8_property (display->atom (str), eq + 1); } else - XDeleteProperty (disp, TermWin.parent[0], + XDeleteProperty (disp, parent[0], display->atom (str)); } break; @@ -3876,8 +3870,8 @@ #endif if (query) tt_printf ("\33]%d;%-.250s%c", saveop, - (options & Opt_insecure) && TermWin.fontset[op - URxvt_font]->fontdesc - ? TermWin.fontset[op - URxvt_font]->fontdesc : "", + (options & Opt_insecure) && fontset[op - URxvt_font]->fontdesc + ? fontset[op - URxvt_font]->fontdesc : "", resp); else { @@ -4054,7 +4048,7 @@ break; case 3: /* 80/132 */ if (priv_modes & PrivMode_132OK) - set_widthheight (((state ? 132 : 80) * TermWin.fwidth), TermWin.height); + set_widthheight (((state ? 132 : 80) * fwidth), height); break; case 4: /* smooth scrolling */ if (state)