… | |
… | |
227 | { |
227 | { |
228 | } |
228 | } |
229 | |
229 | |
230 | rxvt_drawable &rxvt_screen::scratch_drawable (int w, int h) |
230 | rxvt_drawable &rxvt_screen::scratch_drawable (int w, int h) |
231 | { |
231 | { |
232 | // it's actually faster to re-allocate every time. don't ask me |
|
|
233 | // why, but its likely no big deal there are no roundtrips |
|
|
234 | // (I think/hope). |
|
|
235 | if (!scratch_area || w > scratch_w || h > scratch_h || 1/*D*/) |
232 | if (!scratch_area || w > scratch_w || h > scratch_h) |
236 | { |
233 | { |
237 | if (scratch_area) |
234 | if (scratch_area) |
238 | { |
235 | { |
239 | XFreePixmap (dpy, scratch_area->drawable); |
236 | XFreePixmap (dpy, scratch_area->drawable); |
240 | delete scratch_area; |
237 | delete scratch_area; |
… | |
… | |
446 | return false; |
443 | return false; |
447 | |
444 | |
448 | screen = DefaultScreen (dpy); |
445 | screen = DefaultScreen (dpy); |
449 | root = DefaultRootWindow (dpy); |
446 | root = DefaultRootWindow (dpy); |
450 | |
447 | |
451 | assert (sizeof (xa_names) / sizeof (char *) == NUM_XA); |
448 | assert (ARRAY_LENGTH(xa_names) == NUM_XA); |
452 | XInternAtoms (dpy, (char **)xa_names, NUM_XA, False, xa); |
449 | XInternAtoms (dpy, (char **)xa_names, NUM_XA, False, xa); |
453 | |
450 | |
454 | XrmSetDatabase (dpy, get_resources (false)); |
451 | XrmSetDatabase (dpy, get_resources (false)); |
455 | |
452 | |
456 | #ifdef POINTER_BLANK |
453 | #ifdef POINTER_BLANK |
… | |
… | |
507 | x_ev.stop (); |
504 | x_ev.stop (); |
508 | flush_ev.stop (); |
505 | flush_ev.stop (); |
509 | #ifdef USE_XIM |
506 | #ifdef USE_XIM |
510 | xims.clear (); |
507 | xims.clear (); |
511 | #endif |
508 | #endif |
|
|
509 | XrmDestroyDatabase (XrmGetDatabase (dpy)); |
512 | XCloseDisplay (dpy); |
510 | XCloseDisplay (dpy); |
513 | } |
511 | } |
514 | |
512 | |
515 | #ifdef USE_XIM |
513 | #ifdef USE_XIM |
516 | void rxvt_display::im_change_cb () |
514 | void rxvt_display::im_change_cb () |