From: Jan Djärv Date: Sat, 8 Nov 2014 19:40:17 +0000 (+0100) Subject: * nsterm.m (ns_set_vertical_scroll_bar): Don't call bar setPosition: unless X-Git-Tag: emacs-24.4.90~249 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d244e9bf0369c630386efbdc69ea123ae1289844;p=emacs.git * nsterm.m (ns_set_vertical_scroll_bar): Don't call bar setPosition: unless needed (Bug#18757). Fixes: debbugs:18993 --- diff --git a/src/ChangeLog b/src/ChangeLog index 1544df0da8c..7b595b5f9e9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -3,6 +3,8 @@ * nsterm.m (init): Replace OSX 10.9 check with IMPL_COCOA. (run): Ditto. Only use non-system event loop if OSX version is exactly 10.9 (Bug#18993). + (ns_set_vertical_scroll_bar): Don't call bar setPosition: unless + needed (Bug#18757). 2014-11-07 Michael Albinus diff --git a/src/nsterm.m b/src/nsterm.m index 190698db1fe..605baff00b2 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -3802,6 +3802,7 @@ ns_set_vertical_scroll_bar (struct window *window, int top, left, height, width, sb_width, sb_left; EmacsScroller *bar; BOOL fringe_extended_p; + BOOL update_p = YES; /* optimization; display engine sends WAY too many of these.. */ if (!NILP (window->vertical_scroll_bar)) @@ -3816,6 +3817,7 @@ ns_set_vertical_scroll_bar (struct window *window, } else view->scrollbarsNeedingUpdate--; + update_p = NO; } } @@ -3869,6 +3871,7 @@ ns_set_vertical_scroll_bar (struct window *window, bar = [[EmacsScroller alloc] initFrame: r window: win]; wset_vertical_scroll_bar (window, make_save_ptr (bar)); + update_p = YES; } else { @@ -3881,10 +3884,12 @@ ns_set_vertical_scroll_bar (struct window *window, if (oldRect.origin.x != r.origin.x) ns_clear_frame_area (f, sb_left, top, width, height); [bar setFrame: r]; + update_p = YES; } } - [bar setPosition: position portion: portion whole: whole]; + if (update_p) + [bar setPosition: position portion: portion whole: whole]; unblock_input (); }