discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSWindow receives NSAppKitDefined/GSAppKitWindowMoved strange messag


From: Philippe Roussel
Subject: Re: NSWindow receives NSAppKitDefined/GSAppKitWindowMoved strange messages with x = -1
Date: Fri, 04 May 2012 11:07:18 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:11.0) Gecko/20120329 Thunderbird/11.0.1

Le 04/05/2012 00:21, Fred Kiefer a écrit :
> On 30.04.2012 19:39, Philippe Roussel wrote:
>> Le 30/04/2012 18:16, Philippe Roussel a écrit :
>>> Le 30/04/2012 17:03, Fred Kiefer a écrit :
>>>> Not handling move and reparenting events when the window is not visible
>>>> sounds like a great idea to me. The only problem is that we would need
>>>> to test this with each and every window manager that we support :-(
>>>>
>>>> A saver solution might be to just not save the window frame in the
>>>> event
>>>> handling code of NSWindow, when the window isn't visible. Could you
>>>> please test this and report back the results?
>>>> It definitely isn't a complete solutions, as the stored frame will be
>>>> wrong as long as the window isn't visible, but we could get away with a
>>>> lot less testing.
>>>
>>> I will test this tonight and report back.
>>
>> The following minimal patch/hack works for me without any visible bad
>> consequences.
>>
>> I'm still having problems when closing and reopening the preferences
>> panel without exiting the application (sometimes the panel wrongly
>> appears in the top left corner and with a bad size) but it doesn't seem
>> related. I'll try to dig further.
> 
> Most likely all this is related. In my new daytime job I am now using
> Unity as the window manager and have a somewhat better understanding of
> how this interferes with all windows. In some cases this is rather nice
> and gives an almost Mac like feeling, but in many cases it makes
> applications unusable. I haven't tried GNUstep in that environment, but
> I can imagine a lot of things that could go wrong there.
> 
> I think that normally we don't want to ignore resizes that happen while
> a window is invisible, but for Unity this may be the case. We have the
> extra case of NSAppKitDefined events that get handled even when a window
> is invisible in the [NSWindow sendEvent:] method and I think in most
> cases this is correct. You could change this as a test, but there is no
> guarantee then, that the window manager and the GNUstep application
> agree on where the window is positioned when it is made visible again.
> Due to our current code in [NSWindow orderWindow:relativeTo:] this wont
> do any harm for titled windows, but windows with out a title might be
> displayed at the wrong place.

Changing the code in sendEvent: from

if (!_f.visible && [theEvent type] != NSAppKitDefined)

to

if (!_f.visible)

seems to change a lot of things. The appicon isn't correctly displayed
for example but I didn't try to understand why.

I've observed other strange behaviours with newer window managers
(unity, gnome-shell, recent metacity). For example, a window with
NSStatusWindowLevel has no decorations and cannot be moved, contrary to
what happens with windowmaker. There might some work to do to support
those wms...

Thanks,
Philippe





reply via email to

[Prev in Thread] Current Thread [Next in Thread]