emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] emacs/src ChangeLog nsfns.m


From: Stefan Monnier
Subject: [Emacs-diffs] emacs/src ChangeLog nsfns.m
Date: Wed, 06 May 2009 03:09:13 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Stefan Monnier <monnier>        09/05/06 03:09:13

Modified files:
        src            : ChangeLog nsfns.m 

Log message:
        (ns_get_screen): Rewrite.
        Don't presume selected-frame is of type `ns'.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/ChangeLog?cvsroot=emacs&r1=1.7534&r2=1.7535
http://cvs.savannah.gnu.org/viewcvs/emacs/src/nsfns.m?cvsroot=emacs&r1=1.41&r2=1.42

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/src/ChangeLog,v
retrieving revision 1.7534
retrieving revision 1.7535
diff -u -b -r1.7534 -r1.7535
--- ChangeLog   6 May 2009 02:57:47 -0000       1.7534
+++ ChangeLog   6 May 2009 03:09:11 -0000       1.7535
@@ -1,5 +1,8 @@
 2009-05-06  Stefan Monnier  <address@hidden>
 
+       * nsfns.m (ns_get_screen): Rewrite.
+       Don't presume selected-frame is of type `ns'.
+
        * font.c (font_update_drivers): Sanity fallback to avoid disabling
        all drivers.
 

Index: nsfns.m
===================================================================
RCS file: /sources/emacs/emacs/src/nsfns.m,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -b -r1.41 -r1.42
--- nsfns.m     14 Mar 2009 21:20:06 -0000      1.41
+++ nsfns.m     6 May 2009 03:09:13 -0000       1.42
@@ -203,46 +203,32 @@
 
 
 static NSScreen *
-ns_get_screen (Lisp_Object anythingUnderTheSun)
+ns_get_screen (Lisp_Object screen)
 {
-  id window =nil;
-  NSScreen *screen = 0;
-
-  struct terminal *terminal;
-  struct ns_display_info *dpyinfo;
-  struct frame *f = NULL;
-  Lisp_Object frame;
-
-  if (INTEGERP (anythingUnderTheSun)) {
-    /* we got a terminal */
-    terminal = get_terminal (anythingUnderTheSun, 1);
-    dpyinfo = terminal->display_info.ns;
-    f = dpyinfo->x_focus_frame;
+  struct terminal *terminal = get_terminal (screen, 1);
+  if (terminal->type != output_ns)
+    // Not sure if this special case for nil is needed.  It does seem to be
+    // important in xfns.c for the make-frame call in frame-initialize,
+    // so let's keep it here for now.
+    return (NILP (screen) ? [NSScreen mainScreen] : NULL);
+  else
+    {
+      struct ns_display_info *dpyinfo = terminal->display_info.ns;
+      struct frame *f = dpyinfo->x_focus_frame;
     if (!f)
       f = dpyinfo->x_highlight_frame;
-
-  } else if (FRAMEP (anythingUnderTheSun) &&
-             FRAME_NS_P (XFRAME (anythingUnderTheSun))) {
-    /* we got a frame */
-    f = XFRAME (anythingUnderTheSun);
-
-  } else if (STRINGP (anythingUnderTheSun)) { /* FIXME/cl for multi-display */
-  }
-
   if (!f)
-    f = SELECTED_FRAME ();
-  if (f)
+       return NULL;
+      else
     {
+         id window = nil;
+         Lisp_Object frame;
+         eassert (FRAME_NS_P (f));
       XSETFRAME (frame, f);
       window = ns_get_window (frame);
+         return window ? [window screen] : NULL;
+       }
     }
-
-  if (window)
-    screen = [window screen];
-  if (!screen)
-    screen = [NSScreen mainScreen];
-
-  return screen;
 }
 
 




reply via email to

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