summaryrefslogtreecommitdiff
path: root/src/msdos.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2002-02-16 19:25:24 +0000
committerEli Zaretskii <eliz@gnu.org>2002-02-16 19:25:24 +0000
commit9005a471f23f327dd3c6ee2cffc95f0903fec4d4 (patch)
treec93b84e8a3bd9fcff42407411fea0ab9ab6dd9d8 /src/msdos.c
parent94384150a60c4288978f5e28948ca3d260951e4a (diff)
downloademacs-9005a471f23f327dd3c6ee2cffc95f0903fec4d4.tar.gz
(last_mouse_window): New variable.
(dos_rawgetc): Fix last change--if the mouse is in the same window as recorded in last_mouse_window, don't select this window.
Diffstat (limited to 'src/msdos.c')
-rw-r--r--src/msdos.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/msdos.c b/src/msdos.c
index f5dff6fb5bc..19304db32e8 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -1200,6 +1200,9 @@ static int help_echo_pos;
cursor moves into it. */
int x_autoselect_window_p;
+/* Last window where we saw the mouse. Used by x-autoselect-window. */
+static Lisp_Object last_mouse_window;
+
static int mouse_preempted = 0; /* non-zero when XMenu gobbles mouse events */
/* Set the mouse pointer shape according to whether it is in the
@@ -3402,17 +3405,20 @@ dos_rawgetc ()
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)
+ selected now. A minubuffer window will be selected
+ iff it is active. */
+ if (!EQ (mouse_window, last_mouse_window)
+ && !EQ (mouse_window, selected_window)
&& (!MINI_WINDOW_P (XWINDOW (mouse_window))
|| (EQ (mouse_window, minibuf_window)
&& minibuf_level > 0)))
{
Fselect_window (mouse_window);
}
+ last_mouse_window = mouse_window;
}
+ else
+ last_mouse_window = Qnil;
previous_help_echo = help_echo;
help_echo = help_echo_object = help_echo_window = Qnil;
help_echo_pos = -1;