aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJan Djärv2014-06-30 14:38:09 +0200
committerJan Djärv2014-06-30 14:38:09 +0200
commit9c660a187ce2dd68a78c915c0006050c0cdbbffc (patch)
tree3728724a21d447638565862d41fd68cf34bf9472 /src
parentde12301ea1959d81f3ad4c5b624ee998ffb55e2b (diff)
downloademacs-9c660a187ce2dd68a78c915c0006050c0cdbbffc.tar.gz
emacs-9c660a187ce2dd68a78c915c0006050c0cdbbffc.zip
Remove unnecessary redisplays in NS port.
* nsmenu.m (update_frame_tool_bar): Set wait_for_tool_bar to NO when setNeedsDisplay is called so we don't trigger redisplay for every tool bar update. * nsterm.m (any_help_event_p): New variable. (mouseMoved:): Set any_help_event_p to YES if help event is generated. Remove else with empty help event that triggered redisplay for every mouse move. (windowDidResignKey:): If any_help_event_p, generate empty help event.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog13
-rw-r--r--src/nsmenu.m3
-rw-r--r--src/nsterm.m19
3 files changed, 30 insertions, 5 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 4a6b6a4769c..b87555344f9 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,16 @@
12014-06-30 Jan Djärv <jan.h.d@swipnet.se>
2
3 * nsmenu.m (update_frame_tool_bar): Set wait_for_tool_bar to NO
4 when setNeedsDisplay is called so we don't trigger redisplay for every
5 tool bar update.
6
7 * nsterm.m (any_help_event_p): New variable.
8 (mouseMoved:): Set any_help_event_p to YES if help event is
9 generated. Remove else with empty help event that triggered redisplay
10 for every mouse move.
11 (windowDidResignKey:): If any_help_event_p, generate empty help
12 event.
13
12014-06-29 Dmitry Antipov <dmantipov@yandex.ru> 142014-06-29 Dmitry Antipov <dmantipov@yandex.ru>
2 15
3 * xfns.c (Qsuppress_icon): Remove; no real users. 16 * xfns.c (Qsuppress_icon): Remove; no real users.
diff --git a/src/nsmenu.m b/src/nsmenu.m
index 24c1189584b..778b068ef8b 100644
--- a/src/nsmenu.m
+++ b/src/nsmenu.m
@@ -1152,7 +1152,10 @@ update_frame_tool_bar (struct frame *f)
1152 FRAME_TOOLBAR_HEIGHT (f) = 0; 1152 FRAME_TOOLBAR_HEIGHT (f) = 0;
1153 1153
1154 if (view->wait_for_tool_bar && FRAME_TOOLBAR_HEIGHT (f) > 0) 1154 if (view->wait_for_tool_bar && FRAME_TOOLBAR_HEIGHT (f) > 0)
1155 {
1156 view->wait_for_tool_bar = NO;
1155 [view setNeedsDisplay: YES]; 1157 [view setNeedsDisplay: YES];
1158 }
1156 1159
1157 unblock_input (); 1160 unblock_input ();
1158} 1161}
diff --git a/src/nsterm.m b/src/nsterm.m
index c6450804f57..69738ba924a 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -283,6 +283,11 @@ static NSMutableArray *ns_pending_files, *ns_pending_service_names,
283static BOOL ns_do_open_file = NO; 283static BOOL ns_do_open_file = NO;
284static BOOL ns_last_use_native_fullscreen; 284static BOOL ns_last_use_native_fullscreen;
285 285
286/* Non-zero means that a HELP_EVENT has been generated since Emacs
287 start. */
288
289static BOOL any_help_event_p = NO;
290
286static struct { 291static struct {
287 struct input_event *q; 292 struct input_event *q;
288 int nr, cap; 293 int nr, cap;
@@ -5688,14 +5693,10 @@ not_in_argv (NSString *arg)
5688 /* NOTE: help_echo_{window,pos,object} are set in xdisp.c 5693 /* NOTE: help_echo_{window,pos,object} are set in xdisp.c
5689 (note_mouse_highlight), which is called through the 5694 (note_mouse_highlight), which is called through the
5690 note_mouse_movement () call above */ 5695 note_mouse_movement () call above */
5696 any_help_event_p = YES;
5691 gen_help_event (help_echo_string, frame, help_echo_window, 5697 gen_help_event (help_echo_string, frame, help_echo_window,
5692 help_echo_object, help_echo_pos); 5698 help_echo_object, help_echo_pos);
5693 } 5699 }
5694 else
5695 {
5696 help_echo_string = Qnil;
5697 gen_help_event (Qnil, frame, Qnil, Qnil, 0);
5698 }
5699 5700
5700 if (emacsframe->mouse_moved && send_appdefined) 5701 if (emacsframe->mouse_moved && send_appdefined)
5701 ns_send_appdefined (-1); 5702 ns_send_appdefined (-1);
@@ -5973,6 +5974,14 @@ if (cols > 0 && rows > 0)
5973 x_set_frame_alpha (emacsframe); 5974 x_set_frame_alpha (emacsframe);
5974 } 5975 }
5975 5976
5977 if (any_help_event_p)
5978 {
5979 Lisp_Object frame;
5980 XSETFRAME (frame, emacsframe);
5981 help_echo_string = Qnil;
5982 gen_help_event (Qnil, frame, Qnil, Qnil, 0);
5983 }
5984
5976 if (emacs_event && is_focus_frame) 5985 if (emacs_event && is_focus_frame)
5977 { 5986 {
5978 [self deleteWorkingText]; 5987 [self deleteWorkingText];