[Xorg-commit] xc/programs/Xserver/hw/xwin winmultiwindowwindow.c,1.1.4.1.2.6,1.1.4.1.2.7 winmultiwindowwndproc.c,1.1.6.4,1.1.6.5

Takuma Murakami xorg-commit at pdx.freedesktop.org
Wed May 9 17:30:30 EEST 2007


Committed by: takuma

Update of /cvs/xorg/xc/programs/Xserver/hw/xwin
In directory pdx:/tmp/cvs-serv4815

Modified Files:
      Tag: CYGWIN
	winmultiwindowwindow.c winmultiwindowwndproc.c 
Log Message:
For the topmost Windows window, explicitly raise its X counterpart to the top in Z order to keep correct stacking when there is a minimized window which formerly obscured it.


Index: winmultiwindowwindow.c
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xwin/winmultiwindowwindow.c,v
retrieving revision 1.1.4.1.2.6
retrieving revision 1.1.4.1.2.7
diff -u -d -r1.1.4.1.2.6 -r1.1.4.1.2.7
--- a/winmultiwindowwindow.c	21 Feb 2004 13:30:25 -0000	1.1.4.1.2.6
+++ b/winmultiwindowwindow.c	25 Feb 2004 06:23:39 -0000	1.1.4.1.2.7
@@ -761,6 +761,7 @@
   WindowPtr pWinSib = NULL;
   DWORD dwCurrentProcessID = GetCurrentProcessId ();
   DWORD dwWindowProcessID = 0;
+  XID vlist[2];
 
 #if CYGMULTIWINDOW_DEBUG
   ErrorF ("winReorderWindowsMultiWindow\n");
@@ -771,7 +772,7 @@
   if (pScreenPriv->fWindowOrderChanged)
     {
 #if CYGMULTIWINDOW_DEBUG
-      ErrorF ("winOrderWindowsMultiWindow - Need to restack\n");
+      ErrorF ("winReorderWindowsMultiWindow - Need to restack\n");
 #endif
       hwnd = GetTopWindow (NULL);
 
@@ -786,24 +787,19 @@
 	      pWinSib = pWin;
 	      pWin = GetProp (hwnd, WIN_WINDOW_PROP);
 	      
-	      if (pWinSib)
-		{
-		  XID *vlist = malloc (sizeof(long) * 2);
-		  
-		  if (vlist == NULL)
-		    {
-		      ErrorF ("winOrderWindowsMultiWindow - malloc () "
-			      "failed\n");
-		      return;
-		    }
+	      if (!pWinSib)
+		{ /* 1st window - raise to the top */
+		  vlist[0] = Above;
 		  
-		  ((long*)vlist)[0] = winGetWindowID (pWinSib);
-		  ((long*)vlist)[1] = Below;
+		  ConfigureWindow (pWin, CWStackMode, vlist, wClient(pWin));
+		}
+	      else
+		{ /* 2nd or deeper windows - just below the previous one */
+		  vlist[0] = winGetWindowID (pWinSib);
+		  vlist[1] = Below;
 
 		  ConfigureWindow (pWin, CWSibling | CWStackMode,
 				   vlist, wClient(pWin));
-		  
-		  free (vlist);
 		}
 	    }
 	  hwnd = GetNextWindow (hwnd, GW_HWNDNEXT);

Index: winmultiwindowwndproc.c
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xwin/winmultiwindowwndproc.c,v
retrieving revision 1.1.6.4
retrieving revision 1.1.6.5
diff -u -d -r1.1.6.4 -r1.1.6.5
--- a/winmultiwindowwndproc.c	21 Feb 2004 13:30:25 -0000	1.1.6.4
+++ b/winmultiwindowwndproc.c	25 Feb 2004 06:23:39 -0000	1.1.6.5
@@ -207,7 +207,6 @@
   WinXSizeHints sizeHints;
   RECT *rect;
   int iWidth, iHeight;
-  POINT pt;
 
   /* Invalid input checking */
   if (pWin==NULL || lParam==0)





More information about the xorg-commit mailing list