diff options
| author | Jan Djärv | 2014-10-30 20:15:38 +0100 |
|---|---|---|
| committer | Jan Djärv | 2014-10-30 20:15:38 +0100 |
| commit | c465f1c27f538c0ef2afa01f179e1f472bd9f097 (patch) | |
| tree | 319f47fff4397ba4e3909e4ab1b4abcc0397358c | |
| parent | b7bf631c809e7dc31ba423ac93bdf30d092f6129 (diff) | |
| download | emacs-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/ChangeLog | 8 | ||||
| -rw-r--r-- | src/nsfns.m | 24 | ||||
| -rw-r--r-- | src/nsterm.h | 2 | ||||
| -rw-r--r-- | src/xdisp.c | 9 |
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 @@ | |||
| 1 | 2014-10-30 Jan Djärv <jan.h.d@swipnet.se> | 1 | 2014-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 | ||
| 633 | void | 633 | void |
| 634 | ns_set_doc_edited (struct frame *f, Lisp_Object arg) | 634 | ns_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); | |||
| 818 | extern int ns_lisp_to_cursor_type (Lisp_Object arg); | 818 | extern int ns_lisp_to_cursor_type (Lisp_Object arg); |
| 819 | extern Lisp_Object ns_cursor_type_to_lisp (int arg); | 819 | extern Lisp_Object ns_cursor_type_to_lisp (int arg); |
| 820 | extern void ns_set_name_as_filename (struct frame *f); | 820 | extern void ns_set_name_as_filename (struct frame *f); |
| 821 | extern void ns_set_doc_edited (struct frame *f, Lisp_Object arg); | 821 | extern void ns_set_doc_edited (void); |
| 822 | 822 | ||
| 823 | extern bool | 823 | extern bool |
| 824 | ns_defined_color (struct frame *f, | 824 | ns_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 | ||