changeset 731:46d76bae9921

[xemacs-hg @ 2002-01-18 18:01:02 by adrian] [A5R4] [PATCH] r21-4-6-windows: mswindows_wnd_proc to handle WM_SHOWWINDOW (for virtuawin) <7kqjct4h.fsf@mailto.t-online.de>
author adrian
date Fri, 18 Jan 2002 18:01:04 +0000
parents 3e321319c5ba
children b9b8621c2439
files src/ChangeLog src/event-msw.c
diffstat 2 files changed, 30 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sat Jan 12 00:19:50 2002 +0000
+++ b/src/ChangeLog	Fri Jan 18 18:01:04 2002 +0000
@@ -1,3 +1,9 @@
+2002-01-15  Adrian Aichner  <adrian@xemacs.org>
+
+	* event-msw.c (mswindows_wnd_proc): Add handling of WM_SHOWWINDOW
+	to fix problem switching between virtual desktops under virtuawin
+	virtual window manager.
+
 2002-01-10  Stephen J. Turnbull  <stephen@xemacs.org>
 
 	* mule-charset.c (global):
--- a/src/event-msw.c	Sat Jan 12 00:19:50 2002 +0000
+++ b/src/event-msw.c	Fri Jan 18 18:01:04 2002 +0000
@@ -2646,6 +2646,30 @@
 	return DefWindowProc (hwnd, message_, wParam, lParam);
       }
 
+    case WM_SHOWWINDOW:
+      /*
+         The WM_SHOWWINDOW message is sent to a window when the window
+         is about to be hidden or shown.
+         APA: This message is also sent when switching to a virtual
+         desktop under the virtuawin virtual window manager.
+      
+      */
+      {
+	fobj = mswindows_find_frame (hwnd);
+	frame = XFRAME (fobj);
+        if (wParam == TRUE)
+          {
+            mswindows_enqueue_magic_event (hwnd, XM_MAPFRAME);
+            FRAME_VISIBLE_P (frame) = 1;
+          }
+        else
+          {
+            mswindows_enqueue_magic_event (hwnd, XM_UNMAPFRAME);
+            FRAME_VISIBLE_P (frame) = 0;
+          }
+      }
+      break;
+
     case WM_SIZE:
       /* We only care about this message if our size has really changed */
       if (wParam==SIZE_RESTORED || wParam==SIZE_MAXIMIZED || wParam==SIZE_MINIMIZED)