diff options
-rw-r--r-- | src/ChangeLog | 16 | ||||
-rw-r--r-- | src/nsfns.m | 20 | ||||
-rw-r--r-- | src/nsterm.h | 2 | ||||
-rw-r--r-- | src/nsterm.m | 2 | ||||
-rw-r--r-- | src/xdisp.c | 35 |
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; |