diff options
author | Eli Zaretskii <eliz@gnu.org> | 2002-02-16 15:44:03 +0000 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2002-02-16 15:44:03 +0000 |
commit | 4a137db11264dae44860e4ea30f179ac4e211c3a (patch) | |
tree | d0af9c9e24c696050a378606e64dbfb9a1b03329 /src/msdos.c | |
parent | 63a4cd16891dff1777e7bfa074c7d808af023aec (diff) | |
download | emacs-4a137db11264dae44860e4ea30f179ac4e211c3a.tar.gz |
(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.
Diffstat (limited to 'src/msdos.c')
-rw-r--r-- | src/msdos.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/msdos.c b/src/msdos.c index f466196f9af..f5dff6fb5bc 100644 --- a/src/msdos.c +++ b/src/msdos.c @@ -1196,6 +1196,10 @@ static Lisp_Object help_echo_window; 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 @@ dos_rawgetc () 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 @@ syms_of_msdos () 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, |