aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2022-02-03 07:14:59 +0000
committerPo Lu2022-02-03 07:16:10 +0000
commitfc79118f19f9a33ceb98c25ef38c67d2b935b9da (patch)
tree0bf7ac779da86371c733d5b2dff5d68a50d39f23 /src
parentdce93e397d54de19353a9e768757009043be1fc2 (diff)
downloademacs-fc79118f19f9a33ceb98c25ef38c67d2b935b9da.tar.gz
emacs-fc79118f19f9a33ceb98c25ef38c67d2b935b9da.zip
Obtain draw lock outside haiku_start_clip
* src/haikuterm.c (haiku_start_clip): (haiku_end_clip): Stop obtaining the draw lock. (haiku_draw_glyph_string): Set draw lock here instead.
Diffstat (limited to 'src')
-rw-r--r--src/haikuterm.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/haikuterm.c b/src/haikuterm.c
index 1b2259bcc59..ac0540b77f8 100644
--- a/src/haikuterm.c
+++ b/src/haikuterm.c
@@ -1105,7 +1105,6 @@ static void
1105haiku_start_clip (struct glyph_string *s) 1105haiku_start_clip (struct glyph_string *s)
1106{ 1106{
1107 void *view = FRAME_HAIKU_VIEW (s->f); 1107 void *view = FRAME_HAIKU_VIEW (s->f);
1108 BView_draw_lock (view);
1109 BView_StartClip (view); 1108 BView_StartClip (view);
1110} 1109}
1111 1110
@@ -1114,7 +1113,6 @@ haiku_end_clip (struct glyph_string *s)
1114{ 1113{
1115 void *view = FRAME_HAIKU_VIEW (s->f); 1114 void *view = FRAME_HAIKU_VIEW (s->f);
1116 BView_EndClip (view); 1115 BView_EndClip (view);
1117 BView_draw_unlock (view);
1118} 1116}
1119 1117
1120static void 1118static void
@@ -1448,7 +1446,11 @@ haiku_draw_image_glyph_string (struct glyph_string *s)
1448static void 1446static void
1449haiku_draw_glyph_string (struct glyph_string *s) 1447haiku_draw_glyph_string (struct glyph_string *s)
1450{ 1448{
1449 void *view;
1450
1451 block_input (); 1451 block_input ();
1452 view = FRAME_HAIKU_VIEW (s->f);
1453 BView_draw_lock (view);
1452 prepare_face_for_display (s->f, s->face); 1454 prepare_face_for_display (s->f, s->face);
1453 1455
1454 struct face *face = s->face; 1456 struct face *face = s->face;
@@ -1597,6 +1599,7 @@ haiku_draw_glyph_string (struct glyph_string *s)
1597 } 1599 }
1598 } 1600 }
1599 haiku_end_clip (s); 1601 haiku_end_clip (s);
1602 BView_draw_unlock (view);
1600 unblock_input (); 1603 unblock_input ();
1601} 1604}
1602 1605