Mercurial > emacs
changeset 43357:c89a11a2baf6
(x_autoselect_window_p): New variable.
(syms_of_msdos): Defvar it.
(dos_rawgetc): If x_autoselect_window_p is set, select the window
in which the last mouse movement occured, unless it is already
selected.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 16 Feb 2002 15:41:30 +0000 |
parents | ba0eac6c2e94 |
children | 2534c8c705d9 |
files | src/msdos.c |
diffstat | 1 files changed, 29 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/msdos.c Sat Feb 16 13:18:54 2002 +0000 +++ b/src/msdos.c Sat Feb 16 15:41:30 2002 +0000 @@ -1196,6 +1196,10 @@ static Lisp_Object help_echo_object; static int help_echo_pos; +/* Non-zero means automatically select any window when the mouse + cursor moves into it. */ +int x_autoselect_window_p; + static int mouse_preempted = 0; /* non-zero when XMenu gobbles mouse events */ /* Set the mouse pointer shape according to whether it is in the @@ -3388,6 +3392,27 @@ might need to update mouse highlight. */ if (mouse_last_x != mouse_prev_x || mouse_last_y != mouse_prev_y) { + if (x_autoselect_window_p) + { + int mouse_area; + Lisp_Object mouse_window; + + mouse_window = window_from_coordinates (SELECTED_FRAME(), + mouse_last_x, + mouse_last_y, + &mouse_area, 0); + /* A window will be selected only when it is not + selected now and last mouse movement event was not in + it. A minubuffer window will be selected iff it is + active. */ + if (!EQ (mouse_window, selected_window) + && (!MINI_WINDOW_P (XWINDOW (mouse_window)) + || (EQ (mouse_window, minibuf_window) + && minibuf_level > 0))) + { + Fselect_window (mouse_window); + } + } previous_help_echo = help_echo; help_echo = help_echo_object = help_echo_window = Qnil; help_echo_pos = -1; @@ -5315,6 +5340,10 @@ This variable is used only by MSDOS terminals. */); Vdos_unsupported_char_glyph = '\177'; + + DEFVAR_BOOL ("x-autoselect-window", &x_autoselect_window_p, + doc: /* *Non-nil means autoselect window with mouse pointer. */); + x_autoselect_window_p = 0; #endif #ifndef subprocesses DEFVAR_BOOL ("delete-exited-processes", &delete_exited_processes,