From: Po Lu Date: Fri, 22 Apr 2022 11:43:42 +0000 (+0800) Subject: Don't transfer window attributes trying to find the XM drag window X-Git-Tag: emacs-29.0.90~1931^2~364 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=05705454d5c616cb54294ae3bbb2d40ab72fc8ed;p=emacs.git Don't transfer window attributes trying to find the XM drag window * src/xterm.c (xm_get_drag_window): Select for impossible event mask instead of asking for the window attributes. --- diff --git a/src/xterm.c b/src/xterm.c index adfe3059d1d..7e8d226fb26 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -1385,7 +1385,6 @@ xm_get_drag_window (struct x_display_info *dpyinfo) unsigned char *tmp_data = NULL; Window drag_window; XSetWindowAttributes attrs; - XWindowAttributes wattrs; Display *temp_display; void *old_handler; @@ -1403,8 +1402,10 @@ xm_get_drag_window (struct x_display_info *dpyinfo) { drag_window = *(Window *) tmp_data; x_catch_errors (dpyinfo->display); - XGetWindowAttributes (dpyinfo->display, - drag_window, &wattrs); + /* We use ButtonPressMask since it's one of the events an + input-only window can never get. */ + XSelectInput (dpyinfo->display, drag_window, + ButtonPressMask); rc = !x_had_errors_p (dpyinfo->display); x_uncatch_errors_after_check (); @@ -1474,8 +1475,10 @@ xm_get_drag_window (struct x_display_info *dpyinfo) current display, and the XOpenDisplay above didn't accidentally connect to some other display. */ x_catch_errors (dpyinfo->display); - XGetWindowAttributes (dpyinfo->display, - drag_window, &wattrs); + /* We use ButtonPressMask since it's one of the events an + input-only window can never get. */ + XSelectInput (dpyinfo->display, drag_window, + ButtonPressMask); rc = !x_had_errors_p (dpyinfo->display); x_uncatch_errors_after_check (); unblock_input ();