[Top][All Lists]
[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;
}
- [Emacs-diffs] emacs/src ChangeLog nsfns.m,
Stefan Monnier <=