diff options
| author | Jan Djärv | 2014-11-09 14:47:02 +0100 |
|---|---|---|
| committer | Jan Djärv | 2014-11-09 14:47:02 +0100 |
| commit | d29658759a1343995f0d8b163d7fe445dd904b81 (patch) | |
| tree | c7cdf196d2119ef663a82d31fc6d3ab7cfaeca42 /src | |
| parent | ea283d21fc5697f112fa19b8fce1d5042b377132 (diff) | |
| download | emacs-d29658759a1343995f0d8b163d7fe445dd904b81.tar.gz emacs-d29658759a1343995f0d8b163d7fe445dd904b81.zip | |
* nsterm.h (EmacsScroller): judge returns bool.
* nsterm.m (ns_set_vertical_scroll_bar): Release bar.
(ns_judge_scroll_bars): Only set removed if judge returns true.
(judge): Returns bool == condemned. Remove self from window.
(setPosition:portion:whole:): Remove raise SIGIO.
Fixes: debbugs:18757
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 9 | ||||
| -rw-r--r-- | src/nsterm.h | 2 | ||||
| -rw-r--r-- | src/nsterm.m | 18 |
3 files changed, 19 insertions, 10 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 7b595b5f9e9..0f9ef11c9d7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,12 @@ | |||
| 1 | 2014-11-09 Jan Djärv <jan.h.d@swipnet.se> | ||
| 2 | |||
| 3 | * nsterm.h (EmacsScroller): judge returns bool. | ||
| 4 | |||
| 5 | * nsterm.m (ns_set_vertical_scroll_bar): Release bar. | ||
| 6 | (ns_judge_scroll_bars): Only set removed if judge returns true. | ||
| 7 | (judge): Returns bool == condemned. Remove self from window. | ||
| 8 | (setPosition:portion:whole:): Remove raise SIGIO (Bug#18757). | ||
| 9 | |||
| 1 | 2014-11-08 Jan Djärv <jan.h.d@swipnet.se> | 10 | 2014-11-08 Jan Djärv <jan.h.d@swipnet.se> |
| 2 | 11 | ||
| 3 | * nsterm.m (init): Replace OSX 10.9 check with IMPL_COCOA. | 12 | * nsterm.m (init): Replace OSX 10.9 check with IMPL_COCOA. |
diff --git a/src/nsterm.h b/src/nsterm.h index cc5ec0d014b..1c3fda82649 100644 --- a/src/nsterm.h +++ b/src/nsterm.h | |||
| @@ -422,7 +422,7 @@ typedef float EmacsCGFloat; | |||
| 422 | - repeatScroll: (NSTimer *)sender; | 422 | - repeatScroll: (NSTimer *)sender; |
| 423 | - condemn; | 423 | - condemn; |
| 424 | - reprieve; | 424 | - reprieve; |
| 425 | - judge; | 425 | - (bool)judge; |
| 426 | @end | 426 | @end |
| 427 | 427 | ||
| 428 | 428 | ||
diff --git a/src/nsterm.m b/src/nsterm.m index 605baff00b2..9415922c6c9 100644 --- a/src/nsterm.m +++ b/src/nsterm.m | |||
| @@ -3853,6 +3853,7 @@ ns_set_vertical_scroll_bar (struct window *window, | |||
| 3853 | bar = XNS_SCROLL_BAR (window->vertical_scroll_bar); | 3853 | bar = XNS_SCROLL_BAR (window->vertical_scroll_bar); |
| 3854 | [bar removeFromSuperview]; | 3854 | [bar removeFromSuperview]; |
| 3855 | wset_vertical_scroll_bar (window, Qnil); | 3855 | wset_vertical_scroll_bar (window, Qnil); |
| 3856 | [bar release]; | ||
| 3856 | } | 3857 | } |
| 3857 | ns_clear_frame_area (f, sb_left, top, width, height); | 3858 | ns_clear_frame_area (f, sb_left, top, width, height); |
| 3858 | unblock_input (); | 3859 | unblock_input (); |
| @@ -3951,8 +3952,8 @@ ns_judge_scroll_bars (struct frame *f) | |||
| 3951 | { | 3952 | { |
| 3952 | view = [subviews objectAtIndex: i]; | 3953 | view = [subviews objectAtIndex: i]; |
| 3953 | if (![view isKindOfClass: [EmacsScroller class]]) continue; | 3954 | if (![view isKindOfClass: [EmacsScroller class]]) continue; |
| 3954 | [view judge]; | 3955 | if ([view judge]) |
| 3955 | removed = YES; | 3956 | removed = YES; |
| 3956 | } | 3957 | } |
| 3957 | 3958 | ||
| 3958 | if (removed) | 3959 | if (removed) |
| @@ -7189,9 +7190,10 @@ if (cols > 0 && rows > 0) | |||
| 7189 | } | 7190 | } |
| 7190 | 7191 | ||
| 7191 | 7192 | ||
| 7192 | - judge | 7193 | -(bool)judge |
| 7193 | { | 7194 | { |
| 7194 | NSTRACE (judge); | 7195 | NSTRACE (judge); |
| 7196 | bool ret = condemned; | ||
| 7195 | if (condemned) | 7197 | if (condemned) |
| 7196 | { | 7198 | { |
| 7197 | EmacsView *view; | 7199 | EmacsView *view; |
| @@ -7200,11 +7202,14 @@ if (cols > 0 && rows > 0) | |||
| 7200 | view = (EmacsView *)FRAME_NS_VIEW (frame); | 7202 | view = (EmacsView *)FRAME_NS_VIEW (frame); |
| 7201 | if (view != nil) | 7203 | if (view != nil) |
| 7202 | view->scrollbarsNeedingUpdate++; | 7204 | view->scrollbarsNeedingUpdate++; |
| 7205 | if (window) | ||
| 7206 | wset_vertical_scroll_bar (window, Qnil); | ||
| 7207 | window = 0; | ||
| 7203 | [self removeFromSuperview]; | 7208 | [self removeFromSuperview]; |
| 7204 | [self release]; | 7209 | [self release]; |
| 7205 | unblock_input (); | 7210 | unblock_input (); |
| 7206 | } | 7211 | } |
| 7207 | return self; | 7212 | return ret; |
| 7208 | } | 7213 | } |
| 7209 | 7214 | ||
| 7210 | 7215 | ||
| @@ -7259,11 +7264,6 @@ if (cols > 0 && rows > 0) | |||
| 7259 | #endif | 7264 | #endif |
| 7260 | } | 7265 | } |
| 7261 | 7266 | ||
| 7262 | /* Events may come here even if the event loop is not running. | ||
| 7263 | If we don't enter the event loop, the scroll bar will not update. | ||
| 7264 | So send SIGIO to ourselves. */ | ||
| 7265 | if (apploopnr == 0) raise (SIGIO); | ||
| 7266 | |||
| 7267 | return self; | 7267 | return self; |
| 7268 | } | 7268 | } |
| 7269 | 7269 | ||