aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 5c9c19bbcb..ceb9cad4d8 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,19 @@
+2010-03-29 Adrian Robert <[email protected]>
+
+ * 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 <[email protected]>
* Makefile.in (SOME_MACHINE_OBJECTS): Ensure dbus stuff is always
diff --git a/src/nsfns.m b/src/nsfns.m
index 357222bb18..9de7681b2f 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 89ed5ba252..01086e63b6 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 a4d06f82d9..7bc82e9610 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 54f467c9f8..81b97b25c1 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;