fix attached (incremental after fix for #591265) -- Thomas E. Dickey <dickey@invisible-island.net> http://invisible-island.net ftp://invisible-island.net
# ftp://invisible-island.net/xterm/patches/temp/xterm-262b.patch.gz
# patch by Thomas E. Dickey <dickey@invisible-island.net>
# created Wed Sep 1 21:37:44 UTC 2010
# ------------------------------------------------------------------------------
# misc.c | 47 ++++++++++++++++++++++++-----------------------
# xterm.h | 4 ++--
# xterm.log.html | 6 +++++-
# 3 files changed, 31 insertions(+), 26 deletions(-)
# ------------------------------------------------------------------------------
Index: misc.c
--- xterm-262a+/misc.c 2010-09-01 00:19:06.000000000 +0000
+++ xterm-262b/misc.c 2010-09-01 10:49:30.000000000 +0000
@@ -1,4 +1,4 @@
-/* $XTermId: misc.c,v 1.508 2010/09/01 00:19:06 tom Exp $ */
+/* $XTermId: misc.c,v 1.509 2010/09/01 10:49:30 tom Exp $ */
/*
* Copyright 1999-2009,2010 by Thomas E. Dickey
@@ -425,9 +425,32 @@
&& event.xany.type == MotionNotify
&& event.xcrossing.window == XtWindow(xw)) {
SendMousePosition(xw, &event);
+ xtermShowPointer(xw, True);
continue;
}
+ /*
+ * If the event is interesting (and not a keyboard event), turn the
+ * mouse pointer back on.
+ */
+ if (screen->hide_pointer) {
+ switch (event.xany.type) {
+ case KeyPress:
+ case KeyRelease:
+ case ButtonPress:
+ case ButtonRelease:
+ /* also these... */
+ case Expose:
+ case NoExpose:
+ case PropertyNotify:
+ case ClientMessage:
+ break;
+ default:
+ xtermShowPointer(xw, True);
+ break;
+ }
+ }
+
if (!event.xany.send_event ||
screen->allowSendEvents ||
((event.xany.type != KeyPress) &&
@@ -435,28 +458,6 @@
(event.xany.type != ButtonPress) &&
(event.xany.type != ButtonRelease))) {
- /*
- * If the event is interesting (and not a keyboard event), turn the
- * mouse pointer back on.
- */
- if (screen->hide_pointer) {
- switch (event.xany.type) {
- case KeyPress:
- case KeyRelease:
- case ButtonPress:
- case ButtonRelease:
- /* also these... */
- case Expose:
- case NoExpose:
- case PropertyNotify:
- case ClientMessage:
- break;
- default:
- xtermShowPointer(xw, True);
- break;
- }
- }
-
XtDispatchEvent(&event);
}
} while (XtAppPending(app_con) & XtIMXEvent);
Index: xterm.h
--- xterm-262a+/xterm.h 2010-08-29 22:42:57.000000000 +0000
+++ xterm-262b/xterm.h 2010-09-01 10:47:44.000000000 +0000
@@ -1,4 +1,4 @@
-/* $XTermId: xterm.h,v 1.630 2010/08/29 22:42:57 tom Exp $ */
+/* $XTermId: xterm.h,v 1.631 2010/09/01 10:47:44 tom Exp $ */
/************************************************************
@@ -713,7 +713,7 @@
#endif
/* button.c */
-#define MotionOff( s, t ) { \
+#define MotionOff( s, t ) if (!(screen->hide_pointer)) { \
(s)->event_mask |= ButtonMotionMask; \
(s)->event_mask &= ~PointerMotionMask; \
XSelectInput(XtDisplay((t)), XtWindow((t)), (long) (s)->event_mask); }
Index: xterm.log.html
--- xterm-262a+/xterm.log.html 2010-08-31 23:16:32.000000000 +0000
+++ xterm-262b/xterm.log.html 2010-09-01 09:56:21.000000000 +0000
@@ -31,7 +31,7 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
*****************************************************************************
- $XTermId: xterm.log.html,v 1.966 2010/08/31 23:16:32 tom Exp $
+ $XTermId: xterm.log.html,v 1.967 2010/09/01 09:56:21 tom Exp $
-->
<HTML>
<HEAD>
@@ -324,6 +324,10 @@
<H1><A NAME="xterm_dev">Development</A></H1>
<ul>
+ <li>improve <code>pointerMode</code> by continuing to watch for motion
+ events after mouse tracking is disabled if the pointer is hidden
+ (Debian #594856).
+
<li>further extend initialization for active-icon font to check if
the font was not loaded succesfully,
to retry with <code>font1</code>,
Attachment:
signature.asc
Description: Digital signature