diff src/event-Xt.c @ 100:4be1180a9e89 r20-1b2

Import from CVS: tag r20-1b2
author cvs
date Mon, 13 Aug 2007 09:15:11 +0200
parents 6a378aca36af
children a145efe76779
line wrap: on
line diff
--- a/src/event-Xt.c	Mon Aug 13 09:13:58 2007 +0200
+++ b/src/event-Xt.c	Mon Aug 13 09:15:11 2007 +0200
@@ -55,6 +55,18 @@
 #include "mule-coding.h"
 #endif
 
+#ifdef WINDOWSNT
+/* Hmm, under unix we want X modifiers, under NT we want X modifiers if
+   we are running X and Windows modifiers otherwise.
+   gak. This is a kludge until we support multiple native GUIs!
+*/
+#undef MOD_ALT
+#undef MOD_CONTROL
+#undef MOD_SHIFT
+#endif
+
+#include <events-mod.h>
+
 static void enqueue_Xt_dispatch_event (Lisp_Object event);
 
 static struct event_stream *Xt_event_stream;
@@ -1319,8 +1331,19 @@
       
     case VisibilityNotify: /* window visiblity has changed */
       if (event->xvisibility.window == XtWindow (FRAME_X_SHELL_WIDGET (f)))
- 	FRAME_X_TOTALLY_VISIBLE_P (f) =
- 	  (event->xvisibility.state == VisibilityUnobscured);
+#if 0 /* This causes all kinds of strange behavior I don't like. -sb */
+	{
+	  /* Note that the fvwm pager only sends VisibilityNotify when
+	     changing pages. Is this all we need to do ? JV */
+	  FRAME_VISIBLE_P (f) =
+	    ( event->xvisibility.state != VisibilityFullyObscured);
+	  FRAME_X_TOTALLY_VISIBLE_P (f) =
+	    (event->xvisibility.state == VisibilityUnobscured);
+	}
+#else
+        FRAME_X_TOTALLY_VISIBLE_P (f) =
+	  (event->xvisibility.state == VisibilityUnobscured);
+#endif
       break;
       
     case ConfigureNotify: