diff options
| author | Po Lu | 2022-08-01 06:24:15 +0000 |
|---|---|---|
| committer | Po Lu | 2022-08-01 06:24:15 +0000 |
| commit | dd937784a3e3c79c5270cbfdb15a9f8df1600cde (patch) | |
| tree | 36ae8dfe999bf3f83d3fe99055581a513147b44e /src | |
| parent | 99754dad3c612703e06439cdb324033a25e24464 (diff) | |
| download | emacs-dd937784a3e3c79c5270cbfdb15a9f8df1600cde.tar.gz emacs-dd937784a3e3c79c5270cbfdb15a9f8df1600cde.zip | |
Improve frame synchronization support on Haiku
* src/ftcrfont.c (ftcrfont_draw):
* src/haikufns.c (haiku_set_background_color):
* src/haikuterm.c (haiku_clip_to_string):
(haiku_clip_to_string_exactly):
(haiku_clear_frame_area):
(haiku_clear_frame):
(haiku_draw_box_rect):
(haiku_draw_relief_rect):
(haiku_draw_underwave):
(haiku_draw_text_decoration):
(haiku_draw_plain_background):
(haiku_draw_stipple_background):
(haiku_draw_glyph_string_foreground):
(haiku_draw_glyphless_glyph_string_foreground):
(haiku_draw_stretch_glyph_string):
(haiku_start_clip):
(haiku_end_clip):
(haiku_clip_to_row):
(haiku_draw_composite_glyph_string_foreground):
(haiku_draw_image_glyph_string):
(haiku_draw_glyph_string):
(haiku_after_update_window_line):
(haiku_draw_hollow_cursor):
(haiku_draw_bar_cursor):
(haiku_draw_vertical_window_border):
(haiku_draw_window_divider):
(haiku_scroll_bar_create):
(haiku_set_horizontal_scroll_bar):
(haiku_set_vertical_scroll_bar):
(haiku_draw_fringe_bitmap):
(haiku_scroll_run):
(haiku_read_socket):
(haiku_flash):
(haiku_clear_under_internal_border):
(haiku_scroll_bar_remove):
* src/haikuterm.h (MAKE_FRAME_DIRTY):
(FRAME_CR_CONTEXT): Don't dirty frames if not necessary.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ftcrfont.c | 2 | ||||
| -rw-r--r-- | src/haikufns.c | 6 | ||||
| -rw-r--r-- | src/haikuterm.c | 88 | ||||
| -rw-r--r-- | src/haikuterm.h | 5 |
4 files changed, 51 insertions, 50 deletions
diff --git a/src/ftcrfont.c b/src/ftcrfont.c index 6bb41110d5c..119ec284094 100644 --- a/src/ftcrfont.c +++ b/src/ftcrfont.c | |||
| @@ -567,7 +567,7 @@ ftcrfont_draw (struct glyph_string *s, | |||
| 567 | unblock_input (); | 567 | unblock_input (); |
| 568 | return 0; | 568 | return 0; |
| 569 | } | 569 | } |
| 570 | BView_cr_dump_clipping (FRAME_HAIKU_VIEW (f), cr); | 570 | BView_cr_dump_clipping (FRAME_HAIKU_DRAWABLE (f), cr); |
| 571 | #endif | 571 | #endif |
| 572 | 572 | ||
| 573 | if (with_background) | 573 | if (with_background) |
diff --git a/src/haikufns.c b/src/haikufns.c index 64aa2fde4a1..aaa4e866228 100644 --- a/src/haikufns.c +++ b/src/haikufns.c | |||
| @@ -1505,9 +1505,9 @@ haiku_set_background_color (struct frame *f, Lisp_Object arg, Lisp_Object oldval | |||
| 1505 | 1505 | ||
| 1506 | if (FRAME_HAIKU_VIEW (f)) | 1506 | if (FRAME_HAIKU_VIEW (f)) |
| 1507 | { | 1507 | { |
| 1508 | BView_draw_lock (FRAME_HAIKU_VIEW (f), false, 0, 0, 0, 0); | 1508 | BView_draw_lock (FRAME_HAIKU_DRAWABLE (f), false, 0, 0, 0, 0); |
| 1509 | BView_SetViewColor (FRAME_HAIKU_VIEW (f), background); | 1509 | BView_SetViewColor (FRAME_HAIKU_DRAWABLE (f), background); |
| 1510 | BView_draw_unlock (FRAME_HAIKU_VIEW (f)); | 1510 | BView_draw_unlock (FRAME_HAIKU_DRAWABLE (f)); |
| 1511 | 1511 | ||
| 1512 | FRAME_OUTPUT_DATA (f)->cursor_fg = background; | 1512 | FRAME_OUTPUT_DATA (f)->cursor_fg = background; |
| 1513 | update_face_from_frame_parameter (f, Qbackground_color, arg); | 1513 | update_face_from_frame_parameter (f, Qbackground_color, arg); |
diff --git a/src/haikuterm.c b/src/haikuterm.c index f2bee1263d3..c2d4e34ba25 100644 --- a/src/haikuterm.c +++ b/src/haikuterm.c | |||
| @@ -163,15 +163,15 @@ haiku_clip_to_string (struct glyph_string *s) | |||
| 163 | /* If n[FOO].width is 0, it means to not draw at all, so set the | 163 | /* If n[FOO].width is 0, it means to not draw at all, so set the |
| 164 | clipping to some impossible value. */ | 164 | clipping to some impossible value. */ |
| 165 | if (r[0].width <= 0) | 165 | if (r[0].width <= 0) |
| 166 | BView_ClipToRect (FRAME_HAIKU_VIEW (s->f), | 166 | BView_ClipToRect (FRAME_HAIKU_DRAWABLE (s->f), |
| 167 | FRAME_PIXEL_WIDTH (s->f), | 167 | FRAME_PIXEL_WIDTH (s->f), |
| 168 | FRAME_PIXEL_HEIGHT (s->f), | 168 | FRAME_PIXEL_HEIGHT (s->f), |
| 169 | 10, 10); | 169 | 10, 10); |
| 170 | else | 170 | else |
| 171 | { | 171 | { |
| 172 | BView_ClipToRect (FRAME_HAIKU_VIEW (s->f), r[0].x, | 172 | BView_ClipToRect (FRAME_HAIKU_DRAWABLE (s->f), r[0].x, |
| 173 | r[0].y, r[0].width, r[0].height); | 173 | r[0].y, r[0].width, r[0].height); |
| 174 | BView_invalidate_region (FRAME_HAIKU_VIEW (s->f), r[0].x, | 174 | BView_invalidate_region (FRAME_HAIKU_DRAWABLE (s->f), r[0].x, |
| 175 | r[0].y, r[0].width, r[0].height); | 175 | r[0].y, r[0].width, r[0].height); |
| 176 | } | 176 | } |
| 177 | } | 177 | } |
| @@ -181,15 +181,15 @@ haiku_clip_to_string (struct glyph_string *s) | |||
| 181 | /* If n[FOO].width is 0, it means to not draw at all, so set the | 181 | /* If n[FOO].width is 0, it means to not draw at all, so set the |
| 182 | clipping to some impossible value. */ | 182 | clipping to some impossible value. */ |
| 183 | if (r[1].width <= 0) | 183 | if (r[1].width <= 0) |
| 184 | BView_ClipToRect (FRAME_HAIKU_VIEW (s->f), | 184 | BView_ClipToRect (FRAME_HAIKU_DRAWABLE (s->f), |
| 185 | FRAME_PIXEL_WIDTH (s->f), | 185 | FRAME_PIXEL_WIDTH (s->f), |
| 186 | FRAME_PIXEL_HEIGHT (s->f), | 186 | FRAME_PIXEL_HEIGHT (s->f), |
| 187 | 10, 10); | 187 | 10, 10); |
| 188 | else | 188 | else |
| 189 | { | 189 | { |
| 190 | BView_ClipToRect (FRAME_HAIKU_VIEW (s->f), r[1].x, r[1].y, | 190 | BView_ClipToRect (FRAME_HAIKU_DRAWABLE (s->f), r[1].x, r[1].y, |
| 191 | r[1].width, r[1].height); | 191 | r[1].width, r[1].height); |
| 192 | BView_invalidate_region (FRAME_HAIKU_VIEW (s->f), r[1].x, | 192 | BView_invalidate_region (FRAME_HAIKU_DRAWABLE (s->f), r[1].x, |
| 193 | r[1].y, r[1].width, r[1].height); | 193 | r[1].y, r[1].width, r[1].height); |
| 194 | } | 194 | } |
| 195 | } | 195 | } |
| @@ -198,9 +198,9 @@ haiku_clip_to_string (struct glyph_string *s) | |||
| 198 | static void | 198 | static void |
| 199 | haiku_clip_to_string_exactly (struct glyph_string *s, struct glyph_string *dst) | 199 | haiku_clip_to_string_exactly (struct glyph_string *s, struct glyph_string *dst) |
| 200 | { | 200 | { |
| 201 | BView_ClipToRect (FRAME_HAIKU_VIEW (s->f), s->x, s->y, | 201 | BView_ClipToRect (FRAME_HAIKU_DRAWABLE (s->f), s->x, s->y, |
| 202 | s->width, s->height); | 202 | s->width, s->height); |
| 203 | BView_invalidate_region (FRAME_HAIKU_VIEW (s->f), s->x, | 203 | BView_invalidate_region (FRAME_HAIKU_DRAWABLE (s->f), s->x, |
| 204 | s->y, s->width, s->height); | 204 | s->y, s->width, s->height); |
| 205 | } | 205 | } |
| 206 | 206 | ||
| @@ -246,7 +246,7 @@ static void | |||
| 246 | haiku_clear_frame_area (struct frame *f, int x, int y, | 246 | haiku_clear_frame_area (struct frame *f, int x, int y, |
| 247 | int width, int height) | 247 | int width, int height) |
| 248 | { | 248 | { |
| 249 | void *vw = FRAME_HAIKU_VIEW (f); | 249 | void *vw = FRAME_HAIKU_DRAWABLE (f); |
| 250 | block_input (); | 250 | block_input (); |
| 251 | BView_draw_lock (vw, true, x, y, width, height); | 251 | BView_draw_lock (vw, true, x, y, width, height); |
| 252 | BView_StartClip (vw); | 252 | BView_StartClip (vw); |
| @@ -261,7 +261,7 @@ haiku_clear_frame_area (struct frame *f, int x, int y, | |||
| 261 | static void | 261 | static void |
| 262 | haiku_clear_frame (struct frame *f) | 262 | haiku_clear_frame (struct frame *f) |
| 263 | { | 263 | { |
| 264 | void *view = FRAME_HAIKU_VIEW (f); | 264 | void *view = FRAME_HAIKU_DRAWABLE (f); |
| 265 | 265 | ||
| 266 | mark_window_cursors_off (XWINDOW (FRAME_ROOT_WINDOW (f))); | 266 | mark_window_cursors_off (XWINDOW (FRAME_ROOT_WINDOW (f))); |
| 267 | 267 | ||
| @@ -596,7 +596,7 @@ haiku_draw_box_rect (struct glyph_string *s, int left_x, int top_y, | |||
| 596 | int right_x, int bottom_y, int hwidth, int vwidth, | 596 | int right_x, int bottom_y, int hwidth, int vwidth, |
| 597 | bool left_p, bool right_p, struct haiku_rect *clip_rect) | 597 | bool left_p, bool right_p, struct haiku_rect *clip_rect) |
| 598 | { | 598 | { |
| 599 | void *view = FRAME_HAIKU_VIEW (s->f); | 599 | void *view = FRAME_HAIKU_DRAWABLE (s->f); |
| 600 | struct face *face = s->face; | 600 | struct face *face = s->face; |
| 601 | 601 | ||
| 602 | BView_SetHighColor (view, face->box_color); | 602 | BView_SetHighColor (view, face->box_color); |
| @@ -660,7 +660,7 @@ haiku_draw_relief_rect (struct glyph_string *s, int left_x, int top_y, | |||
| 660 | uint32_t color_white, color_black; | 660 | uint32_t color_white, color_black; |
| 661 | void *view; | 661 | void *view; |
| 662 | 662 | ||
| 663 | view = FRAME_HAIKU_VIEW (s->f); | 663 | view = FRAME_HAIKU_DRAWABLE (s->f); |
| 664 | haiku_calculate_relief_colors (s, &color_white, &color_black); | 664 | haiku_calculate_relief_colors (s, &color_white, &color_black); |
| 665 | 665 | ||
| 666 | BView_SetHighColor (view, raised_p ? color_white : color_black); | 666 | BView_SetHighColor (view, raised_p ? color_white : color_black); |
| @@ -769,7 +769,7 @@ haiku_draw_underwave (struct glyph_string *s, int width, int x) | |||
| 769 | dy = wave_height - 1; | 769 | dy = wave_height - 1; |
| 770 | y = s->ybase - wave_height + 3; | 770 | y = s->ybase - wave_height + 3; |
| 771 | xmax = x + width; | 771 | xmax = x + width; |
| 772 | view = FRAME_HAIKU_VIEW (s->f); | 772 | view = FRAME_HAIKU_DRAWABLE (s->f); |
| 773 | 773 | ||
| 774 | BView_StartClip (view); | 774 | BView_StartClip (view); |
| 775 | haiku_clip_to_string (s); | 775 | haiku_clip_to_string (s); |
| @@ -811,7 +811,7 @@ haiku_draw_text_decoration (struct glyph_string *s, struct face *face, | |||
| 811 | if (s->hl == DRAW_CURSOR) | 811 | if (s->hl == DRAW_CURSOR) |
| 812 | haiku_merge_cursor_foreground (s, &cursor_color, NULL); | 812 | haiku_merge_cursor_foreground (s, &cursor_color, NULL); |
| 813 | 813 | ||
| 814 | void *view = FRAME_HAIKU_VIEW (s->f); | 814 | void *view = FRAME_HAIKU_DRAWABLE (s->f); |
| 815 | 815 | ||
| 816 | if (face->underline) | 816 | if (face->underline) |
| 817 | { | 817 | { |
| @@ -1013,7 +1013,7 @@ static void | |||
| 1013 | haiku_draw_plain_background (struct glyph_string *s, struct face *face, | 1013 | haiku_draw_plain_background (struct glyph_string *s, struct face *face, |
| 1014 | int x, int y, int width, int height) | 1014 | int x, int y, int width, int height) |
| 1015 | { | 1015 | { |
| 1016 | void *view = FRAME_HAIKU_VIEW (s->f); | 1016 | void *view = FRAME_HAIKU_DRAWABLE (s->f); |
| 1017 | unsigned long cursor_color; | 1017 | unsigned long cursor_color; |
| 1018 | 1018 | ||
| 1019 | if (s->hl == DRAW_CURSOR) | 1019 | if (s->hl == DRAW_CURSOR) |
| @@ -1075,7 +1075,7 @@ haiku_draw_stipple_background (struct glyph_string *s, struct face *face, | |||
| 1075 | unsigned long foreground, background; | 1075 | unsigned long foreground, background; |
| 1076 | void *view; | 1076 | void *view; |
| 1077 | 1077 | ||
| 1078 | view = FRAME_HAIKU_VIEW (s->f); | 1078 | view = FRAME_HAIKU_DRAWABLE (s->f); |
| 1079 | rec = haiku_get_bitmap_rec (s->f, s->face->stipple); | 1079 | rec = haiku_get_bitmap_rec (s->f, s->face->stipple); |
| 1080 | 1080 | ||
| 1081 | if (explicit_colors_p) | 1081 | if (explicit_colors_p) |
| @@ -1173,7 +1173,7 @@ haiku_draw_glyph_string_foreground (struct glyph_string *s) | |||
| 1173 | else | 1173 | else |
| 1174 | x = s->x; | 1174 | x = s->x; |
| 1175 | 1175 | ||
| 1176 | void *view = FRAME_HAIKU_VIEW (s->f); | 1176 | void *view = FRAME_HAIKU_DRAWABLE (s->f); |
| 1177 | 1177 | ||
| 1178 | if (s->font_not_found_p) | 1178 | if (s->font_not_found_p) |
| 1179 | { | 1179 | { |
| @@ -1289,9 +1289,9 @@ haiku_draw_glyphless_glyph_string_foreground (struct glyph_string *s) | |||
| 1289 | else | 1289 | else |
| 1290 | color = s->face->foreground; | 1290 | color = s->face->foreground; |
| 1291 | 1291 | ||
| 1292 | BView_SetHighColor (FRAME_HAIKU_VIEW (s->f), color); | 1292 | BView_SetHighColor (FRAME_HAIKU_DRAWABLE (s->f), color); |
| 1293 | BView_SetPenSize (FRAME_HAIKU_VIEW (s->f), 1); | 1293 | BView_SetPenSize (FRAME_HAIKU_DRAWABLE (s->f), 1); |
| 1294 | BView_StrokeRectangle (FRAME_HAIKU_VIEW (s->f), | 1294 | BView_StrokeRectangle (FRAME_HAIKU_DRAWABLE (s->f), |
| 1295 | x, s->ybase - glyph->ascent, | 1295 | x, s->ybase - glyph->ascent, |
| 1296 | glyph->pixel_width, | 1296 | glyph->pixel_width, |
| 1297 | glyph->ascent + glyph->descent); | 1297 | glyph->ascent + glyph->descent); |
| @@ -1335,7 +1335,7 @@ haiku_draw_stretch_glyph_string (struct glyph_string *s) | |||
| 1335 | if (s->row->reversed_p) | 1335 | if (s->row->reversed_p) |
| 1336 | x -= width; | 1336 | x -= width; |
| 1337 | 1337 | ||
| 1338 | void *view = FRAME_HAIKU_VIEW (s->f); | 1338 | void *view = FRAME_HAIKU_DRAWABLE (s->f); |
| 1339 | unsigned long cursor_color; | 1339 | unsigned long cursor_color; |
| 1340 | 1340 | ||
| 1341 | haiku_merge_cursor_foreground (s, NULL, &cursor_color); | 1341 | haiku_merge_cursor_foreground (s, NULL, &cursor_color); |
| @@ -1401,14 +1401,14 @@ haiku_draw_stretch_glyph_string (struct glyph_string *s) | |||
| 1401 | static void | 1401 | static void |
| 1402 | haiku_start_clip (struct glyph_string *s) | 1402 | haiku_start_clip (struct glyph_string *s) |
| 1403 | { | 1403 | { |
| 1404 | void *view = FRAME_HAIKU_VIEW (s->f); | 1404 | void *view = FRAME_HAIKU_DRAWABLE (s->f); |
| 1405 | BView_StartClip (view); | 1405 | BView_StartClip (view); |
| 1406 | } | 1406 | } |
| 1407 | 1407 | ||
| 1408 | static void | 1408 | static void |
| 1409 | haiku_end_clip (struct glyph_string *s) | 1409 | haiku_end_clip (struct glyph_string *s) |
| 1410 | { | 1410 | { |
| 1411 | void *view = FRAME_HAIKU_VIEW (s->f); | 1411 | void *view = FRAME_HAIKU_DRAWABLE (s->f); |
| 1412 | BView_EndClip (view); | 1412 | BView_EndClip (view); |
| 1413 | } | 1413 | } |
| 1414 | 1414 | ||
| @@ -1428,7 +1428,7 @@ haiku_clip_to_row (struct window *w, struct glyph_row *row, | |||
| 1428 | width = window_width; | 1428 | width = window_width; |
| 1429 | height = row->visible_height; | 1429 | height = row->visible_height; |
| 1430 | 1430 | ||
| 1431 | BView_ClipToRect (FRAME_HAIKU_VIEW (f), x, y, width, height); | 1431 | BView_ClipToRect (FRAME_HAIKU_DRAWABLE (f), x, y, width, height); |
| 1432 | } | 1432 | } |
| 1433 | 1433 | ||
| 1434 | static void | 1434 | static void |
| @@ -1448,7 +1448,7 @@ haiku_draw_composite_glyph_string_foreground (struct glyph_string *s) | |||
| 1448 | { | 1448 | { |
| 1449 | int i, j, x; | 1449 | int i, j, x; |
| 1450 | struct font *font = s->font; | 1450 | struct font *font = s->font; |
| 1451 | void *view = FRAME_HAIKU_VIEW (s->f); | 1451 | void *view = FRAME_HAIKU_DRAWABLE (s->f); |
| 1452 | struct face *face = s->face; | 1452 | struct face *face = s->face; |
| 1453 | 1453 | ||
| 1454 | /* If first glyph of S has a left box line, start drawing the text | 1454 | /* If first glyph of S has a left box line, start drawing the text |
| @@ -1670,7 +1670,7 @@ haiku_draw_image_glyph_string (struct glyph_string *s) | |||
| 1670 | if (s->slice.y == 0) | 1670 | if (s->slice.y == 0) |
| 1671 | y += box_line_vwidth; | 1671 | y += box_line_vwidth; |
| 1672 | 1672 | ||
| 1673 | view = FRAME_HAIKU_VIEW (s->f); | 1673 | view = FRAME_HAIKU_DRAWABLE (s->f); |
| 1674 | bitmap = s->img->pixmap; | 1674 | bitmap = s->img->pixmap; |
| 1675 | 1675 | ||
| 1676 | s->stippled_p = face->stipple != 0; | 1676 | s->stippled_p = face->stipple != 0; |
| @@ -1803,7 +1803,7 @@ haiku_draw_image_glyph_string (struct glyph_string *s) | |||
| 1803 | static void | 1803 | static void |
| 1804 | haiku_draw_glyph_string (struct glyph_string *s) | 1804 | haiku_draw_glyph_string (struct glyph_string *s) |
| 1805 | { | 1805 | { |
| 1806 | void *view = FRAME_HAIKU_VIEW (s->f);; | 1806 | void *view = FRAME_HAIKU_DRAWABLE (s->f);; |
| 1807 | struct face *face = s->face; | 1807 | struct face *face = s->face; |
| 1808 | 1808 | ||
| 1809 | block_input (); | 1809 | block_input (); |
| @@ -2001,7 +2001,7 @@ haiku_after_update_window_line (struct window *w, | |||
| 2001 | block_input (); | 2001 | block_input (); |
| 2002 | if (face) | 2002 | if (face) |
| 2003 | { | 2003 | { |
| 2004 | void *view = FRAME_HAIKU_VIEW (f); | 2004 | void *view = FRAME_HAIKU_DRAWABLE (f); |
| 2005 | BView_draw_lock (view, false, 0, 0, 0, 0); | 2005 | BView_draw_lock (view, false, 0, 0, 0, 0); |
| 2006 | BView_StartClip (view); | 2006 | BView_StartClip (view); |
| 2007 | BView_SetHighColor (view, (face->background_defaulted_p | 2007 | BView_SetHighColor (view, (face->background_defaulted_p |
| @@ -2010,7 +2010,7 @@ haiku_after_update_window_line (struct window *w, | |||
| 2010 | BView_FillRectangle (view, 0, y, width, height); | 2010 | BView_FillRectangle (view, 0, y, width, height); |
| 2011 | BView_FillRectangle (view, FRAME_PIXEL_WIDTH (f) - width, | 2011 | BView_FillRectangle (view, FRAME_PIXEL_WIDTH (f) - width, |
| 2012 | y, width, height); | 2012 | y, width, height); |
| 2013 | BView_invalidate_region (FRAME_HAIKU_VIEW (f), | 2013 | BView_invalidate_region (FRAME_HAIKU_DRAWABLE (f), |
| 2014 | 0, y, width, height); | 2014 | 0, y, width, height); |
| 2015 | BView_invalidate_region (view, FRAME_PIXEL_WIDTH (f) - width, | 2015 | BView_invalidate_region (view, FRAME_PIXEL_WIDTH (f) - width, |
| 2016 | y, width, height); | 2016 | y, width, height); |
| @@ -2075,7 +2075,7 @@ haiku_draw_hollow_cursor (struct window *w, struct glyph_row *row) | |||
| 2075 | void *view; | 2075 | void *view; |
| 2076 | 2076 | ||
| 2077 | f = XFRAME (WINDOW_FRAME (w)); | 2077 | f = XFRAME (WINDOW_FRAME (w)); |
| 2078 | view = FRAME_HAIKU_VIEW (f); | 2078 | view = FRAME_HAIKU_DRAWABLE (f); |
| 2079 | 2079 | ||
| 2080 | /* Get the glyph the cursor is on. If we can't tell because | 2080 | /* Get the glyph the cursor is on. If we can't tell because |
| 2081 | the current matrix is invalid or such, give up. */ | 2081 | the current matrix is invalid or such, give up. */ |
| @@ -2148,7 +2148,7 @@ haiku_draw_bar_cursor (struct window *w, struct glyph_row *row, | |||
| 2148 | } | 2148 | } |
| 2149 | else | 2149 | else |
| 2150 | { | 2150 | { |
| 2151 | view = FRAME_HAIKU_VIEW (f); | 2151 | view = FRAME_HAIKU_DRAWABLE (f); |
| 2152 | face = FACE_FROM_ID (f, cursor_glyph->face_id); | 2152 | face = FACE_FROM_ID (f, cursor_glyph->face_id); |
| 2153 | 2153 | ||
| 2154 | /* If the glyph's background equals the color we normally draw | 2154 | /* If the glyph's background equals the color we normally draw |
| @@ -2334,7 +2334,7 @@ haiku_draw_vertical_window_border (struct window *w, | |||
| 2334 | struct face *face; | 2334 | struct face *face; |
| 2335 | 2335 | ||
| 2336 | face = FACE_FROM_ID_OR_NULL (f, VERTICAL_BORDER_FACE_ID); | 2336 | face = FACE_FROM_ID_OR_NULL (f, VERTICAL_BORDER_FACE_ID); |
| 2337 | void *view = FRAME_HAIKU_VIEW (f); | 2337 | void *view = FRAME_HAIKU_DRAWABLE (f); |
| 2338 | BView_draw_lock (view, true, x, y_0, 1, y_1); | 2338 | BView_draw_lock (view, true, x, y_0, 1, y_1); |
| 2339 | BView_StartClip (view); | 2339 | BView_StartClip (view); |
| 2340 | if (face) | 2340 | if (face) |
| @@ -2384,7 +2384,7 @@ haiku_draw_window_divider (struct window *w, int x0, int x1, int y0, int y1) | |||
| 2384 | unsigned long color_last = (face_last | 2384 | unsigned long color_last = (face_last |
| 2385 | ? face_last->foreground | 2385 | ? face_last->foreground |
| 2386 | : FRAME_FOREGROUND_PIXEL (f)); | 2386 | : FRAME_FOREGROUND_PIXEL (f)); |
| 2387 | void *view = FRAME_HAIKU_VIEW (f); | 2387 | void *view = FRAME_HAIKU_DRAWABLE (f); |
| 2388 | 2388 | ||
| 2389 | BView_draw_lock (view, true, x0, y0, x1 - x0 + 1, y1 - y0 + 1); | 2389 | BView_draw_lock (view, true, x0, y0, x1 - x0 + 1, y1 - y0 + 1); |
| 2390 | BView_StartClip (view); | 2390 | BView_StartClip (view); |
| @@ -2554,7 +2554,7 @@ haiku_scroll_bar_create (struct window *w, int left, int top, | |||
| 2554 | void *view; | 2554 | void *view; |
| 2555 | 2555 | ||
| 2556 | f = XFRAME (WINDOW_FRAME (w)); | 2556 | f = XFRAME (WINDOW_FRAME (w)); |
| 2557 | view = FRAME_HAIKU_VIEW (f); | 2557 | view = FRAME_HAIKU_DRAWABLE (f); |
| 2558 | 2558 | ||
| 2559 | block_input (); | 2559 | block_input (); |
| 2560 | bar = ALLOCATE_PSEUDOVECTOR (struct scroll_bar, prev, PVEC_OTHER); | 2560 | bar = ALLOCATE_PSEUDOVECTOR (struct scroll_bar, prev, PVEC_OTHER); |
| @@ -2604,7 +2604,7 @@ haiku_set_horizontal_scroll_bar (struct window *w, int portion, int whole, int p | |||
| 2604 | width = window_width; | 2604 | width = window_width; |
| 2605 | top = WINDOW_SCROLL_BAR_AREA_Y (w); | 2605 | top = WINDOW_SCROLL_BAR_AREA_Y (w); |
| 2606 | height = WINDOW_CONFIG_SCROLL_BAR_HEIGHT (w); | 2606 | height = WINDOW_CONFIG_SCROLL_BAR_HEIGHT (w); |
| 2607 | view = FRAME_HAIKU_VIEW (WINDOW_XFRAME (w)); | 2607 | view = FRAME_HAIKU_DRAWABLE (WINDOW_XFRAME (w)); |
| 2608 | 2608 | ||
| 2609 | block_input (); | 2609 | block_input (); |
| 2610 | 2610 | ||
| @@ -2663,7 +2663,7 @@ haiku_set_vertical_scroll_bar (struct window *w, int portion, int whole, int pos | |||
| 2663 | left = WINDOW_SCROLL_BAR_AREA_X (w); | 2663 | left = WINDOW_SCROLL_BAR_AREA_X (w); |
| 2664 | width = WINDOW_SCROLL_BAR_AREA_WIDTH (w); | 2664 | width = WINDOW_SCROLL_BAR_AREA_WIDTH (w); |
| 2665 | 2665 | ||
| 2666 | view = FRAME_HAIKU_VIEW (WINDOW_XFRAME (w)); | 2666 | view = FRAME_HAIKU_DRAWABLE (WINDOW_XFRAME (w)); |
| 2667 | 2667 | ||
| 2668 | block_input (); | 2668 | block_input (); |
| 2669 | if (NILP (w->vertical_scroll_bar)) | 2669 | if (NILP (w->vertical_scroll_bar)) |
| @@ -2712,7 +2712,7 @@ haiku_draw_fringe_bitmap (struct window *w, struct glyph_row *row, | |||
| 2712 | uint32 col; | 2712 | uint32 col; |
| 2713 | 2713 | ||
| 2714 | f = XFRAME (WINDOW_FRAME (w)); | 2714 | f = XFRAME (WINDOW_FRAME (w)); |
| 2715 | view = FRAME_HAIKU_VIEW (f); | 2715 | view = FRAME_HAIKU_DRAWABLE (f); |
| 2716 | face = p->face; | 2716 | face = p->face; |
| 2717 | 2717 | ||
| 2718 | block_input (); | 2718 | block_input (); |
| @@ -2828,7 +2828,7 @@ static void | |||
| 2828 | haiku_scroll_run (struct window *w, struct run *run) | 2828 | haiku_scroll_run (struct window *w, struct run *run) |
| 2829 | { | 2829 | { |
| 2830 | struct frame *f = XFRAME (w->frame); | 2830 | struct frame *f = XFRAME (w->frame); |
| 2831 | void *view = FRAME_HAIKU_VIEW (f); | 2831 | void *view = FRAME_HAIKU_DRAWABLE (f); |
| 2832 | int x, y, width, height, from_y, to_y, bottom_y; | 2832 | int x, y, width, height, from_y, to_y, bottom_y; |
| 2833 | window_box (w, ANY_AREA, &x, &y, &width, &height); | 2833 | window_box (w, ANY_AREA, &x, &y, &width, &height); |
| 2834 | 2834 | ||
| @@ -3211,9 +3211,9 @@ haiku_read_socket (struct terminal *terminal, struct input_event *hold_quit) | |||
| 3211 | continue; | 3211 | continue; |
| 3212 | } | 3212 | } |
| 3213 | 3213 | ||
| 3214 | BView_draw_lock (FRAME_HAIKU_VIEW (f), false, 0, 0, 0, 0); | 3214 | BView_draw_lock (FRAME_HAIKU_DRAWABLE (f), false, 0, 0, 0, 0); |
| 3215 | BView_resize_to (FRAME_HAIKU_VIEW (f), width, height); | 3215 | BView_resize_to (FRAME_HAIKU_DRAWABLE (f), width, height); |
| 3216 | BView_draw_unlock (FRAME_HAIKU_VIEW (f)); | 3216 | BView_draw_unlock (FRAME_HAIKU_DRAWABLE (f)); |
| 3217 | 3217 | ||
| 3218 | if (width != FRAME_PIXEL_WIDTH (f) | 3218 | if (width != FRAME_PIXEL_WIDTH (f) |
| 3219 | || height != FRAME_PIXEL_HEIGHT (f) | 3219 | || height != FRAME_PIXEL_HEIGHT (f) |
| @@ -4126,7 +4126,7 @@ haiku_flash (struct frame *f) | |||
| 4126 | int flash_left = FRAME_INTERNAL_BORDER_WIDTH (f); | 4126 | int flash_left = FRAME_INTERNAL_BORDER_WIDTH (f); |
| 4127 | int flash_right = FRAME_PIXEL_WIDTH (f) - FRAME_INTERNAL_BORDER_WIDTH (f); | 4127 | int flash_right = FRAME_PIXEL_WIDTH (f) - FRAME_INTERNAL_BORDER_WIDTH (f); |
| 4128 | int width = flash_right - flash_left; | 4128 | int width = flash_right - flash_left; |
| 4129 | void *view = FRAME_HAIKU_VIEW (f); | 4129 | void *view = FRAME_HAIKU_DRAWABLE (f); |
| 4130 | object_wait_info info; | 4130 | object_wait_info info; |
| 4131 | bigtime_t wakeup; | 4131 | bigtime_t wakeup; |
| 4132 | 4132 | ||
| @@ -4454,7 +4454,7 @@ haiku_clear_under_internal_border (struct frame *f) | |||
| 4454 | ? lookup_basic_face (NULL, f, INTERNAL_BORDER_FACE_ID) | 4454 | ? lookup_basic_face (NULL, f, INTERNAL_BORDER_FACE_ID) |
| 4455 | : INTERNAL_BORDER_FACE_ID)); | 4455 | : INTERNAL_BORDER_FACE_ID)); |
| 4456 | struct face *face = FACE_FROM_ID_OR_NULL (f, face_id); | 4456 | struct face *face = FACE_FROM_ID_OR_NULL (f, face_id); |
| 4457 | void *view = FRAME_HAIKU_VIEW (f); | 4457 | void *view = FRAME_HAIKU_DRAWABLE (f); |
| 4458 | 4458 | ||
| 4459 | block_input (); | 4459 | block_input (); |
| 4460 | BView_draw_lock (view, true, 0, 0, FRAME_PIXEL_WIDTH (f), | 4460 | BView_draw_lock (view, true, 0, 0, FRAME_PIXEL_WIDTH (f), |
| @@ -4496,7 +4496,7 @@ haiku_scroll_bar_remove (struct scroll_bar *bar) | |||
| 4496 | struct frame *f; | 4496 | struct frame *f; |
| 4497 | 4497 | ||
| 4498 | f = WINDOW_XFRAME (XWINDOW (bar->window)); | 4498 | f = WINDOW_XFRAME (XWINDOW (bar->window)); |
| 4499 | view = FRAME_HAIKU_VIEW (f); | 4499 | view = FRAME_HAIKU_DRAWABLE (f); |
| 4500 | 4500 | ||
| 4501 | block_input (); | 4501 | block_input (); |
| 4502 | BView_forget_scroll_bar (view, bar->left, bar->top, | 4502 | BView_forget_scroll_bar (view, bar->left, bar->top, |
diff --git a/src/haikuterm.h b/src/haikuterm.h index 02a364f6712..b603c0a482f 100644 --- a/src/haikuterm.h +++ b/src/haikuterm.h | |||
| @@ -275,7 +275,8 @@ struct scroll_bar | |||
| 275 | #define MAKE_FRAME_DIRTY(f) (FRAME_DIRTY_P (f) = 1) | 275 | #define MAKE_FRAME_DIRTY(f) (FRAME_DIRTY_P (f) = 1) |
| 276 | #define FRAME_OUTPUT_DATA(f) ((f)->output_data.haiku) | 276 | #define FRAME_OUTPUT_DATA(f) ((f)->output_data.haiku) |
| 277 | #define FRAME_HAIKU_WINDOW(f) (FRAME_OUTPUT_DATA (f)->window) | 277 | #define FRAME_HAIKU_WINDOW(f) (FRAME_OUTPUT_DATA (f)->window) |
| 278 | #define FRAME_HAIKU_VIEW(f) ((MAKE_FRAME_DIRTY (f)), FRAME_OUTPUT_DATA (f)->view) | 278 | #define FRAME_HAIKU_VIEW(f) (FRAME_OUTPUT_DATA (f)->view) |
| 279 | #define FRAME_HAIKU_DRAWABLE(f) ((MAKE_FRAME_DIRTY (f)), FRAME_HAIKU_VIEW (f)) | ||
| 279 | #define FRAME_HAIKU_MENU_BAR(f) (FRAME_OUTPUT_DATA (f)->menubar) | 280 | #define FRAME_HAIKU_MENU_BAR(f) (FRAME_OUTPUT_DATA (f)->menubar) |
| 280 | #define FRAME_DISPLAY_INFO(f) (FRAME_OUTPUT_DATA (f)->display_info) | 281 | #define FRAME_DISPLAY_INFO(f) (FRAME_OUTPUT_DATA (f)->display_info) |
| 281 | #define FRAME_FONT(f) (FRAME_OUTPUT_DATA (f)->font) | 282 | #define FRAME_FONT(f) (FRAME_OUTPUT_DATA (f)->font) |
| @@ -287,7 +288,7 @@ struct scroll_bar | |||
| 287 | #ifdef USE_BE_CAIRO | 288 | #ifdef USE_BE_CAIRO |
| 288 | #define FRAME_CR_CONTEXT(f) \ | 289 | #define FRAME_CR_CONTEXT(f) \ |
| 289 | (FRAME_HAIKU_VIEW (f) \ | 290 | (FRAME_HAIKU_VIEW (f) \ |
| 290 | ? EmacsView_cairo_context (FRAME_HAIKU_VIEW (f)) \ | 291 | ? EmacsView_cairo_context (FRAME_HAIKU_DRAWABLE (f)) \ |
| 291 | : NULL) | 292 | : NULL) |
| 292 | #endif | 293 | #endif |
| 293 | 294 | ||