aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Djärv2014-10-30 20:15:38 +0100
committerJan Djärv2014-10-30 20:15:38 +0100
commitc465f1c27f538c0ef2afa01f179e1f472bd9f097 (patch)
tree319f47fff4397ba4e3909e4ab1b4abcc0397358c
parentb7bf631c809e7dc31ba423ac93bdf30d092f6129 (diff)
downloademacs-c465f1c27f538c0ef2afa01f179e1f472bd9f097.tar.gz
emacs-c465f1c27f538c0ef2afa01f179e1f472bd9f097.zip
* nsfns.m (ns_set_doc_edited): Do all logic (check frames) here
instead of in xdisp.c, function now takes void. * nsterm.h (ns_set_doc_edited): Declare taking no args. * xdisp.c (prepare_menu_bars): Remove HAVE_NS code. (redisplay_internal): Call ns_set_doc_edited if HAVE_NS (Bug#18884).
-rw-r--r--src/ChangeLog8
-rw-r--r--src/nsfns.m24
-rw-r--r--src/nsterm.h2
-rw-r--r--src/xdisp.c9
4 files changed, 28 insertions, 15 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index a66026fa091..584207802b4 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,13 @@
12014-10-30 Jan Djärv <jan.h.d@swipnet.se> 12014-10-30 Jan Djärv <jan.h.d@swipnet.se>
2 2
3 * nsterm.h (ns_set_doc_edited): Declare taking no args.
4
5 * nsfns.m (ns_set_doc_edited): Do all logic (check frames) here
6 instead of in xdisp.c, function now takes void. (Bug#18884).
7
8 * xdisp.c (prepare_menu_bars): Remove HAVE_NS code.
9 (redisplay_internal): Call ns_set_doc_edited if HAVE_NS (Bug#18884).
10
3 * nsterm.h (EmacsScroller): Replace Lisp_Object win with 11 * nsterm.h (EmacsScroller): Replace Lisp_Object win with
4 struct window* (Bug#18889). 12 struct window* (Bug#18889).
5 Remove getMouseMotionPart. 13 Remove getMouseMotionPart.
diff --git a/src/nsfns.m b/src/nsfns.m
index 9d9f5416c86..4fa62f56851 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -631,18 +631,26 @@ ns_set_name_as_filename (struct frame *f)
631 631
632 632
633void 633void
634ns_set_doc_edited (struct frame *f, Lisp_Object arg) 634ns_set_doc_edited (void)
635{ 635{
636 NSView *view = FRAME_NS_VIEW (f);
637 NSAutoreleasePool *pool; 636 NSAutoreleasePool *pool;
638 if (!MINI_WINDOW_P (XWINDOW (f->selected_window))) 637 Lisp_Object tail, frame;
638 block_input ();
639 pool = [[NSAutoreleasePool alloc] init];
640 FOR_EACH_FRAME (tail, frame)
639 { 641 {
640 block_input (); 642 BOOL edited = NO;
641 pool = [[NSAutoreleasePool alloc] init]; 643 struct frame *f = XFRAME (frame);
642 [[view window] setDocumentEdited: !NILP (arg)]; 644 struct window *w = XWINDOW (FRAME_SELECTED_WINDOW (f));
643 [pool release]; 645 NSView *view = FRAME_NS_VIEW (f);
644 unblock_input (); 646 if (!MINI_WINDOW_P (w))
647 edited = ! NILP (Fbuffer_modified_p (w->contents)) &&
648 ! NILP (Fbuffer_file_name (w->contents));
649 [[view window] setDocumentEdited: edited];
645 } 650 }
651
652 [pool release];
653 unblock_input ();
646} 654}
647 655
648 656
diff --git a/src/nsterm.h b/src/nsterm.h
index a6081e8da57..eb2165a89d3 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -818,7 +818,7 @@ extern void nxatoms_of_nsselect (void);
818extern int ns_lisp_to_cursor_type (Lisp_Object arg); 818extern int ns_lisp_to_cursor_type (Lisp_Object arg);
819extern Lisp_Object ns_cursor_type_to_lisp (int arg); 819extern Lisp_Object ns_cursor_type_to_lisp (int arg);
820extern void ns_set_name_as_filename (struct frame *f); 820extern void ns_set_name_as_filename (struct frame *f);
821extern void ns_set_doc_edited (struct frame *f, Lisp_Object arg); 821extern void ns_set_doc_edited (void);
822 822
823extern bool 823extern bool
824ns_defined_color (struct frame *f, 824ns_defined_color (struct frame *f,
diff --git a/src/xdisp.c b/src/xdisp.c
index f0726ecce70..c12ef753a45 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -11779,12 +11779,6 @@ prepare_menu_bars (void)
11779#ifdef HAVE_WINDOW_SYSTEM 11779#ifdef HAVE_WINDOW_SYSTEM
11780 update_tool_bar (f, 0); 11780 update_tool_bar (f, 0);
11781#endif 11781#endif
11782#ifdef HAVE_NS
11783 if (windows_or_buffers_changed
11784 && FRAME_NS_P (f))
11785 ns_set_doc_edited
11786 (f, Fbuffer_modified_p (XWINDOW (f->selected_window)->contents));
11787#endif
11788 UNGCPRO; 11782 UNGCPRO;
11789 } 11783 }
11790 11784
@@ -14149,6 +14143,9 @@ redisplay_internal (void)
14149#endif /* HAVE_WINDOW_SYSTEM */ 14143#endif /* HAVE_WINDOW_SYSTEM */
14150 14144
14151 end_of_redisplay: 14145 end_of_redisplay:
14146#ifdef HAVE_NS
14147 ns_set_doc_edited ();
14148#endif
14152 if (interrupt_input && interrupts_deferred) 14149 if (interrupt_input && interrupts_deferred)
14153 request_sigio (); 14150 request_sigio ();
14154 14151