XQuartz: xprSetWindowLevel updated to store the level requested by the WM
(cherry picked from commit c28c2ddc3a8f3c5b9beec396953bb3ac9ee4714b)
This commit is contained in:
parent
dfb0d7aefb
commit
808fd2c67f
|
@ -38,6 +38,7 @@
|
||||||
|
|
||||||
#include "applewmExt.h"
|
#include "applewmExt.h"
|
||||||
#include "rootless.h"
|
#include "rootless.h"
|
||||||
|
#include "rootlessCommon.h"
|
||||||
#include <Xplugin.h>
|
#include <Xplugin.h>
|
||||||
#include <X11/X.h>
|
#include <X11/X.h>
|
||||||
#include "quartz.h"
|
#include "quartz.h"
|
||||||
|
@ -49,13 +50,24 @@ static int xprSetWindowLevel(
|
||||||
{
|
{
|
||||||
xp_window_id wid;
|
xp_window_id wid;
|
||||||
xp_window_changes wc;
|
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));
|
wid = x_cvt_vptr_to_uint(RootlessFrameForWindow (pWin, TRUE));
|
||||||
if (wid == 0)
|
if (wid == 0)
|
||||||
return BadWindow;
|
return BadWindow;
|
||||||
|
|
||||||
RootlessStopDrawing (pWin, FALSE);
|
RootlessStopDrawing (pWin, FALSE);
|
||||||
|
winRec = WINREC(pWin);
|
||||||
|
|
||||||
|
if(!winRec)
|
||||||
|
return BadWindow;
|
||||||
|
|
||||||
if(quartzEnableRootless)
|
if(quartzEnableRootless)
|
||||||
wc.window_level = normal_window_levels[level];
|
wc.window_level = normal_window_levels[level];
|
||||||
else
|
else
|
||||||
|
@ -65,6 +77,8 @@ static int xprSetWindowLevel(
|
||||||
return BadValue;
|
return BadValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
winRec->level = level;
|
||||||
|
|
||||||
return Success;
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue