ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/screen.C
(Generate patch)

Comparing rxvt-unicode/src/screen.C (file contents):
Revision 1.26 by pcg, Sun Feb 1 20:12:53 2004 UTC vs.
Revision 1.27 by pcg, Mon Feb 9 07:11:49 2004 UTC

92 */ 92 */
93#define drawBuffer TermWin.vt 93#define drawBuffer TermWin.vt
94 94
95#define CLEAR_ROWS(row, num) \ 95#define CLEAR_ROWS(row, num) \
96 if (TermWin.mapped) \ 96 if (TermWin.mapped) \
97 XClearArea (Xdisplay, drawBuffer, TermWin.int_bwidth, \ 97 XClearArea (display->display, drawBuffer, TermWin.int_bwidth, \
98 Row2Pixel(row), (unsigned int)TermWin.width, \ 98 Row2Pixel(row), (unsigned int)TermWin.width, \
99 (unsigned int)Height2Pixel(num), False) 99 (unsigned int)Height2Pixel(num), False)
100 100
101#define CLEAR_CHARS(x, y, num) \ 101#define CLEAR_CHARS(x, y, num) \
102 if (TermWin.mapped) \ 102 if (TermWin.mapped) \
103 XClearArea (Xdisplay, drawBuffer, x, y, \ 103 XClearArea (display->display, drawBuffer, x, y, \
104 (unsigned int)Width2Pixel(num), \ 104 (unsigned int)Width2Pixel(num), \
105 (unsigned int)Height2Pixel(1), False) 105 (unsigned int)Height2Pixel(1), False)
106 106
107#define ERASE_ROWS(row, num) \ 107#define ERASE_ROWS(row, num) \
108 XFillRectangle (Xdisplay, drawBuffer, TermWin.gc, \ 108 XFillRectangle (display->display, drawBuffer, TermWin.gc, \
109 TermWin.int_bwidth, Row2Pixel(row), \ 109 TermWin.int_bwidth, Row2Pixel(row), \
110 (unsigned int)TermWin.width, \ 110 (unsigned int)TermWin.width, \
111 (unsigned int)Height2Pixel(num)) 111 (unsigned int)Height2Pixel(num))
112 112
113/* ------------------------------------------------------------------------- * 113/* ------------------------------------------------------------------------- *
1279 } 1279 }
1280 else 1280 else
1281 { 1281 {
1282 ren = (rstyle & (RS_fgMask | RS_bgMask)); 1282 ren = (rstyle & (RS_fgMask | RS_bgMask));
1283 gcvalue.foreground = PixColors[GET_BGCOLOR(rstyle)]; 1283 gcvalue.foreground = PixColors[GET_BGCOLOR(rstyle)];
1284 XChangeGC(Xdisplay, TermWin.gc, GCForeground, &gcvalue); 1284 XChangeGC(display->display, TermWin.gc, GCForeground, &gcvalue);
1285 ERASE_ROWS(row, num); 1285 ERASE_ROWS(row, num);
1286 gcvalue.foreground = PixColors[Color_fg]; 1286 gcvalue.foreground = PixColors[Color_fg];
1287 XChangeGC(Xdisplay, TermWin.gc, GCForeground, &gcvalue); 1287 XChangeGC(display->display, TermWin.gc, GCForeground, &gcvalue);
1288 } 1288 }
1289 for (; num--; row++) 1289 for (; num--; row++)
1290 { 1290 {
1291 scr_blank_screen_mem (screen.text, screen.rend, 1291 scr_blank_screen_mem (screen.text, screen.rend,
1292 (unsigned int)(row + row_offset), rstyle); 1292 (unsigned int)(row + row_offset), rstyle);
1578 if (bgPixmap.pixmap == None) 1578 if (bgPixmap.pixmap == None)
1579#endif 1579#endif
1580#if defined(TRANSPARENT) 1580#if defined(TRANSPARENT)
1581 if (!(Options & Opt_transparent) || am_transparent == 0) 1581 if (!(Options & Opt_transparent) || am_transparent == 0)
1582#endif 1582#endif
1583 XSetWindowBackground(Xdisplay, TermWin.vt, 1583 XSetWindowBackground(display->display, TermWin.vt,
1584 PixColors[Color_bg]); 1584 PixColors[Color_bg]);
1585 1585
1586 gcvalue.foreground = PixColors[Color_fg]; 1586 gcvalue.foreground = PixColors[Color_fg];
1587 gcvalue.background = PixColors[Color_bg]; 1587 gcvalue.background = PixColors[Color_bg];
1588 XChangeGC(Xdisplay, TermWin.gc, GCBackground | GCForeground, 1588 XChangeGC(display->display, TermWin.gc, GCBackground | GCForeground,
1589 &gcvalue); 1589 &gcvalue);
1590 scr_clear (); 1590 scr_clear ();
1591 scr_touch (true); 1591 scr_touch (true);
1592 } 1592 }
1593} 1593}
1826#ifndef NO_BELL 1826#ifndef NO_BELL
1827# ifndef NO_MAPALERT 1827# ifndef NO_MAPALERT
1828# ifdef MAPALERT_OPTION 1828# ifdef MAPALERT_OPTION
1829 if (Options & Opt_mapAlert) 1829 if (Options & Opt_mapAlert)
1830# endif 1830# endif
1831 XMapWindow(Xdisplay, TermWin.parent[0]); 1831 XMapWindow(display->display, TermWin.parent[0]);
1832# endif 1832# endif
1833 if (Options & Opt_visualBell) 1833 if (Options & Opt_visualBell)
1834 { 1834 {
1835 scr_rvideo_mode (!rvideo); /* refresh also done */ 1835 scr_rvideo_mode (!rvideo); /* refresh also done */
1836 scr_rvideo_mode (!rvideo); /* refresh also done */ 1836 scr_rvideo_mode (!rvideo); /* refresh also done */
1837 } 1837 }
1838 else 1838 else
1839 XBell(Xdisplay, 0); 1839 XBell(display->display, 0);
1840#endif 1840#endif
1841} 1841}
1842 1842
1843/* ------------------------------------------------------------------------- */ 1843/* ------------------------------------------------------------------------- */
1844/* ARGSUSED */ 1844/* ARGSUSED */
2080 /* also comes here at end if needed because of >= above */ 2080 /* also comes here at end if needed because of >= above */
2081 if (wlen < len) 2081 if (wlen < len)
2082 SWAP_IT(wlen, len, int); 2082 SWAP_IT(wlen, len, int);
2083 2083
2084 D_SCREEN((stderr, "rxvt_scr_refresh(): XCopyArea: %d -> %d (height: %d)", len + i, len, wlen - len + 1)); 2084 D_SCREEN((stderr, "rxvt_scr_refresh(): XCopyArea: %d -> %d (height: %d)", len + i, len, wlen - len + 1));
2085 XCopyArea (Xdisplay, TermWin.vt, TermWin.vt, 2085 XCopyArea (display->display, TermWin.vt, TermWin.vt,
2086 TermWin.gc, 0, Row2Pixel (len + i), 2086 TermWin.gc, 0, Row2Pixel (len + i),
2087 (unsigned int)TermWin_TotalWidth (), 2087 (unsigned int)TermWin_TotalWidth (),
2088 (unsigned int)Height2Pixel (wlen - len + 1), 2088 (unsigned int)Height2Pixel (wlen - len + 1),
2089 0, Row2Pixel (len)); 2089 0, Row2Pixel (len));
2090 len = -1; 2090 len = -1;
2248 } 2248 }
2249 else 2249 else
2250 font->draw (xpixel, ypixel, text, count, fore, back); 2250 font->draw (xpixel, ypixel, text, count, fore, back);
2251 2251
2252 if ((rend & RS_Uline) && (font->descent > 1)) 2252 if ((rend & RS_Uline) && (font->descent > 1))
2253 XDrawLine(Xdisplay, drawBuffer, TermWin.gc, 2253 XDrawLine(display->display, drawBuffer, TermWin.gc,
2254 xpixel, ypixel + font->ascent + 1, 2254 xpixel, ypixel + font->ascent + 1,
2255 xpixel + Width2Pixel(count) - 1, ypixel + font->ascent + 1); 2255 xpixel + Width2Pixel(count) - 1, ypixel + font->ascent + 1);
2256 } /* for (col....) */ 2256 } /* for (col....) */
2257 } /* for (row....) */ 2257 } /* for (row....) */
2258 2258
2273 } 2273 }
2274 else if (oldcursor.row >= 0) 2274 else if (oldcursor.row >= 0)
2275 { 2275 {
2276#ifndef NO_CURSORCOLOR 2276#ifndef NO_CURSORCOLOR
2277 if (ISSET_PIXCOLOR (Color_cursor)) 2277 if (ISSET_PIXCOLOR (Color_cursor))
2278 XSetForeground (Xdisplay, TermWin.gc, PixColors[Color_cursor]); 2278 XSetForeground (display->display, TermWin.gc, PixColors[Color_cursor]);
2279#endif 2279#endif
2280 XDrawRectangle(Xdisplay, drawBuffer, TermWin.gc, 2280 XDrawRectangle(display->display, drawBuffer, TermWin.gc,
2281 Col2Pixel(oldcursor.col), 2281 Col2Pixel(oldcursor.col),
2282 Row2Pixel(oldcursor.row), 2282 Row2Pixel(oldcursor.row),
2283 (unsigned int)(Width2Pixel(cursorwidth) - 1), 2283 (unsigned int)(Width2Pixel(cursorwidth) - 1),
2284 (unsigned int)(Height2Pixel(1) - TermWin.lineSpace - 1)); 2284 (unsigned int)(Height2Pixel(1) - TermWin.lineSpace - 1));
2285 } 2285 }
2296 if (clearfirst && TermWin.int_bwidth) 2296 if (clearfirst && TermWin.int_bwidth)
2297 /* 2297 /*
2298 * clear the whole screen height, note that width == 0 is treated 2298 * clear the whole screen height, note that width == 0 is treated
2299 * specially by XClearArea 2299 * specially by XClearArea
2300 */ 2300 */
2301 XClearArea(Xdisplay, TermWin.vt, 0, 0, 2301 XClearArea(display->display, TermWin.vt, 0, 0,
2302 (unsigned int)TermWin.int_bwidth, 2302 (unsigned int)TermWin.int_bwidth,
2303 (unsigned int)TermWin_TotalHeight(), False); 2303 (unsigned int)TermWin_TotalHeight(), False);
2304 if (clearlast && TermWin.int_bwidth) 2304 if (clearlast && TermWin.int_bwidth)
2305 /* 2305 /*
2306 * clear the whole screen height, note that width == 0 is treated 2306 * clear the whole screen height, note that width == 0 is treated
2307 * specially by XClearArea 2307 * specially by XClearArea
2308 */ 2308 */
2309 XClearArea(Xdisplay, TermWin.vt, 2309 XClearArea(display->display, TermWin.vt,
2310 TermWin.width + TermWin.int_bwidth, 0, 2310 TermWin.width + TermWin.int_bwidth, 0,
2311 (unsigned int)TermWin.int_bwidth, 2311 (unsigned int)TermWin.int_bwidth,
2312 (unsigned int)TermWin_TotalHeight(), False); 2312 (unsigned int)TermWin_TotalHeight(), False);
2313 if (refresh_type & SMOOTH_REFRESH) 2313 if (refresh_type & SMOOTH_REFRESH)
2314 XSync(Xdisplay, False); 2314 XSync(display->display, False);
2315 2315
2316 num_scr = 0; 2316 num_scr = 0;
2317 num_scr_allow = 1; 2317 num_scr_allow = 1;
2318 want_refresh = 0; /* screen is current */ 2318 want_refresh = 0; /* screen is current */
2319} 2319}
2337 else 2337 else
2338 i = (int)(sizeof(TermWin.parent) / sizeof(Window)); 2338 i = (int)(sizeof(TermWin.parent) / sizeof(Window));
2339 2339
2340 while (i--) 2340 while (i--)
2341 if (TermWin.parent[i] != None) 2341 if (TermWin.parent[i] != None)
2342 XClearWindow(Xdisplay, TermWin.parent[i]); 2342 XClearWindow(display->display, TermWin.parent[i]);
2343 } 2343 }
2344#endif 2344#endif
2345 2345
2346 XClearWindow (Xdisplay, TermWin.vt); 2346 XClearWindow (display->display, TermWin.vt);
2347} 2347}
2348 2348
2349/* ------------------------------------------------------------------------- */ 2349/* ------------------------------------------------------------------------- */
2350void 2350void
2351rxvt_term::scr_reverse_selection () 2351rxvt_term::scr_reverse_selection ()
2514 return 0; 2514 return 0;
2515 } 2515 }
2516 2516
2517 for (;;) 2517 for (;;)
2518 { 2518 {
2519 if (XGetWindowProperty(Xdisplay, win, prop, (long)(nread / 4), 2519 if (XGetWindowProperty(display->display, win, prop, (long)(nread / 4),
2520 (long)(PROP_SIZE / 4), delete_prop, 2520 (long)(PROP_SIZE / 4), delete_prop,
2521 AnyPropertyType, &ct.encoding, &ct.format, 2521 AnyPropertyType, &ct.encoding, &ct.format,
2522 &ct.nitems, &bytes_after, 2522 &ct.nitems, &bytes_after,
2523 &ct.value) != Success) 2523 &ct.value) != Success)
2524 break; 2524 break;
2543 /* 2543 /*
2544 * pass through again trying CUT_BUFFER0 if we've come from 2544 * pass through again trying CUT_BUFFER0 if we've come from
2545 * XConvertSelection() but nothing was presented 2545 * XConvertSelection() but nothing was presented
2546 */ 2546 */
2547 D_SELECT((stderr, "rxvt_selection_request: pasting CUT_BUFFER0")); 2547 D_SELECT((stderr, "rxvt_selection_request: pasting CUT_BUFFER0"));
2548 selection_paste (Xroot, XA_CUT_BUFFER0, False); 2548 selection_paste (display->root, XA_CUT_BUFFER0, False);
2549 } 2549 }
2550 2550
2551 nread = -1; /* discount any previous stuff */ 2551 nread = -1; /* discount any previous stuff */
2552 break; 2552 break;
2553 } 2553 }
2554 2554
2555 nread += ct.nitems; 2555 nread += ct.nitems;
2556 2556
2557 char **cl; 2557 char **cl;
2558 int cr; 2558 int cr;
2559 if (XmbTextPropertyToTextList (Xdisplay, &ct, &cl, 2559 if (XmbTextPropertyToTextList (display->display, &ct, &cl,
2560 &cr) >= 0 && cl) 2560 &cr) >= 0 && cl)
2561 { 2561 {
2562 for (int i = 0; i < cr; i++) 2562 for (int i = 0; i < cr; i++)
2563 paste ((unsigned char *)cl[i], STRLEN (cl[i])); 2563 paste ((unsigned char *)cl[i], STRLEN (cl[i]));
2564 2564
2607 int a, afmt; 2607 int a, afmt;
2608 Atom atype; 2608 Atom atype;
2609 unsigned long bytes_after, nitems; 2609 unsigned long bytes_after, nitems;
2610 unsigned char *s = NULL; 2610 unsigned char *s = NULL;
2611 2611
2612 a = XGetWindowProperty(Xdisplay, win, prop, 0L, 1L, False, 2612 a = XGetWindowProperty(display->display, win, prop, 0L, 1L, False,
2613 xa[XA_INCR], &atype, &afmt, &nitems, 2613 xa[XA_INCR], &atype, &afmt, &nitems,
2614 &bytes_after, &s); 2614 &bytes_after, &s);
2615 if (s) 2615 if (s)
2616 XFree(s); 2616 XFree(s);
2617 if (a != Success) 2617 if (a != Success)
2618 return; 2618 return;
2619#ifndef __CYGWIN32__ 2619#ifndef __CYGWIN32__
2620 if (atype == xa[XA_INCR]) 2620 if (atype == xa[XA_INCR])
2621 { /* start an INCR transfer */ 2621 { /* start an INCR transfer */
2622 D_SELECT((stderr, "rxvt_selection_property: INCR: starting transfer")); 2622 D_SELECT((stderr, "rxvt_selection_property: INCR: starting transfer"));
2623 XDeleteProperty(Xdisplay, win, prop); 2623 XDeleteProperty(display->display, win, prop);
2624 XFlush(Xdisplay); 2624 XFlush(display->display);
2625 reget_time = 1; 2625 reget_time = 1;
2626 selection_wait = Sel_incr; 2626 selection_wait = Sel_incr;
2627 } 2627 }
2628#endif 2628#endif
2629 2629
2684 2684
2685 } 2685 }
2686 } 2686 }
2687 selection_wait = Sel_none; /* don't loop in rxvt_selection_paste() */ 2687 selection_wait = Sel_none; /* don't loop in rxvt_selection_paste() */
2688 D_SELECT((stderr, "rxvt_selection_request: pasting CUT_BUFFER0")); 2688 D_SELECT((stderr, "rxvt_selection_request: pasting CUT_BUFFER0"));
2689 selection_paste (Xroot, XA_CUT_BUFFER0, False); 2689 selection_paste (display->root, XA_CUT_BUFFER0, False);
2690} 2690}
2691 2691
2692int 2692int
2693rxvt_term::selection_request_other (Atom target, int selnum) 2693rxvt_term::selection_request_other (Atom target, int selnum)
2694{ 2694{
2702 sel = XA_PRIMARY; 2702 sel = XA_PRIMARY;
2703 else if (selnum == Sel_Secondary) 2703 else if (selnum == Sel_Secondary)
2704 sel = XA_SECONDARY; 2704 sel = XA_SECONDARY;
2705 else 2705 else
2706 sel = xa[XA_CLIPBOARD]; 2706 sel = xa[XA_CLIPBOARD];
2707 if (XGetSelectionOwner(Xdisplay, sel) != None) 2707 if (XGetSelectionOwner(display->display, sel) != None)
2708 { 2708 {
2709 D_SELECT((stderr, "rxvt_selection_request_other: pasting %s", debug_xa_names[selnum])); 2709 D_SELECT((stderr, "rxvt_selection_request_other: pasting %s", debug_xa_names[selnum]));
2710 XConvertSelection(Xdisplay, sel, target, xa[XA_VT_SELECTION], 2710 XConvertSelection(display->display, sel, target, xa[XA_VT_SELECTION],
2711 TermWin.vt, selection_request_time); 2711 TermWin.vt, selection_request_time);
2712 return 1; 2712 return 1;
2713 } 2713 }
2714 return 0; 2714 return 0;
2715} 2715}
2831 if (selection.text) 2831 if (selection.text)
2832 free (selection.text); 2832 free (selection.text);
2833 2833
2834 selection.text = new_selection_text; 2834 selection.text = new_selection_text;
2835 2835
2836 XSetSelectionOwner(Xdisplay, XA_PRIMARY, TermWin.vt, tm); 2836 XSetSelectionOwner(display->display, XA_PRIMARY, TermWin.vt, tm);
2837 if (XGetSelectionOwner(Xdisplay, XA_PRIMARY) != TermWin.vt) 2837 if (XGetSelectionOwner(display->display, XA_PRIMARY) != TermWin.vt)
2838 rxvt_print_error("can't get primary selection"); 2838 rxvt_print_error("can't get primary selection");
2839 2839
2840 2840
2841 { 2841 {
2842 XTextProperty ct; 2842 XTextProperty ct;
2843 char *cl = (char *)selection.text; 2843 char *cl = (char *)selection.text;
2844 2844
2845 if (XmbTextListToTextProperty(Xdisplay, &cl, 1, XStringStyle, &ct) >= 0) 2845 if (XmbTextListToTextProperty(display->display, &cl, 1, XStringStyle, &ct) >= 0)
2846 { 2846 {
2847 XChangeProperty(Xdisplay, Xroot, XA_CUT_BUFFER0, XA_STRING, 8, 2847 XChangeProperty(display->display, display->root, XA_CUT_BUFFER0, XA_STRING, 8,
2848 PropModeReplace, ct.value, ct.nitems); 2848 PropModeReplace, ct.value, ct.nitems);
2849 XFree (ct.value); 2849 XFree (ct.value);
2850 } 2850 }
2851 else 2851 else
2852 XChangeProperty(Xdisplay, Xroot, XA_CUT_BUFFER0, XA_STRING, 8, 2852 XChangeProperty(display->display, display->root, XA_CUT_BUFFER0, XA_STRING, 8,
2853 PropModeReplace, selection.text, (int)selection.len); 2853 PropModeReplace, selection.text, (int)selection.len);
2854 } 2854 }
2855 2855
2856 selection_time = tm; 2856 selection_time = tm;
2857 D_SELECT((stderr, "rxvt_selection_make(): selection.len=%d", selection.len)); 2857 D_SELECT((stderr, "rxvt_selection_make(): selection.len=%d", selection.len));
3371/* 3371/*
3372 * Respond to a request for our current selection 3372 * Respond to a request for our current selection
3373 * EXT: SelectionRequest 3373 * EXT: SelectionRequest
3374 */ 3374 */
3375void 3375void
3376rxvt_term::selection_send (const XSelectionRequestEvent *rq) 3376rxvt_term::selection_send (const XSelectionRequestEvent &rq)
3377{ 3377{
3378 XSelectionEvent ev; 3378 XSelectionEvent ev;
3379 XTextProperty ct; 3379 XTextProperty ct;
3380 XICCEncodingStyle style; 3380 XICCEncodingStyle style;
3381 Atom target; 3381 Atom target;
3382 3382
3383 ev.type = SelectionNotify; 3383 ev.type = SelectionNotify;
3384 ev.property = None; 3384 ev.property = None;
3385 ev.display = rq->display; 3385 ev.display = rq.display;
3386 ev.requestor = rq->requestor; 3386 ev.requestor = rq.requestor;
3387 ev.selection = rq->selection; 3387 ev.selection = rq.selection;
3388 ev.target = rq->target; 3388 ev.target = rq.target;
3389 ev.time = rq->time; 3389 ev.time = rq.time;
3390 3390
3391 if (rq->target == xa[XA_TARGETS]) 3391 if (rq.target == xa[XA_TARGETS])
3392 { 3392 {
3393 Atom32 target_list[5]; 3393 Atom32 target_list[5];
3394 Atom32 *target = target_list; 3394 Atom32 *target = target_list;
3395 3395
3396 *target++ = (Atom32) xa[XA_TARGETS]; 3396 *target++ = (Atom32) xa[XA_TARGETS];
3398 *target++ = (Atom32) xa[XA_TEXT]; 3398 *target++ = (Atom32) xa[XA_TEXT];
3399 *target++ = (Atom32) xa[XA_COMPOUND_TEXT]; 3399 *target++ = (Atom32) xa[XA_COMPOUND_TEXT];
3400#if X_HAVE_UTF8_STRING 3400#if X_HAVE_UTF8_STRING
3401 *target++ = (Atom32) xa[XA_UTF8_STRING]; 3401 *target++ = (Atom32) xa[XA_UTF8_STRING];
3402#endif 3402#endif
3403 XChangeProperty(Xdisplay, rq->requestor, rq->property, XA_ATOM, 3403 XChangeProperty(display->display, rq.requestor, rq.property, XA_ATOM,
3404 (8 * sizeof(target_list[0])), PropModeReplace, 3404 (8 * sizeof(target_list[0])), PropModeReplace,
3405 (unsigned char *)target_list, 3405 (unsigned char *)target_list,
3406 target - target_list); 3406 target - target_list);
3407 ev.property = rq->property; 3407 ev.property = rq.property;
3408 } 3408 }
3409 else if (rq->target == xa[XA_MULTIPLE]) 3409 else if (rq.target == xa[XA_MULTIPLE])
3410 { 3410 {
3411 /* TODO: Handle MULTIPLE */ 3411 /* TODO: Handle MULTIPLE */
3412 } 3412 }
3413 else if (rq->target == xa[XA_TIMESTAMP] && selection.text) 3413 else if (rq.target == xa[XA_TIMESTAMP] && selection.text)
3414 { 3414 {
3415 XChangeProperty(Xdisplay, rq->requestor, rq->property, XA_INTEGER, 3415 XChangeProperty(display->display, rq.requestor, rq.property, XA_INTEGER,
3416 (8 * sizeof(Time)), PropModeReplace, 3416 (8 * sizeof(Time)), PropModeReplace,
3417 (unsigned char *)&selection_time, 1); 3417 (unsigned char *)&selection_time, 1);
3418 ev.property = rq->property; 3418 ev.property = rq.property;
3419 } 3419 }
3420 else if (rq->target == XA_STRING 3420 else if (rq.target == XA_STRING
3421 || rq->target == xa[XA_TEXT] 3421 || rq.target == xa[XA_TEXT]
3422 || rq->target == xa[XA_COMPOUND_TEXT] 3422 || rq.target == xa[XA_COMPOUND_TEXT]
3423 || rq->target == xa[XA_UTF8_STRING] 3423 || rq.target == xa[XA_UTF8_STRING]
3424 ) 3424 )
3425 { 3425 {
3426 short freect = 0; 3426 short freect = 0;
3427 int selectlen; 3427 int selectlen;
3428 char *cl; 3428 char *cl;
3429 3429
3430 target = rq->target; 3430 target = rq.target;
3431 3431
3432 if (target == XA_STRING) 3432 if (target == XA_STRING)
3433 // we actually don't do XA_STRING, but who cares, as i18n clients 3433 // we actually don't do XA_STRING, but who cares, as i18n clients
3434 // will ask for another format anyways. 3434 // will ask for another format anyways.
3435 style = XStringStyle; 3435 style = XStringStyle;
3456 { 3456 {
3457 cl = ""; 3457 cl = "";
3458 selectlen = 0; 3458 selectlen = 0;
3459 } 3459 }
3460 3460
3461 if (XmbTextListToTextProperty(Xdisplay, &cl, 1, style, &ct) >= 0) 3461 if (XmbTextListToTextProperty(display->display, &cl, 1, style, &ct) >= 0)
3462 freect = 1; 3462 freect = 1;
3463 else 3463 else
3464 { 3464 {
3465 /* if we failed to convert then send it raw */ 3465 /* if we failed to convert then send it raw */
3466 ct.value = (unsigned char *)cl; 3466 ct.value = (unsigned char *)cl;
3467 ct.nitems = selectlen; 3467 ct.nitems = selectlen;
3468 } 3468 }
3469 3469
3470 XChangeProperty(Xdisplay, rq->requestor, rq->property, 3470 XChangeProperty (display->display, rq.requestor, rq.property,
3471 target, 8, PropModeReplace, 3471 target, 8, PropModeReplace,
3472 ct.value, (int)ct.nitems); 3472 ct.value, (int)ct.nitems);
3473 ev.property = rq->property; 3473 ev.property = rq.property;
3474 3474
3475 if (freect) 3475 if (freect)
3476 XFree (ct.value); 3476 XFree (ct.value);
3477 } 3477 }
3478 XSendEvent(Xdisplay, rq->requestor, False, 0L, (XEvent *)&ev); 3478 XSendEvent (display->display, rq.requestor, False, 0L, (XEvent *)&ev);
3479} 3479}
3480 3480
3481/* ------------------------------------------------------------------------- * 3481/* ------------------------------------------------------------------------- *
3482 * MOUSE ROUTINES * 3482 * MOUSE ROUTINES *
3483 * ------------------------------------------------------------------------- */ 3483 * ------------------------------------------------------------------------- */
3499void 3499void
3500rxvt_term::set_position (XPoint *pos) 3500rxvt_term::set_position (XPoint *pos)
3501{ 3501{
3502 XWindowAttributes xwa; 3502 XWindowAttributes xwa;
3503 3503
3504 XGetWindowAttributes (Xdisplay, TermWin.vt, &xwa); 3504 XGetWindowAttributes (display->display, TermWin.vt, &xwa);
3505 pos->x = Col2Pixel (screen.cur.col) + xwa.x; 3505 pos->x = Col2Pixel (screen.cur.col) + xwa.x;
3506 pos->y = Height2Pixel ((screen.cur.row + 1)) + xwa.y - TermWin.lineSpace; 3506 pos->y = Height2Pixel ((screen.cur.row + 1)) + xwa.y - TermWin.lineSpace;
3507} 3507}
3508 3508
3509#endif 3509#endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines