summaryrefslogtreecommitdiff
path: root/src/msdos.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2002-02-16 15:44:03 +0000
committerEli Zaretskii <eliz@gnu.org>2002-02-16 15:44:03 +0000
commit4a137db11264dae44860e4ea30f179ac4e211c3a (patch)
treed0af9c9e24c696050a378606e64dbfb9a1b03329 /src/msdos.c
parent63a4cd16891dff1777e7bfa074c7d808af023aec (diff)
downloademacs-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.c29
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,