From 808fd2c67f303cb721769375b11ce8b90ffc1909 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Thu, 9 Apr 2009 20:00:37 -0700 Subject: XQuartz: xprSetWindowLevel updated to store the level requested by the WM (cherry picked from commit c28c2ddc3a8f3c5b9beec396953bb3ac9ee4714b) --- hw/xquartz/xpr/xprAppleWM.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'hw') diff --git a/hw/xquartz/xpr/xprAppleWM.c b/hw/xquartz/xpr/xprAppleWM.c index b13db0637..9c44e20a2 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 #include #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; } -- cgit v1.2.3