diff options
| author | Po Lu | 2022-02-03 07:14:59 +0000 |
|---|---|---|
| committer | Po Lu | 2022-02-03 07:16:10 +0000 |
| commit | fc79118f19f9a33ceb98c25ef38c67d2b935b9da (patch) | |
| tree | 0bf7ac779da86371c733d5b2dff5d68a50d39f23 /src | |
| parent | dce93e397d54de19353a9e768757009043be1fc2 (diff) | |
| download | emacs-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.c | 7 |
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 | |||
| 1105 | haiku_start_clip (struct glyph_string *s) | 1105 | haiku_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 | ||
| 1120 | static void | 1118 | static void |
| @@ -1448,7 +1446,11 @@ haiku_draw_image_glyph_string (struct glyph_string *s) | |||
| 1448 | static void | 1446 | static void |
| 1449 | haiku_draw_glyph_string (struct glyph_string *s) | 1447 | haiku_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 | ||