diff src/events.c @ 209:41ff10fd062f r20-4b3

Import from CVS: tag r20-4b3
author cvs
date Mon, 13 Aug 2007 10:04:58 +0200
parents e45d5e7c476e
children 78f53ef88e17
line wrap: on
line diff
--- a/src/events.c	Mon Aug 13 10:03:54 2007 +0200
+++ b/src/events.c	Mon Aug 13 10:04:58 2007 +0200
@@ -298,6 +298,12 @@
 	return (e1->event.magic.underlying_tty_event ==
 		e2->event.magic.underlying_tty_event);
 #endif
+#ifdef HAVE_W32GUI
+	if (CONSOLE_W32_P (con))
+	return (!memcmp(&e1->event.magic.underlying_w32_event,
+		&e2->event.magic.underlying_w32_event,
+		sizeof(union magic_data)));
+#endif
 	return 1; /* not reached */
       }
 
@@ -365,6 +371,15 @@
 	if (CONSOLE_TTY_P (con))
 	  return HASH2 (hash, e->event.magic.underlying_tty_event);
 #endif
+#ifdef HAVE_W32GUI
+	if (CONSOLE_W32_P (con))
+	  return HASH6 (hash, e->event.magic.underlying_w32_event.message,
+			e->event.magic.underlying_w32_event.data[0],
+			e->event.magic.underlying_w32_event.data[1],
+			e->event.magic.underlying_w32_event.data[2],
+			e->event.magic.underlying_w32_event.data[3],
+			);
+#endif
       }
 
     case empty_event:
@@ -1789,10 +1804,11 @@
        (event))
 {
   Charcount mbufp;
+  int where;
 
-  event_pixel_translation (event, 0, 0, 0, 0, 0, 0, 0, &mbufp, 0, 0);
+  where = event_pixel_translation (event, 0, 0, 0, 0, 0, 0, 0, &mbufp, 0, 0);
 
-  return mbufp < 0 ? Qnil : make_int (mbufp);
+  return (mbufp < 0 || where != OVER_MODELINE) ? Qnil : make_int (mbufp);
 }
 
 DEFUN ("event-glyph", Fevent_glyph, 1, 1, 0, /*