diff options
| author | Martin Rudalics | 2024-11-28 18:53:45 +0100 |
|---|---|---|
| committer | Martin Rudalics | 2024-11-28 18:53:45 +0100 |
| commit | bda0bce9e4313c496fcfdcf4b6abeba3f68e5fac (patch) | |
| tree | 58403253cc9b424b6147356fc6ff560925b2bc68 | |
| parent | 3f99cdaf26dc606012384a6f191dc9d96483d437 (diff) | |
| download | emacs-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.c | 36 |
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 | { |