aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Rudalics2024-11-28 18:53:45 +0100
committerMartin Rudalics2024-11-28 18:53:45 +0100
commitbda0bce9e4313c496fcfdcf4b6abeba3f68e5fac (patch)
tree58403253cc9b424b6147356fc6ff560925b2bc68
parent3f99cdaf26dc606012384a6f191dc9d96483d437 (diff)
downloademacs-bda0bce9e4313c496fcfdcf4b6abeba3f68e5fac.tar.gz
emacs-bda0bce9e4313c496fcfdcf4b6abeba3f68e5fac.zip
Don't inadvertently reset frame scroll bar sizes (Bug#74435)
* 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).
-rw-r--r--src/frame.c36
1 files changed, 22 insertions, 14 deletions
diff --git a/src/frame.c b/src/frame.c
index 7f4bf274ad9..f6053fca3ef 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -5102,15 +5102,19 @@ gui_set_scroll_bar_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
5102{ 5102{
5103 int unit = FRAME_COLUMN_WIDTH (f); 5103 int unit = FRAME_COLUMN_WIDTH (f);
5104 5104
5105 if (RANGED_FIXNUMP (1, arg, INT_MAX) 5105 if (RANGED_FIXNUMP (1, arg, INT_MAX))
5106 && XFIXNAT (arg) != FRAME_CONFIG_SCROLL_BAR_WIDTH (f))
5107 { 5106 {
5108 FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = XFIXNAT (arg); 5107 if (XFIXNAT (arg) == FRAME_CONFIG_SCROLL_BAR_WIDTH (f))
5109 FRAME_CONFIG_SCROLL_BAR_COLS (f) = (XFIXNAT (arg) + unit - 1) / unit; 5108 return;
5110 if (FRAME_NATIVE_WINDOW (f)) 5109 else
5111 adjust_frame_size (f, -1, -1, 3, 0, Qscroll_bar_width); 5110 {
5111 FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = XFIXNAT (arg);
5112 FRAME_CONFIG_SCROLL_BAR_COLS (f) = (XFIXNAT (arg) + unit - 1) / unit;
5113 if (FRAME_NATIVE_WINDOW (f))
5114 adjust_frame_size (f, -1, -1, 3, 0, Qscroll_bar_width);
5112 5115
5113 SET_FRAME_GARBAGED (f); 5116 SET_FRAME_GARBAGED (f);
5117 }
5114 } 5118 }
5115 else 5119 else
5116 { 5120 {
@@ -5133,15 +5137,19 @@ gui_set_scroll_bar_height (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
5133#if USE_HORIZONTAL_SCROLL_BARS 5137#if USE_HORIZONTAL_SCROLL_BARS
5134 int unit = FRAME_LINE_HEIGHT (f); 5138 int unit = FRAME_LINE_HEIGHT (f);
5135 5139
5136 if (RANGED_FIXNUMP (1, arg, INT_MAX) 5140 if (RANGED_FIXNUMP (1, arg, INT_MAX))
5137 && XFIXNAT (arg) != FRAME_CONFIG_SCROLL_BAR_HEIGHT (f))
5138 { 5141 {
5139 FRAME_CONFIG_SCROLL_BAR_HEIGHT (f) = XFIXNAT (arg); 5142 if (XFIXNAT (arg) == FRAME_CONFIG_SCROLL_BAR_HEIGHT (f))
5140 FRAME_CONFIG_SCROLL_BAR_LINES (f) = (XFIXNAT (arg) + unit - 1) / unit; 5143 return;
5141 if (FRAME_NATIVE_WINDOW (f)) 5144 else
5142 adjust_frame_size (f, -1, -1, 3, 0, Qscroll_bar_height); 5145 {
5146 FRAME_CONFIG_SCROLL_BAR_HEIGHT (f) = XFIXNAT (arg);
5147 FRAME_CONFIG_SCROLL_BAR_LINES (f) = (XFIXNAT (arg) + unit - 1) / unit;
5148 if (FRAME_NATIVE_WINDOW (f))
5149 adjust_frame_size (f, -1, -1, 3, 0, Qscroll_bar_height);
5143 5150
5144 SET_FRAME_GARBAGED (f); 5151 SET_FRAME_GARBAGED (f);
5152 }
5145 } 5153 }
5146 else 5154 else
5147 { 5155 {