Add missing window caching for minimized check.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@26809 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Fred Kiefer 2008-08-14 06:33:04 +00:00
parent ff0796c5d4
commit fc441f9bc5
3 changed files with 38 additions and 23 deletions

View file

@ -1,3 +1,10 @@
2008-08-14 Fred Kiefer <FredKiefer@gmx.de>
* Source/x11/XGServerWindow.m (-_ewmh_isMinimized:): Correct
indentation.
* Source/x11/XGServerEvent.m (-receivedEvent:type:extra:forMode:):
For PropertyNotify cache the window first.
2008-07-19 Fred Kiefer <FredKiefer@gmx.de> 2008-07-19 Fred Kiefer <FredKiefer@gmx.de>
* Source/x11/XGServerWindow.m (-window::::): For EWMH window * Source/x11/XGServerWindow.m (-window::::): For EWMH window

View file

@ -1307,24 +1307,32 @@ static int check_modifier (XEvent *xEvent, KeySym key_sym)
if (xEvent.xproperty.atom == generic.netstates.net_wm_state_atom && if (xEvent.xproperty.atom == generic.netstates.net_wm_state_atom &&
xEvent.xproperty.state == PropertyNewValue) xEvent.xproperty.state == PropertyNewValue)
{ {
/* if (cWin == 0 || xEvent.xproperty.window != cWin->ident)
* FIXME: we really should detect when the state changes from
* unminimized to minimized, or vice versa
*/
if ([self _ewmh_isMinimized: xEvent.xproperty.window])
{ {
// Same event as when we get ClientMessage with the atom generic.cachedWindow
// equal to generic.miniaturize_atom = [XGServer _windowForXWindow: xEvent.xproperty.window];
eventLocation = NSMakePoint(0,0); }
e = [NSEvent otherEventWithType: NSAppKitDefined if (cWin != 0)
location: eventLocation {
modifierFlags: 0 /*
timestamp: xEvent.xproperty.time / 1000 * FIXME: we really should detect when the state changes from
windowNumber: cWin->number * unminimized to minimized, or vice versa
context: gcontext */
subtype: GSAppKitWindowMiniaturize if ([self _ewmh_isMinimized: xEvent.xproperty.window])
data1: 0 {
data2: 0]; // Same event as when we get ClientMessage with the atom
// equal to generic.miniaturize_atom
eventLocation = NSMakePoint(0,0);
e = [NSEvent otherEventWithType: NSAppKitDefined
location: eventLocation
modifierFlags: 0
timestamp: xEvent.xproperty.time / 1000
windowNumber: cWin->number
context: gcontext
subtype: GSAppKitWindowMiniaturize
data1: 0
data2: 0];
}
} }
} }
} }

View file

@ -4581,7 +4581,7 @@ _computeDepth(int class, int bpp)
* property. We map the EWMH _NET_WM_STATE_HIDDEN state to GNUstep's * property. We map the EWMH _NET_WM_STATE_HIDDEN state to GNUstep's
* miniaturized state. * miniaturized state.
*/ */
- (BOOL) _ewmh_isMinimized: (Window) win - (BOOL) _ewmh_isMinimized: (Window)win
{ {
Atom *data; Atom *data;
int count; int count;
@ -4596,13 +4596,13 @@ _computeDepth(int class, int bpp)
return NO; return NO;
for (i = 0; i < count; i++) for (i = 0; i < count; i++)
{
if (data[i] == generic.netstates.net_wm_state_hidden_atom)
{ {
XFree(data); if (data[i] == generic.netstates.net_wm_state_hidden_atom)
return YES; {
XFree(data);
return YES;
}
} }
}
XFree(data); XFree(data);
return NO; return NO;