+2014-11-09 Jan Djärv <jan.h.d@swipnet.se>
+
+ * 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 (Bug#18757).
+
2014-11-08 Jan Djärv <jan.h.d@swipnet.se>
* nsterm.m (init): Replace OSX 10.9 check with IMPL_COCOA.
bar = XNS_SCROLL_BAR (window->vertical_scroll_bar);
[bar removeFromSuperview];
wset_vertical_scroll_bar (window, Qnil);
+ [bar release];
}
ns_clear_frame_area (f, sb_left, top, width, height);
unblock_input ();
{
view = [subviews objectAtIndex: i];
if (![view isKindOfClass: [EmacsScroller class]]) continue;
- [view judge];
- removed = YES;
+ if ([view judge])
+ removed = YES;
}
if (removed)
}
-- judge
+-(bool)judge
{
NSTRACE (judge);
+ bool ret = condemned;
if (condemned)
{
EmacsView *view;
view = (EmacsView *)FRAME_NS_VIEW (frame);
if (view != nil)
view->scrollbarsNeedingUpdate++;
+ if (window)
+ wset_vertical_scroll_bar (window, Qnil);
+ window = 0;
[self removeFromSuperview];
[self release];
unblock_input ();
}
- return self;
+ return ret;
}
#endif
}
- /* Events may come here even if the event loop is not running.
- If we don't enter the event loop, the scroll bar will not update.
- So send SIGIO to ourselves. */
- if (apploopnr == 0) raise (SIGIO);
-
return self;
}