mirror of
https://github.com/gnustep/libs-back.git
synced 2025-02-23 20:01:22 +00:00
Create an empty app icon window before eventually checking the window
frame offsets when using WindowMaker. This fixes the issue that the first GNUstep application started under WindowMaker did not get a proper application menu. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@39171 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
2478d0b17b
commit
1e1185abb3
2 changed files with 40 additions and 0 deletions
|
@ -1,3 +1,11 @@
|
|||
2015-11-13 Wolfgang Lux <wolfgang.lux@gmail.com>
|
||||
|
||||
* Source/x11/XGServerWindow.m (_setupRootWindow, window::::):
|
||||
Create an empty app icon window before eventually checking the
|
||||
window frame offsets when using WindowMaker. This fixes the issue
|
||||
that the first GNUstep application started under WindowMaker did
|
||||
not get a proper application menu.
|
||||
|
||||
2015-11-03 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Source/x11/XGServerEvent.m (-processEvent:): For repeated keys
|
||||
|
|
|
@ -74,6 +74,7 @@
|
|||
|
||||
|
||||
static BOOL handlesWindowDecorations = YES;
|
||||
static int _wmAppIcon = -1;
|
||||
|
||||
|
||||
/*
|
||||
|
@ -1708,6 +1709,24 @@ _get_next_prop_new_event(Display *display, XEvent *event, char *arg)
|
|||
// FIXME: Need to set WM_CLIENT_MACHINE as well.
|
||||
}
|
||||
|
||||
/* WindowMaker hack: We want to display our own app icon window in the
|
||||
* icon window provided by WindowMaker. However, this only works when
|
||||
* the icon window is the first window being mapped. For that reason,
|
||||
* we create an empty icon window here before the code below eventually
|
||||
* generates some temporary windows to determine the window frame offsets
|
||||
* and reuse the icon window once the real app icon window is allocated.
|
||||
*/
|
||||
if ((generic.wm & XGWM_WINDOWMAKER) == XGWM_WINDOWMAKER
|
||||
&& generic.flags.useWindowMakerIcons == 1)
|
||||
{
|
||||
NSDebugLLog(@"XGTrace", @"WindowMaker hack: Preparing app icon window");
|
||||
_wmAppIcon =
|
||||
[self window: NSZeroRect : NSBackingStoreBuffered
|
||||
: NSIconWindowMask : defScreen];
|
||||
[self orderwindow: NSWindowAbove : -1 : _wmAppIcon];
|
||||
NSDebugLLog(@"XGTrace", @"WindowMaker hack: icon window = %d", _wmAppIcon);
|
||||
}
|
||||
|
||||
/* We need to determine the offsets between the actual decorated window
|
||||
* and the window we draw into.
|
||||
*/
|
||||
|
@ -1996,6 +2015,19 @@ _get_next_prop_new_event(Display *display, XEvent *event, char *arg)
|
|||
RContext *context;
|
||||
|
||||
NSDebugLLog(@"XGTrace", @"DPSwindow: %@ %d", NSStringFromRect(frame), (int)type);
|
||||
/* WindowMaker hack: Reuse the empty app icon allocated in _setupRootWindow
|
||||
* for the real app icon.
|
||||
*/
|
||||
if ((generic.wm & XGWM_WINDOWMAKER) == XGWM_WINDOWMAKER
|
||||
&& generic.flags.useWindowMakerIcons == 1
|
||||
&& (style & NSIconWindowMask) == NSIconWindowMask
|
||||
&& _wmAppIcon != -1)
|
||||
{
|
||||
int win = _wmAppIcon;
|
||||
NSDebugLLog(@"XGTrace", @"WindowMaker hack: Returning window %d as app icon window", win);
|
||||
_wmAppIcon = -1;
|
||||
return win;
|
||||
}
|
||||
root = [self _rootWindowForScreen: screen];
|
||||
context = [self xrContextForScreen: screen];
|
||||
|
||||
|
|
Loading…
Reference in a new issue