From: Po Lu Date: Tue, 24 May 2022 00:30:51 +0000 (+0800) Subject: Only send fallback MONITORS_CHANGED_EVENT when dimensions really changed X-Git-Tag: emacs-29.0.90~1910^2~474 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=689be0bdd5ba0a619fd97c435f75d43c15b164e2;p=emacs.git Only send fallback MONITORS_CHANGED_EVENT when dimensions really changed * src/xterm.c (handle_one_xevent): Test that root window configure width and height are not the same as the previously recorded ones. --- diff --git a/src/xterm.c b/src/xterm.c index dc1daaf6e19..f86ec0fad39 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -16657,13 +16657,17 @@ handle_one_xevent (struct x_display_info *dpyinfo, /* Catch screen size changes even if RandR is not available on the client. GTK does this internally. */ - inev.ie.kind = MONITORS_CHANGED_EVENT; - XSETTERMINAL (inev.ie.arg, dpyinfo->terminal); + if (configureEvent.xconfigure.width != dpyinfo->screen_width + || configureEvent.xconfigure.height != dpyinfo->screen_height) + { + inev.ie.kind = MONITORS_CHANGED_EVENT; + XSETTERMINAL (inev.ie.arg, dpyinfo->terminal); - /* Store this event now since inev.ie.type could be set to - MOVE_FRAME_EVENT later. */ - kbd_buffer_store_event (&inev.ie); - inev.ie.kind = NO_EVENT; + /* Store this event now since inev.ie.type could be set to + MOVE_FRAME_EVENT later. */ + kbd_buffer_store_event (&inev.ie); + inev.ie.kind = NO_EVENT; + } #endif dpyinfo->screen_width = configureEvent.xconfigure.width;