xserver: Branch 'xorg-server-1.4-apple'

Jeremy Huddleston jeremyhu at kemper.freedesktop.org
Fri Apr 10 00:48:02 PDT 2009


 hw/xquartz/xpr/xprAppleWM.c |   16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

New commits:
commit c28c2ddc3a8f3c5b9beec396953bb3ac9ee4714b
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date:   Thu Apr 9 20:00:37 2009 -0700

    XQuartz: xprSetWindowLevel updated to store the level requested by the WM

diff --git a/hw/xquartz/xpr/xprAppleWM.c b/hw/xquartz/xpr/xprAppleWM.c
index b13db06..9c44e20 100644
--- a/hw/xquartz/xpr/xprAppleWM.c
+++ b/hw/xquartz/xpr/xprAppleWM.c
@@ -38,6 +38,7 @@
 
 #include "applewmExt.h"
 #include "rootless.h"
+#include "rootlessCommon.h"
 #include <Xplugin.h>
 #include <X11/X.h>
 #include "quartz.h"
@@ -49,13 +50,24 @@ static int xprSetWindowLevel(
 {
     xp_window_id wid;
     xp_window_changes wc;
+    RootlessWindowRec *winRec;
 
+    // AppleWMNumWindowLevels is allowed, but is only set by the server
+    // for the root window.
+    if (level < 0 || level >= AppleWMNumWindowLevels) {
+        return BadValue;
+    }
+    
     wid = x_cvt_vptr_to_uint(RootlessFrameForWindow (pWin, TRUE));
     if (wid == 0)
         return BadWindow;
 
     RootlessStopDrawing (pWin, FALSE);
-
+    winRec = WINREC(pWin);
+ 
+    if(!winRec)
+        return BadWindow;
+    
     if(quartzEnableRootless)
         wc.window_level = normal_window_levels[level];
     else
@@ -65,6 +77,8 @@ static int xprSetWindowLevel(
         return BadValue;
     }
 
+    winRec->level = level;
+
     return Success;
 }
 


More information about the xorg-commit mailing list