]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't inadvertently reset frame scroll bar sizes (Bug#74435)
authorMartin Rudalics <rudalics@gmx.at>
Thu, 28 Nov 2024 17:53:45 +0000 (18:53 +0100)
committerEshel Yaron <me@eshelyaron.com>
Wed, 4 Dec 2024 16:59:45 +0000 (17:59 +0100)
* src/frame.c (gui_set_scroll_bar_width)
(gui_set_scroll_bar_height): When the new size equals the old one
do not reset size to default size (Bug#74435).

(cherry picked from commit bda0bce9e4313c496fcfdcf4b6abeba3f68e5fac)

src/frame.c

index 7f4bf274ad99ba61ee0a79d3632687719a28509e..f6053fca3efe26c0931173e818a4640b433c557e 100644 (file)
@@ -5102,15 +5102,19 @@ gui_set_scroll_bar_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
 {
   int unit = FRAME_COLUMN_WIDTH (f);
 
-  if (RANGED_FIXNUMP (1, arg, INT_MAX)
-      && XFIXNAT (arg) != FRAME_CONFIG_SCROLL_BAR_WIDTH (f))
+  if (RANGED_FIXNUMP (1, arg, INT_MAX))
     {
-      FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = XFIXNAT (arg);
-      FRAME_CONFIG_SCROLL_BAR_COLS (f) = (XFIXNAT (arg) + unit - 1) / unit;
-      if (FRAME_NATIVE_WINDOW (f))
-       adjust_frame_size (f, -1, -1, 3, 0, Qscroll_bar_width);
+      if (XFIXNAT (arg) == FRAME_CONFIG_SCROLL_BAR_WIDTH (f))
+       return;
+      else
+       {
+         FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = XFIXNAT (arg);
+         FRAME_CONFIG_SCROLL_BAR_COLS (f) = (XFIXNAT (arg) + unit - 1) / unit;
+         if (FRAME_NATIVE_WINDOW (f))
+           adjust_frame_size (f, -1, -1, 3, 0, Qscroll_bar_width);
 
-      SET_FRAME_GARBAGED (f);
+         SET_FRAME_GARBAGED (f);
+       }
     }
   else
     {
@@ -5133,15 +5137,19 @@ gui_set_scroll_bar_height (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
 #if USE_HORIZONTAL_SCROLL_BARS
   int unit = FRAME_LINE_HEIGHT (f);
 
-  if (RANGED_FIXNUMP (1, arg, INT_MAX)
-      && XFIXNAT (arg) != FRAME_CONFIG_SCROLL_BAR_HEIGHT (f))
+  if (RANGED_FIXNUMP (1, arg, INT_MAX))
     {
-      FRAME_CONFIG_SCROLL_BAR_HEIGHT (f) = XFIXNAT (arg);
-      FRAME_CONFIG_SCROLL_BAR_LINES (f) = (XFIXNAT (arg) + unit - 1) / unit;
-      if (FRAME_NATIVE_WINDOW (f))
-       adjust_frame_size (f, -1, -1, 3, 0, Qscroll_bar_height);
+      if (XFIXNAT (arg) == FRAME_CONFIG_SCROLL_BAR_HEIGHT (f))
+       return;
+      else
+       {
+         FRAME_CONFIG_SCROLL_BAR_HEIGHT (f) = XFIXNAT (arg);
+         FRAME_CONFIG_SCROLL_BAR_LINES (f) = (XFIXNAT (arg) + unit - 1) / unit;
+         if (FRAME_NATIVE_WINDOW (f))
+           adjust_frame_size (f, -1, -1, 3, 0, Qscroll_bar_height);
 
-      SET_FRAME_GARBAGED (f);
+         SET_FRAME_GARBAGED (f);
+       }
     }
   else
     {