diff options
Diffstat (limited to 'src/dispnew.c')
| -rw-r--r-- | src/dispnew.c | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/src/dispnew.c b/src/dispnew.c index f9729fc28cb..5d4ce012530 100644 --- a/src/dispnew.c +++ b/src/dispnew.c | |||
| @@ -1180,7 +1180,7 @@ swap_glyph_pointers (struct glyph_row *a, struct glyph_row *b) | |||
| 1180 | /* Copy glyph row structure FROM to glyph row structure TO, except | 1180 | /* Copy glyph row structure FROM to glyph row structure TO, except |
| 1181 | that glyph pointers in the structures are left unchanged. */ | 1181 | that glyph pointers in the structures are left unchanged. */ |
| 1182 | 1182 | ||
| 1183 | INLINE void | 1183 | static INLINE void |
| 1184 | copy_row_except_pointers (struct glyph_row *to, struct glyph_row *from) | 1184 | copy_row_except_pointers (struct glyph_row *to, struct glyph_row *from) |
| 1185 | { | 1185 | { |
| 1186 | struct glyph *pointers[1 + LAST_AREA]; | 1186 | struct glyph *pointers[1 + LAST_AREA]; |
| @@ -2893,6 +2893,14 @@ mirror_make_current (struct window *w, int frame_row) | |||
| 2893 | else | 2893 | else |
| 2894 | swap_glyph_pointers (desired_row, current_row); | 2894 | swap_glyph_pointers (desired_row, current_row); |
| 2895 | current_row->enabled_p = 1; | 2895 | current_row->enabled_p = 1; |
| 2896 | |||
| 2897 | /* Set the Y coordinate of the mode/header line's row. | ||
| 2898 | It is needed in draw_row_with_mouse_face to find the | ||
| 2899 | screen coordinates. (Window-based redisplay sets | ||
| 2900 | this in update_window, but no one seems to do that | ||
| 2901 | for frame-based redisplay.) */ | ||
| 2902 | if (current_row->mode_line_p) | ||
| 2903 | current_row->y = row; | ||
| 2896 | } | 2904 | } |
| 2897 | } | 2905 | } |
| 2898 | 2906 | ||
| @@ -5385,7 +5393,7 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p | |||
| 5385 | BYTEPOS (startp) = min (ZV_BYTE, max (BEGV_BYTE, BYTEPOS (startp))); | 5393 | BYTEPOS (startp) = min (ZV_BYTE, max (BEGV_BYTE, BYTEPOS (startp))); |
| 5386 | start_display (&it, w, startp); | 5394 | start_display (&it, w, startp); |
| 5387 | 5395 | ||
| 5388 | x0 = *x - WINDOW_LEFT_MARGIN_WIDTH (w); | 5396 | x0 = *x; |
| 5389 | 5397 | ||
| 5390 | /* First, move to the beginning of the row corresponding to *Y. We | 5398 | /* First, move to the beginning of the row corresponding to *Y. We |
| 5391 | need to be in that row to get the correct value of base paragraph | 5399 | need to be in that row to get the correct value of base paragraph |
| @@ -6416,6 +6424,12 @@ init_display (void) | |||
| 6416 | f->terminal = t; | 6424 | f->terminal = t; |
| 6417 | 6425 | ||
| 6418 | t->reference_count++; | 6426 | t->reference_count++; |
| 6427 | #ifdef MSDOS | ||
| 6428 | f->output_data.tty->display_info = &the_only_display_info; | ||
| 6429 | #else | ||
| 6430 | if (f->output_method == output_termcap) | ||
| 6431 | create_tty_output (f); | ||
| 6432 | #endif | ||
| 6419 | t->display_info.tty->top_frame = selected_frame; | 6433 | t->display_info.tty->top_frame = selected_frame; |
| 6420 | change_frame_size (XFRAME (selected_frame), | 6434 | change_frame_size (XFRAME (selected_frame), |
| 6421 | FrameRows (t->display_info.tty), | 6435 | FrameRows (t->display_info.tty), |
| @@ -6583,13 +6597,29 @@ It is up to you to set this variable if your terminal can do that. */); | |||
| 6583 | 6597 | ||
| 6584 | DEFVAR_LISP ("initial-window-system", &Vinitial_window_system, | 6598 | DEFVAR_LISP ("initial-window-system", &Vinitial_window_system, |
| 6585 | doc: /* Name of the window system that Emacs uses for the first frame. | 6599 | doc: /* Name of the window system that Emacs uses for the first frame. |
| 6586 | The value is a symbol--for instance, `x' for X windows. | 6600 | The value is a symbol: |
| 6587 | The value is nil if Emacs is using a text-only terminal. */); | 6601 | nil for a termcap frame (a character-only terminal), |
| 6602 | 'x' for an Emacs frame that is really an X window, | ||
| 6603 | 'w32' for an Emacs frame that is a window on MS-Windows display, | ||
| 6604 | 'ns' for an Emacs frame on a GNUstep or Macintosh Cocoa display, | ||
| 6605 | 'pc' for a direct-write MS-DOS frame. | ||
| 6606 | |||
| 6607 | Use of this variable as a boolean is deprecated. Instead, | ||
| 6608 | use `display-graphic-p' or any of the other `display-*-p' | ||
| 6609 | predicates which report frame's specific UI-related capabilities. */); | ||
| 6588 | 6610 | ||
| 6589 | DEFVAR_KBOARD ("window-system", Vwindow_system, | 6611 | DEFVAR_KBOARD ("window-system", Vwindow_system, |
| 6590 | doc: /* Name of window system through which the selected frame is displayed. | 6612 | doc: /* Name of window system through which the selected frame is displayed. |
| 6591 | The value is a symbol--for instance, `x' for X windows. | 6613 | The value is a symbol: |
| 6592 | The value is nil if the selected frame is on a text-only-terminal. */); | 6614 | nil for a termcap frame (a character-only terminal), |
| 6615 | 'x' for an Emacs frame that is really an X window, | ||
| 6616 | 'w32' for an Emacs frame that is a window on MS-Windows display, | ||
| 6617 | 'ns' for an Emacs frame on a GNUstep or Macintosh Cocoa display, | ||
| 6618 | 'pc' for a direct-write MS-DOS frame. | ||
| 6619 | |||
| 6620 | Use of this variable as a boolean is deprecated. Instead, | ||
| 6621 | use `display-graphic-p' or any of the other `display-*-p' | ||
| 6622 | predicates which report frame's specific UI-related capabilities. */); | ||
| 6593 | 6623 | ||
| 6594 | DEFVAR_LISP ("window-system-version", &Vwindow_system_version, | 6624 | DEFVAR_LISP ("window-system-version", &Vwindow_system_version, |
| 6595 | doc: /* The version number of the window system in use. | 6625 | doc: /* The version number of the window system in use. |