155 |
#define BETWEEN(X, LOWER, UPPER) ((X) >= (LOWER) && (X) < (UPPER)) |
#define BETWEEN(X, LOWER, UPPER) ((X) >= (LOWER) && (X) < (UPPER)) |
156 |
|
|
157 |
|
|
158 |
/* Bitmaps for truncated lines. */ |
/* Fringe bitmaps. */ |
159 |
|
|
160 |
enum bitmap_type |
enum fringe_bitmap_type |
161 |
{ |
{ |
162 |
NO_BITMAP, |
NO_FRINGE_BITMAP, |
163 |
LEFT_TRUNCATION_BITMAP, |
LEFT_TRUNCATION_BITMAP, |
164 |
RIGHT_TRUNCATION_BITMAP, |
RIGHT_TRUNCATION_BITMAP, |
165 |
OVERLAY_ARROW_BITMAP, |
OVERLAY_ARROW_BITMAP, |
463 |
static void x_update_window_cursor P_ ((struct window *, int)); |
static void x_update_window_cursor P_ ((struct window *, int)); |
464 |
static void x_erase_phys_cursor P_ ((struct window *)); |
static void x_erase_phys_cursor P_ ((struct window *)); |
465 |
void x_display_and_set_cursor P_ ((struct window *, int, int, int, int, int)); |
void x_display_and_set_cursor P_ ((struct window *, int, int, int, int, int)); |
466 |
static void x_draw_bitmap P_ ((struct window *, struct glyph_row *, |
static void x_draw_fringe_bitmap P_ ((struct window *, struct glyph_row *, |
467 |
enum bitmap_type)); |
enum fringe_bitmap_type)); |
468 |
|
|
469 |
static void x_clip_to_row P_ ((struct window *, struct glyph_row *, |
static void x_clip_to_row P_ ((struct window *, struct glyph_row *, |
470 |
GC, int)); |
GC, int)); |
471 |
static int x_phys_cursor_in_rect_p P_ ((struct window *, XRectangle *)); |
static int x_phys_cursor_in_rect_p P_ ((struct window *, XRectangle *)); |
472 |
static void x_draw_row_bitmaps P_ ((struct window *, struct glyph_row *)); |
static void x_draw_row_fringe_bitmaps P_ ((struct window *, struct glyph_row *)); |
473 |
static void notice_overwritten_cursor P_ ((struct window *, int, int)); |
static void notice_overwritten_cursor P_ ((struct window *, int, int)); |
474 |
static void x_flush P_ ((struct frame *f)); |
static void x_flush P_ ((struct frame *f)); |
475 |
static void x_update_begin P_ ((struct frame *)); |
static void x_update_begin P_ ((struct frame *)); |
659 |
int x0, x1, y0, y1; |
int x0, x1, y0, y1; |
660 |
|
|
661 |
window_box_edges (w, -1, &x0, &y0, &x1, &y1); |
window_box_edges (w, -1, &x0, &y0, &x1, &y1); |
662 |
x1 += FRAME_X_RIGHT_FLAGS_AREA_WIDTH (f); |
x1 += FRAME_X_RIGHT_FRINGE_WIDTH (f); |
663 |
y1 -= 1; |
y1 -= 1; |
664 |
|
|
665 |
XDrawLine (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
XDrawLine (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
758 |
|
|
759 |
|
|
760 |
/* Draw truncation mark bitmaps, continuation mark bitmaps, overlay |
/* Draw truncation mark bitmaps, continuation mark bitmaps, overlay |
761 |
arrow bitmaps, or clear the areas where they would be displayed |
arrow bitmaps, or clear the fringes if no bitmaps are required |
762 |
before DESIRED_ROW is made current. The window being updated is |
before DESIRED_ROW is made current. The window being updated is |
763 |
found in updated_window. This function It is called from |
found in updated_window. This function It is called from |
764 |
update_window_line only if it is known that there are differences |
update_window_line only if it is known that there are differences |
777 |
if (!desired_row->mode_line_p && !w->pseudo_window_p) |
if (!desired_row->mode_line_p && !w->pseudo_window_p) |
778 |
{ |
{ |
779 |
BLOCK_INPUT; |
BLOCK_INPUT; |
780 |
x_draw_row_bitmaps (w, desired_row); |
x_draw_row_fringe_bitmaps (w, desired_row); |
781 |
UNBLOCK_INPUT; |
UNBLOCK_INPUT; |
782 |
} |
} |
783 |
|
|
813 |
} |
} |
814 |
|
|
815 |
|
|
816 |
/* Draw the bitmap WHICH in one of the areas to the left or right of |
/* Draw the bitmap WHICH in one of the left or right fringes of |
817 |
window W. ROW is the glyph row for which to display the bitmap; it |
window W. ROW is the glyph row for which to display the bitmap; it |
818 |
determines the vertical position at which the bitmap has to be |
determines the vertical position at which the bitmap has to be |
819 |
drawn. */ |
drawn. */ |
820 |
|
|
821 |
static void |
static void |
822 |
x_draw_bitmap (w, row, which) |
x_draw_fringe_bitmap (w, row, which) |
823 |
struct window *w; |
struct window *w; |
824 |
struct glyph_row *row; |
struct glyph_row *row; |
825 |
enum bitmap_type which; |
enum fringe_bitmap_type which; |
826 |
{ |
{ |
827 |
struct frame *f = XFRAME (WINDOW_FRAME (w)); |
struct frame *f = XFRAME (WINDOW_FRAME (w)); |
828 |
Display *display = FRAME_X_DISPLAY (f); |
Display *display = FRAME_X_DISPLAY (f); |
845 |
bits = left_bits; |
bits = left_bits; |
846 |
x = (WINDOW_TO_FRAME_PIXEL_X (w, 0) |
x = (WINDOW_TO_FRAME_PIXEL_X (w, 0) |
847 |
- wd |
- wd |
848 |
- (FRAME_X_LEFT_FLAGS_AREA_WIDTH (f) - wd) / 2); |
- (FRAME_X_LEFT_FRINGE_WIDTH (f) - wd) / 2); |
849 |
break; |
break; |
850 |
|
|
851 |
case OVERLAY_ARROW_BITMAP: |
case OVERLAY_ARROW_BITMAP: |
854 |
bits = ov_bits; |
bits = ov_bits; |
855 |
x = (WINDOW_TO_FRAME_PIXEL_X (w, 0) |
x = (WINDOW_TO_FRAME_PIXEL_X (w, 0) |
856 |
- wd |
- wd |
857 |
- (FRAME_X_LEFT_FLAGS_AREA_WIDTH (f) - wd) / 2); |
- (FRAME_X_LEFT_FRINGE_WIDTH (f) - wd) / 2); |
858 |
break; |
break; |
859 |
|
|
860 |
case RIGHT_TRUNCATION_BITMAP: |
case RIGHT_TRUNCATION_BITMAP: |
862 |
h = right_height; |
h = right_height; |
863 |
bits = right_bits; |
bits = right_bits; |
864 |
x = window_box_right (w, -1); |
x = window_box_right (w, -1); |
865 |
x += (FRAME_X_RIGHT_FLAGS_AREA_WIDTH (f) - wd) / 2; |
x += (FRAME_X_RIGHT_FRINGE_WIDTH (f) - wd) / 2; |
866 |
break; |
break; |
867 |
|
|
868 |
case CONTINUED_LINE_BITMAP: |
case CONTINUED_LINE_BITMAP: |
870 |
h = right_height; |
h = right_height; |
871 |
bits = continued_bits; |
bits = continued_bits; |
872 |
x = window_box_right (w, -1); |
x = window_box_right (w, -1); |
873 |
x += (FRAME_X_RIGHT_FLAGS_AREA_WIDTH (f) - wd) / 2; |
x += (FRAME_X_RIGHT_FRINGE_WIDTH (f) - wd) / 2; |
874 |
break; |
break; |
875 |
|
|
876 |
case CONTINUATION_LINE_BITMAP: |
case CONTINUATION_LINE_BITMAP: |
879 |
bits = continuation_bits; |
bits = continuation_bits; |
880 |
x = (WINDOW_TO_FRAME_PIXEL_X (w, 0) |
x = (WINDOW_TO_FRAME_PIXEL_X (w, 0) |
881 |
- wd |
- wd |
882 |
- (FRAME_X_LEFT_FLAGS_AREA_WIDTH (f) - wd) / 2); |
- (FRAME_X_LEFT_FRINGE_WIDTH (f) - wd) / 2); |
883 |
break; |
break; |
884 |
|
|
885 |
case ZV_LINE_BITMAP: |
case ZV_LINE_BITMAP: |
888 |
bits = zv_bits; |
bits = zv_bits; |
889 |
x = (WINDOW_TO_FRAME_PIXEL_X (w, 0) |
x = (WINDOW_TO_FRAME_PIXEL_X (w, 0) |
890 |
- wd |
- wd |
891 |
- (FRAME_X_LEFT_FLAGS_AREA_WIDTH (f) - wd) / 2); |
- (FRAME_X_LEFT_FRINGE_WIDTH (f) - wd) / 2); |
892 |
break; |
break; |
893 |
|
|
894 |
default: |
default: |
902 |
|
|
903 |
/* Draw the bitmap. I believe these small pixmaps can be cached |
/* Draw the bitmap. I believe these small pixmaps can be cached |
904 |
by the server. */ |
by the server. */ |
905 |
face = FACE_FROM_ID (f, BITMAP_AREA_FACE_ID); |
face = FACE_FROM_ID (f, FRINGE_FACE_ID); |
906 |
pixmap = XCreatePixmapFromBitmapData (display, window, bits, wd, h, |
pixmap = XCreatePixmapFromBitmapData (display, window, bits, wd, h, |
907 |
face->foreground, |
face->foreground, |
908 |
face->background, depth); |
face->background, depth); |
912 |
} |
} |
913 |
|
|
914 |
|
|
915 |
/* Draw flags bitmaps for glyph row ROW on window W. Call this |
/* Draw fringe bitmaps for glyph row ROW on window W. Call this |
916 |
function with input blocked. */ |
function with input blocked. */ |
917 |
|
|
918 |
static void |
static void |
919 |
x_draw_row_bitmaps (w, row) |
x_draw_row_fringe_bitmaps (w, row) |
920 |
struct window *w; |
struct window *w; |
921 |
struct glyph_row *row; |
struct glyph_row *row; |
922 |
{ |
{ |
923 |
struct frame *f = XFRAME (w->frame); |
struct frame *f = XFRAME (w->frame); |
924 |
enum bitmap_type bitmap; |
enum fringe_bitmap_type bitmap; |
925 |
struct face *face; |
struct face *face; |
926 |
int header_line_height = -1; |
int header_line_height = -1; |
927 |
|
|
932 |
if (row->visible_height <= 0) |
if (row->visible_height <= 0) |
933 |
return; |
return; |
934 |
|
|
935 |
face = FACE_FROM_ID (f, BITMAP_AREA_FACE_ID); |
face = FACE_FROM_ID (f, FRINGE_FACE_ID); |
936 |
PREPARE_FACE_FOR_DISPLAY (f, face); |
PREPARE_FACE_FOR_DISPLAY (f, face); |
937 |
|
|
938 |
/* Decide which bitmap to draw at the left side. */ |
/* Decide which bitmap to draw in the left fringe. */ |
939 |
if (row->overlay_arrow_p) |
if (row->overlay_arrow_p) |
940 |
bitmap = OVERLAY_ARROW_BITMAP; |
bitmap = OVERLAY_ARROW_BITMAP; |
941 |
else if (row->truncated_on_left_p) |
else if (row->truncated_on_left_p) |
945 |
else if (row->indicate_empty_line_p) |
else if (row->indicate_empty_line_p) |
946 |
bitmap = ZV_LINE_BITMAP; |
bitmap = ZV_LINE_BITMAP; |
947 |
else |
else |
948 |
bitmap = NO_BITMAP; |
bitmap = NO_FRINGE_BITMAP; |
949 |
|
|
950 |
/* Clear flags area if no bitmap to draw or if bitmap doesn't fill |
/* Clear left fringe if no bitmap to draw or if bitmap doesn't fill |
951 |
the flags area. */ |
the fringe. */ |
952 |
if (bitmap == NO_BITMAP |
if (bitmap == NO_FRINGE_BITMAP |
953 |
|| FRAME_FLAGS_BITMAP_WIDTH (f) < FRAME_X_LEFT_FLAGS_AREA_WIDTH (f) |
|| FRAME_FRINGE_BITMAP_WIDTH (f) < FRAME_X_LEFT_FRINGE_WIDTH (f) |
954 |
|| row->height > FRAME_FLAGS_BITMAP_HEIGHT (f)) |
|| row->height > FRAME_FRINGE_BITMAP_HEIGHT (f)) |
955 |
{ |
{ |
956 |
/* If W has a vertical border to its left, don't draw over it. */ |
/* If W has a vertical border to its left, don't draw over it. */ |
957 |
int border = ((XFASTINT (w->left) > 0 |
int border = ((XFASTINT (w->left) > 0 |
962 |
if (header_line_height < 0) |
if (header_line_height < 0) |
963 |
header_line_height = WINDOW_DISPLAY_HEADER_LINE_HEIGHT (w); |
header_line_height = WINDOW_DISPLAY_HEADER_LINE_HEIGHT (w); |
964 |
|
|
965 |
/* In case the same realized face is used for bitmap areas and |
/* In case the same realized face is used for fringes and |
966 |
for something displayed in the text (e.g. face `region' on |
for something displayed in the text (e.g. face `region' on |
967 |
mono-displays, the fill style may have been changed to |
mono-displays, the fill style may have been changed to |
968 |
FillSolid in x_draw_glyph_string_background. */ |
FillSolid in x_draw_glyph_string_background. */ |
974 |
XFillRectangle (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
XFillRectangle (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
975 |
face->gc, |
face->gc, |
976 |
(left |
(left |
977 |
- FRAME_X_LEFT_FLAGS_AREA_WIDTH (f) |
- FRAME_X_LEFT_FRINGE_WIDTH (f) |
978 |
+ border), |
+ border), |
979 |
WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, |
WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, |
980 |
row->y)), |
row->y)), |
981 |
FRAME_X_LEFT_FLAGS_AREA_WIDTH (f) - border, |
FRAME_X_LEFT_FRINGE_WIDTH (f) - border, |
982 |
row->visible_height); |
row->visible_height); |
983 |
if (!face->stipple) |
if (!face->stipple) |
984 |
XSetForeground (FRAME_X_DISPLAY (f), face->gc, face->foreground); |
XSetForeground (FRAME_X_DISPLAY (f), face->gc, face->foreground); |
985 |
} |
} |
986 |
|
|
987 |
/* Draw the left bitmap. */ |
/* Draw the left bitmap. */ |
988 |
if (bitmap != NO_BITMAP) |
if (bitmap != NO_FRINGE_BITMAP) |
989 |
x_draw_bitmap (w, row, bitmap); |
x_draw_fringe_bitmap (w, row, bitmap); |
990 |
|
|
991 |
/* Decide which bitmap to draw at the right side. */ |
/* Decide which bitmap to draw in the right fringe. */ |
992 |
if (row->truncated_on_right_p) |
if (row->truncated_on_right_p) |
993 |
bitmap = RIGHT_TRUNCATION_BITMAP; |
bitmap = RIGHT_TRUNCATION_BITMAP; |
994 |
else if (row->continued_p) |
else if (row->continued_p) |
995 |
bitmap = CONTINUED_LINE_BITMAP; |
bitmap = CONTINUED_LINE_BITMAP; |
996 |
else |
else |
997 |
bitmap = NO_BITMAP; |
bitmap = NO_FRINGE_BITMAP; |
998 |
|
|
999 |
/* Clear flags area if no bitmap to draw of if bitmap doesn't fill |
/* Clear right fringe if no bitmap to draw of if bitmap doesn't fill |
1000 |
the flags area. */ |
the fringe. */ |
1001 |
if (bitmap == NO_BITMAP |
if (bitmap == NO_FRINGE_BITMAP |
1002 |
|| FRAME_FLAGS_BITMAP_WIDTH (f) < FRAME_X_RIGHT_FLAGS_AREA_WIDTH (f) |
|| FRAME_FRINGE_BITMAP_WIDTH (f) < FRAME_X_RIGHT_FRINGE_WIDTH (f) |
1003 |
|| row->height > FRAME_FLAGS_BITMAP_HEIGHT (f)) |
|| row->height > FRAME_FRINGE_BITMAP_HEIGHT (f)) |
1004 |
{ |
{ |
1005 |
int right = window_box_right (w, -1); |
int right = window_box_right (w, -1); |
1006 |
|
|
1007 |
if (header_line_height < 0) |
if (header_line_height < 0) |
1008 |
header_line_height = WINDOW_DISPLAY_HEADER_LINE_HEIGHT (w); |
header_line_height = WINDOW_DISPLAY_HEADER_LINE_HEIGHT (w); |
1009 |
|
|
1010 |
/* In case the same realized face is used for bitmap areas and |
/* In case the same realized face is used for fringes and |
1011 |
for something displayed in the text (e.g. face `region' on |
for something displayed in the text (e.g. face `region' on |
1012 |
mono-displays, the fill style may have been changed to |
mono-displays, the fill style may have been changed to |
1013 |
FillSolid in x_draw_glyph_string_background. */ |
FillSolid in x_draw_glyph_string_background. */ |
1020 |
right, |
right, |
1021 |
WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, |
WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, |
1022 |
row->y)), |
row->y)), |
1023 |
FRAME_X_RIGHT_FLAGS_AREA_WIDTH (f), |
FRAME_X_RIGHT_FRINGE_WIDTH (f), |
1024 |
row->visible_height); |
row->visible_height); |
1025 |
if (!face->stipple) |
if (!face->stipple) |
1026 |
XSetForeground (FRAME_X_DISPLAY (f), face->gc, face->foreground); |
XSetForeground (FRAME_X_DISPLAY (f), face->gc, face->foreground); |
1027 |
} |
} |
1028 |
|
|
1029 |
/* Draw the right bitmap. */ |
/* Draw the right bitmap. */ |
1030 |
if (bitmap != NO_BITMAP) |
if (bitmap != NO_FRINGE_BITMAP) |
1031 |
x_draw_bitmap (w, row, bitmap); |
x_draw_fringe_bitmap (w, row, bitmap); |
1032 |
} |
} |
1033 |
|
|
1034 |
|
|
3978 |
if (s->row->full_width_p |
if (s->row->full_width_p |
3979 |
&& !s->w->pseudo_window_p) |
&& !s->w->pseudo_window_p) |
3980 |
{ |
{ |
3981 |
last_x += FRAME_X_RIGHT_FLAGS_AREA_WIDTH (s->f); |
last_x += FRAME_X_RIGHT_FRINGE_WIDTH (s->f); |
3982 |
if (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT (s->f)) |
if (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT (s->f)) |
3983 |
last_x += FRAME_SCROLL_BAR_WIDTH (s->f) * CANON_X_UNIT (s->f); |
last_x += FRAME_SCROLL_BAR_WIDTH (s->f) * CANON_X_UNIT (s->f); |
3984 |
} |
} |
5064 |
if (row->full_width_p) |
if (row->full_width_p) |
5065 |
{ |
{ |
5066 |
/* X is relative to the left edge of W, without scroll bars |
/* X is relative to the left edge of W, without scroll bars |
5067 |
or flag areas. */ |
or fringes. */ |
5068 |
struct frame *f = XFRAME (w->frame); |
struct frame *f = XFRAME (w->frame); |
5069 |
/* int width = FRAME_FLAGS_AREA_WIDTH (f); */ |
/* int width = FRAME_FRINGE_WIDTH (f); */ |
5070 |
int window_left_x = WINDOW_LEFT_MARGIN (w) * CANON_X_UNIT (f); |
int window_left_x = WINDOW_LEFT_MARGIN (w) * CANON_X_UNIT (f); |
5071 |
|
|
5072 |
x += window_left_x; |
x += window_left_x; |
5732 |
int x, y, width, height, from_y, to_y, bottom_y; |
int x, y, width, height, from_y, to_y, bottom_y; |
5733 |
|
|
5734 |
/* Get frame-relative bounding box of the text display area of W, |
/* Get frame-relative bounding box of the text display area of W, |
5735 |
without mode lines. Include in this box the flags areas to the |
without mode lines. Include in this box the left and right |
5736 |
left and right of W. */ |
fringe of W. */ |
5737 |
window_box (w, -1, &x, &y, &width, &height); |
window_box (w, -1, &x, &y, &width, &height); |
5738 |
width += FRAME_X_FLAGS_AREA_WIDTH (f); |
width += FRAME_X_FRINGE_WIDTH (f); |
5739 |
x -= FRAME_X_LEFT_FLAGS_AREA_WIDTH (f); |
x -= FRAME_X_LEFT_FRINGE_WIDTH (f); |
5740 |
|
|
5741 |
from_y = WINDOW_TO_FRAME_PIXEL_Y (w, run->current_y); |
from_y = WINDOW_TO_FRAME_PIXEL_Y (w, run->current_y); |
5742 |
to_y = WINDOW_TO_FRAME_PIXEL_Y (w, run->desired_y); |
to_y = WINDOW_TO_FRAME_PIXEL_Y (w, run->desired_y); |
5980 |
expose_area (w, row, r, TEXT_AREA); |
expose_area (w, row, r, TEXT_AREA); |
5981 |
if (row->used[RIGHT_MARGIN_AREA]) |
if (row->used[RIGHT_MARGIN_AREA]) |
5982 |
expose_area (w, row, r, RIGHT_MARGIN_AREA); |
expose_area (w, row, r, RIGHT_MARGIN_AREA); |
5983 |
x_draw_row_bitmaps (w, row); |
x_draw_row_fringe_bitmaps (w, row); |
5984 |
} |
} |
5985 |
|
|
5986 |
return row->mouse_face_p; |
return row->mouse_face_p; |
6736 |
/* Take proper action when mouse has moved to the mode or header line of |
/* Take proper action when mouse has moved to the mode or header line of |
6737 |
window W, x-position X. MODE_LINE_P non-zero means mouse is on the |
window W, x-position X. MODE_LINE_P non-zero means mouse is on the |
6738 |
mode line. X is relative to the start of the text display area of |
mode line. X is relative to the start of the text display area of |
6739 |
W, so the width of bitmap areas and scroll bars must be subtracted |
W, so the width of fringes and scroll bars must be subtracted |
6740 |
to get a position relative to the start of the mode line. */ |
to get a position relative to the start of the mode line. */ |
6741 |
|
|
6742 |
static void |
static void |
6764 |
glyph = row->glyphs[TEXT_AREA]; |
glyph = row->glyphs[TEXT_AREA]; |
6765 |
end = glyph + row->used[TEXT_AREA]; |
end = glyph + row->used[TEXT_AREA]; |
6766 |
x0 = - (FRAME_LEFT_SCROLL_BAR_WIDTH (f) * CANON_X_UNIT (f) |
x0 = - (FRAME_LEFT_SCROLL_BAR_WIDTH (f) * CANON_X_UNIT (f) |
6767 |
+ FRAME_X_LEFT_FLAGS_AREA_WIDTH (f)); |
+ FRAME_X_LEFT_FRINGE_WIDTH (f)); |
6768 |
|
|
6769 |
while (glyph < end |
while (glyph < end |
6770 |
&& x >= x0 + glyph->pixel_width) |
&& x >= x0 + glyph->pixel_width) |
11146 |
the rectangle to the left and increase its width. */ |
the rectangle to the left and increase its width. */ |
11147 |
if (whole_line_p) |
if (whole_line_p) |
11148 |
{ |
{ |
11149 |
clip_rect.x -= FRAME_X_LEFT_FLAGS_AREA_WIDTH (f); |
clip_rect.x -= FRAME_X_LEFT_FRINGE_WIDTH (f); |
11150 |
clip_rect.width += FRAME_X_FLAGS_AREA_WIDTH (f); |
clip_rect.width += FRAME_X_FRINGE_WIDTH (f); |
11151 |
} |
} |
11152 |
|
|
11153 |
XSetClipRectangles (FRAME_X_DISPLAY (f), gc, 0, 0, &clip_rect, 1, Unsorted); |
XSetClipRectangles (FRAME_X_DISPLAY (f), gc, 0, 0, &clip_rect, 1, Unsorted); |
12564 |
: FRAME_SCROLL_BAR_PIXEL_WIDTH (f) > 0 |
: FRAME_SCROLL_BAR_PIXEL_WIDTH (f) > 0 |
12565 |
? FRAME_SCROLL_BAR_PIXEL_WIDTH (f) |
? FRAME_SCROLL_BAR_PIXEL_WIDTH (f) |
12566 |
: (FRAME_SCROLL_BAR_COLS (f) * FONT_WIDTH (f->output_data.x->font))); |
: (FRAME_SCROLL_BAR_COLS (f) * FONT_WIDTH (f->output_data.x->font))); |
12567 |
f->output_data.x->flags_areas_extra |
f->output_data.x->fringes_extra |
12568 |
= FRAME_FLAGS_AREA_WIDTH (f); |
= FRAME_FRINGE_WIDTH (f); |
12569 |
pixelwidth = CHAR_TO_PIXEL_WIDTH (f, cols); |
pixelwidth = CHAR_TO_PIXEL_WIDTH (f, cols); |
12570 |
pixelheight = CHAR_TO_PIXEL_HEIGHT (f, rows); |
pixelheight = CHAR_TO_PIXEL_HEIGHT (f, rows); |
12571 |
|
|