… | |
… | |
1445 | && ev.xfocus.mode != NotifyGrab) |
1445 | && ev.xfocus.mode != NotifyGrab) |
1446 | focus_out (); |
1446 | focus_out (); |
1447 | break; |
1447 | break; |
1448 | |
1448 | |
1449 | case ConfigureNotify: |
1449 | case ConfigureNotify: |
1450 | if (ev.xconfigure.window == parent[0]) |
1450 | if (ev.xconfigure.window == parent) |
1451 | { |
1451 | { |
1452 | while (XCheckTypedWindowEvent (dpy, ev.xconfigure.window, ConfigureNotify, &ev)) |
1452 | while (XCheckTypedWindowEvent (dpy, ev.xconfigure.window, ConfigureNotify, &ev)) |
1453 | ; |
1453 | ; |
1454 | |
1454 | |
1455 | #ifdef HAVE_BG_PIXMAP |
1455 | #ifdef HAVE_BG_PIXMAP |
… | |
… | |
1721 | rxvt_term::set_urgency (bool enable) |
1721 | rxvt_term::set_urgency (bool enable) |
1722 | { |
1722 | { |
1723 | if (enable == urgency_hint) |
1723 | if (enable == urgency_hint) |
1724 | return; |
1724 | return; |
1725 | |
1725 | |
1726 | if (XWMHints *h = XGetWMHints (dpy, parent[0])) |
1726 | if (XWMHints *h = XGetWMHints (dpy, parent)) |
1727 | { |
1727 | { |
1728 | h->flags = h->flags & ~XUrgencyHint | (enable ? XUrgencyHint : 0); |
1728 | h->flags = h->flags & ~XUrgencyHint | (enable ? XUrgencyHint : 0); |
1729 | XSetWMHints (dpy, parent[0], h); |
1729 | XSetWMHints (dpy, parent, h); |
1730 | urgency_hint = enable; |
1730 | urgency_hint = enable; |
1731 | } |
1731 | } |
1732 | } |
1732 | } |
1733 | #endif |
1733 | #endif |
1734 | |
1734 | |
… | |
… | |
3122 | { |
3122 | { |
3123 | /* |
3123 | /* |
3124 | * commands |
3124 | * commands |
3125 | */ |
3125 | */ |
3126 | case 1: /* deiconify window */ |
3126 | case 1: /* deiconify window */ |
3127 | XMapWindow (dpy, parent[0]); |
3127 | XMapWindow (dpy, parent); |
3128 | break; |
3128 | break; |
3129 | case 2: /* iconify window */ |
3129 | case 2: /* iconify window */ |
3130 | XIconifyWindow (dpy, parent[0], display->screen); |
3130 | XIconifyWindow (dpy, parent, display->screen); |
3131 | break; |
3131 | break; |
3132 | case 3: /* set position (pixels) */ |
3132 | case 3: /* set position (pixels) */ |
3133 | XMoveWindow (dpy, parent[0], args[1], args[2]); |
3133 | XMoveWindow (dpy, parent, args[1], args[2]); |
3134 | break; |
3134 | break; |
3135 | case 4: /* set size (pixels) */ |
3135 | case 4: /* set size (pixels) */ |
3136 | set_widthheight ((unsigned int)args[2], (unsigned int)args[1]); |
3136 | set_widthheight ((unsigned int)args[2], (unsigned int)args[1]); |
3137 | break; |
3137 | break; |
3138 | case 5: /* raise window */ |
3138 | case 5: /* raise window */ |
3139 | XRaiseWindow (dpy, parent[0]); |
3139 | XRaiseWindow (dpy, parent); |
3140 | break; |
3140 | break; |
3141 | case 6: /* lower window */ |
3141 | case 6: /* lower window */ |
3142 | XLowerWindow (dpy, parent[0]); |
3142 | XLowerWindow (dpy, parent); |
3143 | break; |
3143 | break; |
3144 | case 7: /* refresh window */ |
3144 | case 7: /* refresh window */ |
3145 | scr_touch (true); |
3145 | scr_touch (true); |
3146 | break; |
3146 | break; |
3147 | case 8: /* set size (chars) */ |
3147 | case 8: /* set size (chars) */ |
… | |
… | |
3158 | |
3158 | |
3159 | /* |
3159 | /* |
3160 | * reports - some output format copied from XTerm |
3160 | * reports - some output format copied from XTerm |
3161 | */ |
3161 | */ |
3162 | case 11: /* report window state */ |
3162 | case 11: /* report window state */ |
3163 | XGetWindowAttributes (dpy, parent[0], &wattr); |
3163 | XGetWindowAttributes (dpy, parent, &wattr); |
3164 | tt_printf ("\033[%dt", wattr.map_state == IsViewable ? 1 : 2); |
3164 | tt_printf ("\033[%dt", wattr.map_state == IsViewable ? 1 : 2); |
3165 | break; |
3165 | break; |
3166 | case 13: /* report window position */ |
3166 | case 13: /* report window position */ |
3167 | XGetWindowAttributes (dpy, parent[0], &wattr); |
3167 | XGetWindowAttributes (dpy, parent, &wattr); |
3168 | XTranslateCoordinates (dpy, parent[0], wattr.root, |
3168 | XTranslateCoordinates (dpy, parent, wattr.root, |
3169 | -wattr.border_width, -wattr.border_width, |
3169 | -wattr.border_width, -wattr.border_width, |
3170 | &x, &y, &wdummy); |
3170 | &x, &y, &wdummy); |
3171 | tt_printf ("\033[3;%d;%dt", x, y); |
3171 | tt_printf ("\033[3;%d;%dt", x, y); |
3172 | break; |
3172 | break; |
3173 | case 14: /* report window size (pixels) */ |
3173 | case 14: /* report window size (pixels) */ |
3174 | XGetWindowAttributes (dpy, parent[0], &wattr); |
3174 | XGetWindowAttributes (dpy, parent, &wattr); |
3175 | tt_printf ("\033[4;%d;%dt", wattr.height, wattr.width); |
3175 | tt_printf ("\033[4;%d;%dt", wattr.height, wattr.width); |
3176 | break; |
3176 | break; |
3177 | case 18: /* report text area size (chars) */ |
3177 | case 18: /* report text area size (chars) */ |
3178 | tt_printf ("\033[8;%d;%dt", nrow, ncol); |
3178 | tt_printf ("\033[8;%d;%dt", nrow, ncol); |
3179 | break; |
3179 | break; |
… | |
… | |
3181 | tt_printf ("\033[9;%d;%dt", nrow, ncol); |
3181 | tt_printf ("\033[9;%d;%dt", nrow, ncol); |
3182 | break; |
3182 | break; |
3183 | case 20: /* report icon label */ |
3183 | case 20: /* report icon label */ |
3184 | { |
3184 | { |
3185 | char *s; |
3185 | char *s; |
3186 | XGetIconName (dpy, parent[0], &s); |
3186 | XGetIconName (dpy, parent, &s); |
3187 | tt_printf ("\033]L%-.250s\234", option (Opt_insecure) && s ? s : ""); /* 8bit ST */ |
3187 | tt_printf ("\033]L%-.250s\234", option (Opt_insecure) && s ? s : ""); /* 8bit ST */ |
3188 | XFree (s); |
3188 | XFree (s); |
3189 | } |
3189 | } |
3190 | break; |
3190 | break; |
3191 | case 21: /* report window title */ |
3191 | case 21: /* report window title */ |
3192 | { |
3192 | { |
3193 | char *s; |
3193 | char *s; |
3194 | XFetchName (dpy, parent[0], &s); |
3194 | XFetchName (dpy, parent, &s); |
3195 | tt_printf ("\033]l%-.250s\234", option (Opt_insecure) && s ? s : ""); /* 8bit ST */ |
3195 | tt_printf ("\033]l%-.250s\234", option (Opt_insecure) && s ? s : ""); /* 8bit ST */ |
3196 | XFree (s); |
3196 | XFree (s); |
3197 | } |
3197 | } |
3198 | break; |
3198 | break; |
3199 | } |
3199 | } |
… | |
… | |
3353 | unsigned long bytes_after; |
3353 | unsigned long bytes_after; |
3354 | unsigned char *value = 0; |
3354 | unsigned char *value = 0; |
3355 | const char *str = ""; |
3355 | const char *str = ""; |
3356 | |
3356 | |
3357 | if (prop |
3357 | if (prop |
3358 | && XGetWindowProperty (dpy, parent[0], |
3358 | && XGetWindowProperty (dpy, parent, |
3359 | prop, 0, 1<<16, 0, AnyPropertyType, |
3359 | prop, 0, 1<<16, 0, AnyPropertyType, |
3360 | &actual_type, &actual_format, |
3360 | &actual_type, &actual_format, |
3361 | &nitems, &bytes_after, &value) == Success |
3361 | &nitems, &bytes_after, &value) == Success |
3362 | && actual_type != None |
3362 | && actual_type != None |
3363 | && actual_format == 8) |
3363 | && actual_format == 8) |
… | |
… | |
3375 | { |
3375 | { |
3376 | *eq = 0; |
3376 | *eq = 0; |
3377 | set_utf8_property (display->atom (str), eq + 1); |
3377 | set_utf8_property (display->atom (str), eq + 1); |
3378 | } |
3378 | } |
3379 | else |
3379 | else |
3380 | XDeleteProperty (dpy, parent[0], |
3380 | XDeleteProperty (dpy, parent, |
3381 | display->atom (str)); |
3381 | display->atom (str)); |
3382 | } |
3382 | } |
3383 | break; |
3383 | break; |
3384 | |
3384 | |
3385 | case XTerm_Color: |
3385 | case XTerm_Color: |