X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/f0398ec17f8a00d6c6d828c3d04522d94337d156..946618bae3f84472c45d893e20e19b7422346370:/src/w32console.c diff --git a/src/w32console.c b/src/w32console.c index ee92a59330..285abb310f 100644 --- a/src/w32console.c +++ b/src/w32console.c @@ -53,7 +53,6 @@ static void w32con_write_glyphs (struct frame *f, struct glyph *string, int len) static void w32con_delete_glyphs (struct frame *f, int n); static void w32con_reset_terminal_modes (struct terminal *t); static void w32con_set_terminal_modes (struct terminal *t); -static void w32con_set_terminal_window (struct frame *f, int size); static void w32con_update_begin (struct frame * f); static void w32con_update_end (struct frame * f); static WORD w32_face_attributes (struct frame *f, int face_id); @@ -63,6 +62,7 @@ static HANDLE prev_screen, cur_screen; static WORD char_attr_normal; static DWORD prev_console_mode; +static CONSOLE_CURSOR_INFO console_cursor_info; #ifndef USE_SEPARATE_SCREEN static CONSOLE_CURSOR_INFO prev_console_cursor; #endif @@ -96,6 +96,22 @@ w32con_move_cursor (struct frame *f, int row, int col) SetConsoleCursorPosition (cur_screen, cursor_coords); } +void +w32con_hide_cursor (void) +{ + GetConsoleCursorInfo (cur_screen, &console_cursor_info); + console_cursor_info.bVisible = FALSE; + SetConsoleCursorInfo (cur_screen, &console_cursor_info); +} + +void +w32con_show_cursor (void) +{ + GetConsoleCursorInfo (cur_screen, &console_cursor_info); + console_cursor_info.bVisible = TRUE; + SetConsoleCursorInfo (cur_screen, &console_cursor_info); +} + /* Clear from cursor to end of screen. */ static void w32con_clear_to_end (struct frame *f) @@ -497,11 +513,6 @@ w32con_update_end (struct frame * f) SetConsoleCursorPosition (cur_screen, cursor_coords); } -static void -w32con_set_terminal_window (struct frame *f, int size) -{ -} - /*********************************************************************** stubs from termcap.c ***********************************************************************/ @@ -558,6 +569,21 @@ Wcm_clear (struct tty_display_info *tty) } +/* Report the current cursor position. The following two functions + are used in term.c's tty menu code, so they are not really + "stubs". */ +int +cursorX (struct tty_display_info *tty) +{ + return cursor_coords.X; +} + +int +cursorY (struct tty_display_info *tty) +{ + return cursor_coords.Y; +} + /*********************************************************************** Faces ***********************************************************************/ @@ -604,7 +630,6 @@ void initialize_w32_display (struct terminal *term, int *width, int *height) { CONSOLE_SCREEN_BUFFER_INFO info; - Mouse_HLInfo *hlinfo; term->rif = 0; /* No window based redisplay on the console. */ term->cursor_to_hook = w32con_move_cursor; @@ -619,7 +644,7 @@ initialize_w32_display (struct terminal *term, int *width, int *height) term->ring_bell_hook = w32_sys_ring_bell; term->reset_terminal_modes_hook = w32con_reset_terminal_modes; term->set_terminal_modes_hook = w32con_set_terminal_modes; - term->set_terminal_window_hook = w32con_set_terminal_window; + term->set_terminal_window_hook = NULL; term->update_begin_hook = w32con_update_begin; term->update_end_hook = w32con_update_end; @@ -636,13 +661,7 @@ initialize_w32_display (struct terminal *term, int *width, int *height) term->frame_up_to_date_hook = 0; /* Initialize the mouse-highlight data. */ - hlinfo = &term->display_info.tty->mouse_highlight; - hlinfo->mouse_face_beg_row = hlinfo->mouse_face_beg_col = -1; - hlinfo->mouse_face_end_row = hlinfo->mouse_face_end_col = -1; - hlinfo->mouse_face_face_id = DEFAULT_FACE_ID; - hlinfo->mouse_face_mouse_frame = NULL; - hlinfo->mouse_face_window = Qnil; - hlinfo->mouse_face_hidden = 0; + reset_mouse_highlight (&term->display_info.tty->mouse_highlight); /* Initialize interrupt_handle. */ init_crit ();