summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2010-03-29 19:48:44 -0400
committerChong Yidong <cyd@stupidchicken.com>2010-03-29 19:48:44 -0400
commit9ae6e189241f0b917d9b9c299738c79240151c59 (patch)
tree60ce2e3bf83af4dcc5c298bf92a337122747bd7e
parent3cbcd186e13c3c27e3942a448d8cf708cf47c934 (diff)
downloademacs-9ae6e189241f0b917d9b9c299738c79240151c59.tar.gz
Clean up unneeded ns_set_icon_type calls.
Patch from Adrian Robert, see http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01391.html * xdisp.c (x_consider_frame_title, update_window_cursor): Remove HAVE_NS conditionals. (prepare_menu_bars)[HAVE_NS]: Call ns_set_doc_edited. * nsfns.m (x_implicitly_set_name): If frame-title-format is t, use filename for the title. (ns_set_doc_edited): Do nothing if the selected window is a minibuffer window. * nsterm.h: Add prototypes for ns_set_name_as_filename and ns_set_doc_edited. * nsterm.m: Remove unneeded prototype.
-rw-r--r--src/ChangeLog16
-rw-r--r--src/nsfns.m20
-rw-r--r--src/nsterm.h2
-rw-r--r--src/nsterm.m2
-rw-r--r--src/xdisp.c35
5 files changed, 37 insertions, 38 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 5c9c19bbcb1..ceb9cad4d88 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,19 @@
+2010-03-29 Adrian Robert <adrian.b.robert@gmail.com>
+
+ * xdisp.c (x_consider_frame_title, update_window_cursor): Remove
+ HAVE_NS conditionals.
+ (prepare_menu_bars)[HAVE_NS]: Call ns_set_doc_edited.
+
+ * nsfns.m (x_implicitly_set_name): If frame-title-format is t, use
+ filename for the title.
+ (ns_set_doc_edited): Do nothing if the selected window is a
+ minibuffer window.
+
+ * nsterm.h: Add prototypes for ns_set_name_as_filename and
+ ns_set_doc_edited.
+
+ * nsterm.m: Remove unneeded prototype.
+
2010-03-28 Glenn Morris <rgm@gnu.org>
* Makefile.in (SOME_MACHINE_OBJECTS): Ensure dbus stuff is always
diff --git a/src/nsfns.m b/src/nsfns.m
index 357222bb18a..9de7681b2f7 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -81,6 +81,7 @@ extern Lisp_Object Qunderline, Qundefined;
extern Lisp_Object Qheight, Qminibuffer, Qname, Qonly, Qwidth;
extern Lisp_Object Qunsplittable, Qmenu_bar_lines, Qbuffer_predicate, Qtitle;
extern Lisp_Object Qnone;
+extern Lisp_Object Vframe_title_format;
Lisp_Object Qbuffered;
Lisp_Object Qfontsize;
@@ -583,6 +584,8 @@ x_implicitly_set_name (FRAME_PTR f, Lisp_Object arg, Lisp_Object oldval)
NSTRACE (x_implicitly_set_name);
if (FRAME_ICONIFIED_P (f))
ns_set_name_iconic (f, arg, 0);
+ else if (FRAME_NS_P (f) && EQ (Vframe_title_format, Qt))
+ ns_set_name_as_filename (f);
else
ns_set_name (f, arg, 0);
}
@@ -627,14 +630,14 @@ ns_set_name_as_filename (struct frame *f)
BLOCK_INPUT;
pool = [[NSAutoreleasePool alloc] init];
- name =XBUFFER (buf)->filename;
+ name = XBUFFER (buf)->filename;
if (NILP (name) || FRAME_ICONIFIED_P (f)) name =XBUFFER (buf)->name;
if (FRAME_ICONIFIED_P (f) && !NILP (f->icon_name))
name = f->icon_name;
if (NILP (name))
- name = build_string([ns_app_name UTF8String]);
+ name = build_string ([ns_app_name UTF8String]);
else
CHECK_STRING (name);
@@ -687,11 +690,14 @@ ns_set_doc_edited (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
{
NSView *view = FRAME_NS_VIEW (f);
NSAutoreleasePool *pool;
- BLOCK_INPUT;
- pool = [[NSAutoreleasePool alloc] init];
- [[view window] setDocumentEdited: !NILP (arg)];
- [pool release];
- UNBLOCK_INPUT;
+ if (!MINI_WINDOW_P (XWINDOW (f->selected_window)))
+ {
+ BLOCK_INPUT;
+ pool = [[NSAutoreleasePool alloc] init];
+ [[view window] setDocumentEdited: !NILP (arg)];
+ [pool release];
+ UNBLOCK_INPUT;
+ }
}
diff --git a/src/nsterm.h b/src/nsterm.h
index 89ed5ba252f..01086e63b69 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -708,6 +708,8 @@ extern void nxatoms_of_nsselect ();
extern int ns_lisp_to_cursor_type ();
extern Lisp_Object ns_cursor_type_to_lisp (int arg);
extern Lisp_Object Qnone;
+extern void ns_set_name_as_filename (struct frame *f);
+extern void ns_set_doc_edited (struct frame *f, Lisp_Object arg);
extern int
ns_defined_color (struct frame *f, char *name, XColor *color_def, int alloc,
diff --git a/src/nsterm.m b/src/nsterm.m
index a4d06f82d97..7bc82e96104 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -4173,8 +4173,6 @@ ns_term_shutdown (int sig)
ns_send_appdefined (-2);
}
-extern void update_window_cursor (struct window *w, int on);
-
- (void)fd_handler: (NSTimer *) fdEntry
/* --------------------------------------------------------------------------
Check data waiting on file descriptors and terminate if so
diff --git a/src/xdisp.c b/src/xdisp.c
index 54f467c9f8f..81b97b25c1c 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -9472,32 +9472,7 @@ x_consider_frame_title (frame)
if (! STRINGP (f->name)
|| SBYTES (f->name) != len
|| bcmp (title, SDATA (f->name), len) != 0)
- {
-#ifdef HAVE_NS
- if (FRAME_NS_P (f))
- {
- if (!MINI_WINDOW_P(XWINDOW(f->selected_window)))
- {
- if (EQ (fmt, Qt))
- ns_set_name_as_filename (f);
- else
- x_implicitly_set_name (f, make_string(title, len),
- Qnil);
- }
- }
- else
-#endif
- x_implicitly_set_name (f, make_string (title, len), Qnil);
- }
-#ifdef HAVE_NS
- if (FRAME_NS_P (f))
- {
- /* do this also for frames with explicit names */
- ns_implicitly_set_icon_type(f);
- ns_set_doc_edited(f, Fbuffer_modified_p
- (XWINDOW (f->selected_window)->buffer), Qnil);
- }
-#endif
+ x_implicitly_set_name (f, make_string (title, len), Qnil);
}
}
@@ -9594,6 +9569,11 @@ prepare_menu_bars ()
#ifdef HAVE_WINDOW_SYSTEM
update_tool_bar (f, 0);
#endif
+#ifdef HAVE_NS
+ if (windows_or_buffers_changed)
+ ns_set_doc_edited (f, Fbuffer_modified_p
+ (XWINDOW (f->selected_window)->buffer));
+#endif
UNGCPRO;
}
@@ -22653,9 +22633,6 @@ display_and_set_cursor (w, on, hpos, vpos, x, y)
/* Switch the display of W's cursor on or off, according to the value
of ON. */
-#ifndef HAVE_NS
-static
-#endif
void
update_window_cursor (w, on)
struct window *w;