diff options
author | Po Lu <luangruo@yahoo.com> | 2022-01-26 01:20:48 +0000 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2022-01-26 01:20:48 +0000 |
commit | bca68550844da7849ab33616345525918e82f3c8 (patch) | |
tree | 36f25c960aa972e68053a38914f781b530f83c28 /src/haikumenu.c | |
parent | 19c6fb16746718d94b9e316503c5779de88e2e2d (diff) | |
download | emacs-bca68550844da7849ab33616345525918e82f3c8.tar.gz emacs-bca68550844da7849ab33616345525918e82f3c8.tar.bz2 emacs-bca68550844da7849ab33616345525918e82f3c8.zip |
Make `haiku-menu-bar-open' faster
* src/haikumenu.c (Fhaiku_menu_bar_open): Get draw lock before
updating the menu bar.
* src/haikuterm.c (haiku_read_socket): Don't update menu bar if
b->no_lock.
Diffstat (limited to 'src/haikumenu.c')
-rw-r--r-- | src/haikumenu.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/haikumenu.c b/src/haikumenu.c index 3fee5831608..b73baf72e05 100644 --- a/src/haikumenu.c +++ b/src/haikumenu.c @@ -644,17 +644,20 @@ the position of the last non-menu event instead. */) struct frame *f = decode_window_system_frame (frame); if (FRAME_EXTERNAL_MENU_BAR (f)) - set_frame_menubar (f, 1); + { + block_input (); + BView_draw_lock (FRAME_HAIKU_VIEW (f)); + set_frame_menubar (f, 1); + BMenuBar_start_tracking (FRAME_HAIKU_MENU_BAR (f)); + BView_draw_unlock (FRAME_HAIKU_VIEW (f)); + unblock_input (); + } else { return call2 (Qpopup_menu, call0 (Qmouse_menu_bar_map), last_nonmenu_event); } - block_input (); - BMenuBar_start_tracking (FRAME_HAIKU_MENU_BAR (f)); - unblock_input (); - return Qnil; } |