emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-24 r117694: * nsterm.h (EmacsScroller): judge return


From: Jan D.
Subject: [Emacs-diffs] emacs-24 r117694: * nsterm.h (EmacsScroller): judge returns bool.
Date: Sun, 09 Nov 2014 13:47:07 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117694
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/18757
committer: Jan D. <address@hidden>
branch nick: emacs-24
timestamp: Sun 2014-11-09 14:47:02 +0100
message:
  * 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.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/nsterm.h                   nsterm.h-20091113204419-o5vbwnq5f7feedwu-8746
  src/nsterm.m                   nsterm.m-20091113204419-o5vbwnq5f7feedwu-8747
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-11-08 19:40:17 +0000
+++ b/src/ChangeLog     2014-11-09 13:47:02 +0000
@@ -1,3 +1,12 @@
+2014-11-09  Jan Djärv  <address@hidden>
+
+       * 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  <address@hidden>
 
        * nsterm.m (init): Replace OSX 10.9 check with IMPL_COCOA.

=== modified file 'src/nsterm.h'
--- a/src/nsterm.h      2014-11-08 16:32:37 +0000
+++ b/src/nsterm.h      2014-11-09 13:47:02 +0000
@@ -422,7 +422,7 @@
 - repeatScroll: (NSTimer *)sender;
 - condemn;
 - reprieve;
-- judge;
+- (bool)judge;
 @end
 
 

=== modified file 'src/nsterm.m'
--- a/src/nsterm.m      2014-11-08 19:40:17 +0000
+++ b/src/nsterm.m      2014-11-09 13:47:02 +0000
@@ -3853,6 +3853,7 @@
           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 ();
@@ -3951,8 +3952,8 @@
     {
       view = [subviews objectAtIndex: i];
       if (![view isKindOfClass: [EmacsScroller class]]) continue;
-      [view judge];
-      removed = YES;
+      if ([view judge])
+        removed = YES;
     }
 
   if (removed)
@@ -7189,9 +7190,10 @@
 }
 
 
-- judge
+-(bool)judge
 {
   NSTRACE (judge);
+  bool ret = condemned;
   if (condemned)
     {
       EmacsView *view;
@@ -7200,11 +7202,14 @@
       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;
 }
 
 
@@ -7259,11 +7264,6 @@
 #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;
 }
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]