]> git.eshelyaron.com Git - emacs.git/commitdiff
Only send fallback MONITORS_CHANGED_EVENT when dimensions really changed
authorPo Lu <luangruo@yahoo.com>
Tue, 24 May 2022 00:30:51 +0000 (08:30 +0800)
committerPo Lu <luangruo@yahoo.com>
Tue, 24 May 2022 00:30:51 +0000 (08:30 +0800)
* src/xterm.c (handle_one_xevent): Test that root window
configure width and height are not the same as the previously
recorded ones.

src/xterm.c

index dc1daaf6e19b5fe16706584b3ada90aa251e59a6..f86ec0fad396b001d765de3b6af7dc4c35b68f5b 100644 (file)
@@ -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;