aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJan Djärv2014-11-09 14:47:02 +0100
committerJan Djärv2014-11-09 14:47:02 +0100
commitd29658759a1343995f0d8b163d7fe445dd904b81 (patch)
treec7cdf196d2119ef663a82d31fc6d3ab7cfaeca42 /src
parentea283d21fc5697f112fa19b8fce1d5042b377132 (diff)
downloademacs-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/ChangeLog9
-rw-r--r--src/nsterm.h2
-rw-r--r--src/nsterm.m18
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 @@
12014-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
12014-11-08 Jan Djärv <jan.h.d@swipnet.se> 102014-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