diff options
| author | Eli Zaretskii | 2010-01-09 06:00:21 -0500 |
|---|---|---|
| committer | Eli Zaretskii | 2010-01-09 06:00:21 -0500 |
| commit | 6eca625b774a4bdc782e8b878c8cf05663742101 (patch) | |
| tree | 23651e860aa105896ce862462830ec5e00f1e510 /src | |
| parent | f14e303adcecf25fa1f116c4040de08a9ed6231b (diff) | |
| parent | 4b00d3b1594378e77b3b485d1ed272be5bdab644 (diff) | |
| download | emacs-6eca625b774a4bdc782e8b878c8cf05663742101.tar.gz emacs-6eca625b774a4bdc782e8b878c8cf05663742101.zip | |
Merge from mainline.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 23 | ||||
| -rw-r--r-- | src/frame.h | 15 | ||||
| -rw-r--r-- | src/w32term.c | 5 | ||||
| -rw-r--r-- | src/window.h | 18 | ||||
| -rw-r--r-- | src/xdisp.c | 12 | ||||
| -rw-r--r-- | src/xfns.c | 2 | ||||
| -rw-r--r-- | src/xterm.c | 9 |
7 files changed, 55 insertions, 29 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index fd32d739bc0..309c663d1ef 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,25 @@ | |||
| 1 | 2010-01-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 2 | |||
| 3 | * frame.h (FRAME_TOP_MARGIN_HEIGHT): New macro. | ||
| 4 | (FRAME_LINE_TO_PIXEL_Y, FRAME_PIXEL_Y_TO_LINE): Take account of pseudo | ||
| 5 | windows above internal border. | ||
| 6 | |||
| 7 | * window.h (WINDOW_MENU_BAR_P, WINDOW_TOOL_BAR_P): New macros. | ||
| 8 | (WINDOW_TOP_EDGE_Y, WINDOW_BOTTOM_EDGE_Y): Take account of pseudo | ||
| 9 | windows above internal border. | ||
| 10 | |||
| 11 | * xdisp.c (get_glyph_string_clip_rects, init_glyph_string): Don't treat | ||
| 12 | tool bar windows specially. | ||
| 13 | |||
| 14 | * xfns.c (x_set_tool_bar_lines): Take account of menu bar height. | ||
| 15 | |||
| 16 | * xterm.c (x_after_update_window_line): Don't treat tool bar windows | ||
| 17 | specially. | ||
| 18 | (XTflash): Take account of menu bar height. | ||
| 19 | |||
| 20 | * w32term.c (x_after_update_window_line): Don't treat tool bar windows | ||
| 21 | specially. | ||
| 22 | |||
| 1 | 2010-01-08 Jan Djärv <jan.h.d@swipnet.se> | 23 | 2010-01-08 Jan Djärv <jan.h.d@swipnet.se> |
| 2 | 24 | ||
| 3 | * dispnew.c (change_frame_size_1): newwidth == FRAME_COLS (f) must | 25 | * dispnew.c (change_frame_size_1): newwidth == FRAME_COLS (f) must |
| @@ -38,6 +60,7 @@ | |||
| 38 | (xg_frame_resized, xg_frame_set_char_size): Call | 60 | (xg_frame_resized, xg_frame_set_char_size): Call |
| 39 | xg_clear_under_internal_border. | 61 | xg_clear_under_internal_border. |
| 40 | (xg_update_scrollbar_pos): Clear under old scroll bar position. | 62 | (xg_update_scrollbar_pos): Clear under old scroll bar position. |
| 63 | |||
| 41 | 2010-01-05 Chong Yidong <cyd@stupidchicken.com> | 64 | 2010-01-05 Chong Yidong <cyd@stupidchicken.com> |
| 42 | 65 | ||
| 43 | * keyboard.c (read_key_sequence): Catch keyboard switch after | 66 | * keyboard.c (read_key_sequence): Catch keyboard switch after |
diff --git a/src/frame.h b/src/frame.h index 8ed73c6c7d6..0386d7b4c84 100644 --- a/src/frame.h +++ b/src/frame.h | |||
| @@ -590,6 +590,11 @@ typedef struct frame *FRAME_PTR; | |||
| 590 | #define FRAME_TOP_MARGIN(F) \ | 590 | #define FRAME_TOP_MARGIN(F) \ |
| 591 | (FRAME_MENU_BAR_LINES (F) + FRAME_TOOL_BAR_LINES (F)) | 591 | (FRAME_MENU_BAR_LINES (F) + FRAME_TOOL_BAR_LINES (F)) |
| 592 | 592 | ||
| 593 | /* Pixel height of the top margin above. */ | ||
| 594 | |||
| 595 | #define FRAME_TOP_MARGIN_HEIGHT(f) \ | ||
| 596 | (FRAME_TOP_MARGIN (f) * FRAME_LINE_HEIGHT (f)) | ||
| 597 | |||
| 593 | /* Nonzero if this frame should display a menu bar | 598 | /* Nonzero if this frame should display a menu bar |
| 594 | in a way that does not use any text lines. */ | 599 | in a way that does not use any text lines. */ |
| 595 | #if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \ | 600 | #if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \ |
| @@ -975,7 +980,7 @@ extern Lisp_Object selected_frame; | |||
| 975 | at ROW/COL. */ | 980 | at ROW/COL. */ |
| 976 | 981 | ||
| 977 | #define FRAME_LINE_TO_PIXEL_Y(f, row) \ | 982 | #define FRAME_LINE_TO_PIXEL_Y(f, row) \ |
| 978 | (FRAME_INTERNAL_BORDER_WIDTH (f) \ | 983 | ((row < FRAME_TOP_MARGIN (f) ? 0 : FRAME_INTERNAL_BORDER_WIDTH (f)) \ |
| 979 | + (row) * FRAME_LINE_HEIGHT (f)) | 984 | + (row) * FRAME_LINE_HEIGHT (f)) |
| 980 | 985 | ||
| 981 | #define FRAME_COL_TO_PIXEL_X(f, col) \ | 986 | #define FRAME_COL_TO_PIXEL_X(f, col) \ |
| @@ -1000,7 +1005,13 @@ extern Lisp_Object selected_frame; | |||
| 1000 | the pixel on FRAME at Y/X. */ | 1005 | the pixel on FRAME at Y/X. */ |
| 1001 | 1006 | ||
| 1002 | #define FRAME_PIXEL_Y_TO_LINE(f, y) \ | 1007 | #define FRAME_PIXEL_Y_TO_LINE(f, y) \ |
| 1003 | (((y) - FRAME_INTERNAL_BORDER_WIDTH (f)) \ | 1008 | (((y) < FRAME_TOP_MARGIN_HEIGHT (f) \ |
| 1009 | ? (y) \ | ||
| 1010 | : ((y) < FRAME_TOP_MARGIN_HEIGHT (f) + FRAME_INTERNAL_BORDER_WIDTH (f) \ | ||
| 1011 | ? (y) - (FRAME_TOP_MARGIN_HEIGHT (f) + FRAME_INTERNAL_BORDER_WIDTH (f) \ | ||
| 1012 | /* Arrange for the division to round down. */ \ | ||
| 1013 | + FRAME_LINE_HEIGHT (f) - 1) \ | ||
| 1014 | : (y) - FRAME_INTERNAL_BORDER_WIDTH (f))) \ | ||
| 1004 | / FRAME_LINE_HEIGHT (f)) | 1015 | / FRAME_LINE_HEIGHT (f)) |
| 1005 | 1016 | ||
| 1006 | #define FRAME_PIXEL_X_TO_COL(f, x) \ | 1017 | #define FRAME_PIXEL_X_TO_COL(f, x) \ |
diff --git a/src/w32term.c b/src/w32term.c index 008042c810a..029e41e4bd9 100644 --- a/src/w32term.c +++ b/src/w32term.c | |||
| @@ -734,11 +734,6 @@ x_after_update_window_line (desired_row) | |||
| 734 | { | 734 | { |
| 735 | int y = WINDOW_TO_FRAME_PIXEL_Y (w, max (0, desired_row->y)); | 735 | int y = WINDOW_TO_FRAME_PIXEL_Y (w, max (0, desired_row->y)); |
| 736 | 736 | ||
| 737 | /* Internal border is drawn below the tool bar. */ | ||
| 738 | if (WINDOWP (f->tool_bar_window) | ||
| 739 | && w == XWINDOW (f->tool_bar_window)) | ||
| 740 | y -= width; | ||
| 741 | |||
| 742 | BLOCK_INPUT; | 737 | BLOCK_INPUT; |
| 743 | { | 738 | { |
| 744 | HDC hdc = get_frame_dc (f); | 739 | HDC hdc = get_frame_dc (f); |
diff --git a/src/window.h b/src/window.h index 80e7bfb73b2..7637ce6c047 100644 --- a/src/window.h +++ b/src/window.h | |||
| @@ -403,18 +403,32 @@ struct window | |||
| 403 | (FRAME_INTERNAL_BORDER_WIDTH (WINDOW_XFRAME (W)) \ | 403 | (FRAME_INTERNAL_BORDER_WIDTH (WINDOW_XFRAME (W)) \ |
| 404 | + WINDOW_RIGHT_EDGE_COL (W) * WINDOW_FRAME_COLUMN_WIDTH (W)) | 404 | + WINDOW_RIGHT_EDGE_COL (W) * WINDOW_FRAME_COLUMN_WIDTH (W)) |
| 405 | 405 | ||
| 406 | /* 1 if W is a menu bar window. */ | ||
| 407 | |||
| 408 | #define WINDOW_MENU_BAR_P(W) \ | ||
| 409 | (WINDOWP (WINDOW_XFRAME (W)->menu_bar_window) \ | ||
| 410 | && (W) == XWINDOW (WINDOW_XFRAME (W)->menu_bar_window)) | ||
| 411 | |||
| 412 | /* 1 if W is a tool bar window. */ | ||
| 413 | |||
| 414 | #define WINDOW_TOOL_BAR_P(W) \ | ||
| 415 | (WINDOWP (WINDOW_XFRAME (W)->tool_bar_window) \ | ||
| 416 | && (W) == XWINDOW (WINDOW_XFRAME (W)->tool_bar_window)) | ||
| 417 | |||
| 406 | /* Return the frame y-position at which window W starts. | 418 | /* Return the frame y-position at which window W starts. |
| 407 | This includes a header line, if any. */ | 419 | This includes a header line, if any. */ |
| 408 | 420 | ||
| 409 | #define WINDOW_TOP_EDGE_Y(W) \ | 421 | #define WINDOW_TOP_EDGE_Y(W) \ |
| 410 | (FRAME_INTERNAL_BORDER_WIDTH (WINDOW_XFRAME (W)) \ | 422 | (((WINDOW_MENU_BAR_P (W) || WINDOW_TOOL_BAR_P (W)) \ |
| 423 | ? 0 : FRAME_INTERNAL_BORDER_WIDTH (WINDOW_XFRAME (W))) \ | ||
| 411 | + WINDOW_TOP_EDGE_LINE (W) * WINDOW_FRAME_LINE_HEIGHT (W)) | 424 | + WINDOW_TOP_EDGE_LINE (W) * WINDOW_FRAME_LINE_HEIGHT (W)) |
| 412 | 425 | ||
| 413 | /* Return the frame y-position before which window W ends. | 426 | /* Return the frame y-position before which window W ends. |
| 414 | This includes a mode line, if any. */ | 427 | This includes a mode line, if any. */ |
| 415 | 428 | ||
| 416 | #define WINDOW_BOTTOM_EDGE_Y(W) \ | 429 | #define WINDOW_BOTTOM_EDGE_Y(W) \ |
| 417 | (FRAME_INTERNAL_BORDER_WIDTH (WINDOW_XFRAME (W)) \ | 430 | (((WINDOW_MENU_BAR_P (W) || WINDOW_TOOL_BAR_P (W)) \ |
| 431 | ? 0 : FRAME_INTERNAL_BORDER_WIDTH (WINDOW_XFRAME (W))) \ | ||
| 418 | + WINDOW_BOTTOM_EDGE_LINE (W) * WINDOW_FRAME_LINE_HEIGHT (W)) | 432 | + WINDOW_BOTTOM_EDGE_LINE (W) * WINDOW_FRAME_LINE_HEIGHT (W)) |
| 419 | 433 | ||
| 420 | 434 | ||
diff --git a/src/xdisp.c b/src/xdisp.c index 87e5e9cc37d..7a6d634aa39 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -1983,12 +1983,6 @@ get_glyph_string_clip_rects (s, rects, n) | |||
| 1983 | r.y = WINDOW_HEADER_LINE_HEIGHT (s->w); | 1983 | r.y = WINDOW_HEADER_LINE_HEIGHT (s->w); |
| 1984 | else | 1984 | else |
| 1985 | r.y = max (0, s->row->y); | 1985 | r.y = max (0, s->row->y); |
| 1986 | |||
| 1987 | /* If drawing a tool-bar window, draw it over the internal border | ||
| 1988 | at the top of the window. */ | ||
| 1989 | if (WINDOWP (s->f->tool_bar_window) | ||
| 1990 | && s->w == XWINDOW (s->f->tool_bar_window)) | ||
| 1991 | r.y -= FRAME_INTERNAL_BORDER_WIDTH (s->f); | ||
| 1992 | } | 1986 | } |
| 1993 | 1987 | ||
| 1994 | r.y = WINDOW_TO_FRAME_PIXEL_Y (s->w, r.y); | 1988 | r.y = WINDOW_TO_FRAME_PIXEL_Y (s->w, r.y); |
| @@ -19916,12 +19910,6 @@ init_glyph_string (s, OPTIONAL_HDC (hdc) char2b, w, row, area, start, hl) | |||
| 19916 | s->first_glyph = row->glyphs[area] + start; | 19910 | s->first_glyph = row->glyphs[area] + start; |
| 19917 | s->height = row->height; | 19911 | s->height = row->height; |
| 19918 | s->y = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); | 19912 | s->y = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); |
| 19919 | |||
| 19920 | /* Display the internal border below the tool-bar window. */ | ||
| 19921 | if (WINDOWP (s->f->tool_bar_window) | ||
| 19922 | && s->w == XWINDOW (s->f->tool_bar_window)) | ||
| 19923 | s->y -= FRAME_INTERNAL_BORDER_WIDTH (s->f); | ||
| 19924 | |||
| 19925 | s->ybase = s->y + row->ascent; | 19913 | s->ybase = s->y + row->ascent; |
| 19926 | } | 19914 | } |
| 19927 | 19915 | ||
diff --git a/src/xfns.c b/src/xfns.c index b886a3ff674..572cf38e0c7 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -1403,7 +1403,7 @@ x_set_tool_bar_lines (f, value, oldval) | |||
| 1403 | { | 1403 | { |
| 1404 | int height = FRAME_INTERNAL_BORDER_WIDTH (f); | 1404 | int height = FRAME_INTERNAL_BORDER_WIDTH (f); |
| 1405 | int width = FRAME_PIXEL_WIDTH (f); | 1405 | int width = FRAME_PIXEL_WIDTH (f); |
| 1406 | int y = nlines * FRAME_LINE_HEIGHT (f); | 1406 | int y = (FRAME_MENU_BAR_LINES (f) + nlines) * FRAME_LINE_HEIGHT (f); |
| 1407 | 1407 | ||
| 1408 | /* height can be zero here. */ | 1408 | /* height can be zero here. */ |
| 1409 | if (height > 0 && width > 0) | 1409 | if (height > 0 && width > 0) |
diff --git a/src/xterm.c b/src/xterm.c index efd30f4a601..2093b68c110 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -753,11 +753,6 @@ x_after_update_window_line (desired_row) | |||
| 753 | { | 753 | { |
| 754 | int y = WINDOW_TO_FRAME_PIXEL_Y (w, max (0, desired_row->y)); | 754 | int y = WINDOW_TO_FRAME_PIXEL_Y (w, max (0, desired_row->y)); |
| 755 | 755 | ||
| 756 | /* Internal border is drawn below the tool bar. */ | ||
| 757 | if (WINDOWP (f->tool_bar_window) | ||
| 758 | && w == XWINDOW (f->tool_bar_window)) | ||
| 759 | y -= width; | ||
| 760 | |||
| 761 | BLOCK_INPUT; | 756 | BLOCK_INPUT; |
| 762 | x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), | 757 | x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
| 763 | 0, y, width, height, False); | 758 | 0, y, width, height, False); |
| @@ -3062,7 +3057,7 @@ XTflash (f) | |||
| 3062 | XFillRectangle (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), gc, | 3057 | XFillRectangle (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), gc, |
| 3063 | flash_left, | 3058 | flash_left, |
| 3064 | (FRAME_INTERNAL_BORDER_WIDTH (f) | 3059 | (FRAME_INTERNAL_BORDER_WIDTH (f) |
| 3065 | + FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f)), | 3060 | + FRAME_TOP_MARGIN_HEIGHT (f)), |
| 3066 | width, flash_height); | 3061 | width, flash_height); |
| 3067 | XFillRectangle (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), gc, | 3062 | XFillRectangle (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), gc, |
| 3068 | flash_left, | 3063 | flash_left, |
| @@ -3116,7 +3111,7 @@ XTflash (f) | |||
| 3116 | XFillRectangle (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), gc, | 3111 | XFillRectangle (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), gc, |
| 3117 | flash_left, | 3112 | flash_left, |
| 3118 | (FRAME_INTERNAL_BORDER_WIDTH (f) | 3113 | (FRAME_INTERNAL_BORDER_WIDTH (f) |
| 3119 | + FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f)), | 3114 | + FRAME_TOP_MARGIN_HEIGHT (f)), |
| 3120 | width, flash_height); | 3115 | width, flash_height); |
| 3121 | XFillRectangle (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), gc, | 3116 | XFillRectangle (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), gc, |
| 3122 | flash_left, | 3117 | flash_left, |