aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2021-12-24 03:21:21 +0000
committerPo Lu2021-12-24 03:21:21 +0000
commitfbe026cb3e2f8148dd1841e0f9974915ca32c84d (patch)
tree4961405039667ab2e3f1c85bccbd9550ee10e2e4 /src
parent7078af622b05971496bf07712775d19b3980a628 (diff)
downloademacs-fbe026cb3e2f8148dd1841e0f9974915ca32c84d.tar.gz
emacs-fbe026cb3e2f8148dd1841e0f9974915ca32c84d.zip
Acquire draw lock when updating menubar on Haiku
* src/haikumenu.c (digest_menu_items): Acquire draw lock.
Diffstat (limited to 'src')
-rw-r--r--src/haikumenu.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/haikumenu.c b/src/haikumenu.c
index 698da9d639c..2ce0aed1468 100644
--- a/src/haikumenu.c
+++ b/src/haikumenu.c
@@ -59,10 +59,17 @@ digest_menu_items (void *first_menu, int start, int menu_items_used,
59 menus[0] = first_menu; 59 menus[0] = first_menu;
60 60
61 void *window = NULL; 61 void *window = NULL;
62 void *view = NULL;
62 if (FRAMEP (Vmenu_updating_frame) && 63 if (FRAMEP (Vmenu_updating_frame) &&
63 FRAME_LIVE_P (XFRAME (Vmenu_updating_frame)) && 64 FRAME_LIVE_P (XFRAME (Vmenu_updating_frame)) &&
64 FRAME_HAIKU_P (XFRAME (Vmenu_updating_frame))) 65 FRAME_HAIKU_P (XFRAME (Vmenu_updating_frame)))
65 window = FRAME_HAIKU_WINDOW (XFRAME (Vmenu_updating_frame)); 66 {
67 window = FRAME_HAIKU_WINDOW (XFRAME (Vmenu_updating_frame));
68 view = FRAME_HAIKU_VIEW (XFRAME (Vmenu_updating_frame));
69 }
70
71 if (view)
72 BView_draw_lock (view);
66 73
67 while (i < menu_items_used) 74 while (i < menu_items_used)
68 { 75 {
@@ -161,6 +168,9 @@ digest_menu_items (void *first_menu, int start, int menu_items_used,
161 i += MENU_ITEMS_ITEM_LENGTH; 168 i += MENU_ITEMS_ITEM_LENGTH;
162 } 169 }
163 } 170 }
171
172 if (view)
173 BView_draw_unlock (view);
164} 174}
165 175
166static Lisp_Object 176static Lisp_Object