]> code.delx.au - gnu-emacs/commitdiff
(do_switch_frame) [NS_IMPL_COCOA]: Don't raise any window.
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 19 May 2009 03:30:36 +0000 (03:30 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 19 May 2009 03:30:36 +0000 (03:30 +0000)
(delete_frame) [NS_IMPL_COCOA]: Instead, do it here.

src/ChangeLog
src/frame.c

index 4645317e94bc6a2fdfb74b18c53ed8f821d3390d..b73bc05325eadf14b33c9a60d3dcbc980e967739 100644 (file)
@@ -1,3 +1,8 @@
+2009-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * frame.c (do_switch_frame) [NS_IMPL_COCOA]: Don't raise any window.
+       (delete_frame) [NS_IMPL_COCOA]: Instead, do it here.
+
 2009-05-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
        * xterm.c (x_delete_display): Don't call XrmDestroyDatabase here.
index afcc96cf6f7b9e1638c25befea66bfe19d7e8697..10713826b507d60816cd87ef6a23716946bf7ab9 100644 (file)
@@ -866,16 +866,6 @@ do_switch_frame (frame, track, for_deletion, norecord)
 
   Fselect_window (XFRAME (frame)->selected_window, norecord);
 
-#ifdef NS_IMPL_COCOA
-  /* Under NS, there is no system mechanism for choosing a new window to be
-     selected -- it is left to application code.  So the portion of THIS
-     application interfacing with NS needs to know about it. */
-  if (for_deletion && FRAME_VISIBLE_P (XFRAME (selected_frame))
-      && FRAME_LIVE_P (XFRAME (selected_frame))
-      && ! FRAME_ICONIFIED_P (XFRAME (selected_frame)))
-    Fraise_frame(Qnil);
-#endif
-
   /* We want to make sure that the next event generates a frame-switch
      event to the appropriate frame.  This seems kludgy to me, but
      before you take it out, make sure that evaluating something like
@@ -1423,6 +1413,15 @@ delete_frame (frame, force)
                break;
            }
        }
+#ifdef NS_IMPL_COCOA
+      else
+       /* Under NS, there is no system mechanism for choosing a new
+          window to get focus -- it is left to application code.
+          So the portion of THIS application interfacing with NS
+          needs to know about it.  We call Fraise_frame, but the
+          purpose is really to transfer focus.  */
+       Fraise_frame (frame1);
+#endif
 
       do_switch_frame (frame1, 0, 1, Qnil);
       sf = SELECTED_FRAME ();