1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-15 09:47:20 +00:00

(x_set_toolkit_scroll_bar_thumb): Don't set control

values if control is not visible or values are not changed.
This commit is contained in:
YAMAMOTO Mitsuharu 2006-02-23 10:43:32 +00:00
parent 92fb551662
commit 5b574e6957
2 changed files with 16 additions and 9 deletions

View File

@ -7,6 +7,9 @@
* dispnew.c (update_text_area): Avoid needless redraw of rightmost
glyph whose face is extended to the text area end.
* macterm.c (x_set_toolkit_scroll_bar_thumb): Don't set control
values if control is not visible or values are not changed.
2006-02-22 Stefan Monnier <monnier@iro.umontreal.ca>
* window.c (Fwindow_list): Check `window' before doing XWINDOW.

View File

@ -4529,7 +4529,7 @@ x_set_toolkit_scroll_bar_thumb (bar, portion, position, whole)
int portion, position, whole;
{
ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar);
int value, viewsize, maximum, visible_p;
int value, viewsize, maximum;
if (whole == 0 || XINT (bar->track_height) == 0)
value = 0, viewsize = 1, maximum = 0;
@ -4542,16 +4542,20 @@ x_set_toolkit_scroll_bar_thumb (bar, portion, position, whole)
BLOCK_INPUT;
/* Temporarily hide the scroll bar to avoid multiple redraws. */
visible_p = IsControlVisible (ch);
SetControlVisibility (ch, false, false);
if (IsControlVisible (ch)
&& (GetControlViewSize (ch) != viewsize
|| GetControl32BitValue (ch) != value
|| GetControl32BitMaximum (ch) != maximum))
{
/* Temporarily hide the scroll bar to avoid multiple redraws. */
SetControlVisibility (ch, false, false);
SetControl32BitMinimum (ch, 0);
SetControl32BitMaximum (ch, maximum);
SetControl32BitValue (ch, value);
SetControlViewSize (ch, viewsize);
SetControl32BitMaximum (ch, maximum);
SetControl32BitValue (ch, value);
SetControlViewSize (ch, viewsize);
SetControlVisibility (ch, visible_p, true);
SetControlVisibility (ch, true, true);
}
UNBLOCK_INPUT;
}