After more tests I notice the problem is because NSApp send an event with
the mask NSAppKitDefined with subtype GSAppKitWindowMoved. This change
the frame of the window. But the window has not been moved. 

Backtrace tell that the event is sent from NSApplication -sendEvent:. Who send
this event? As far as I understand these events are sent when the user move
the window with the mouse or when the window manager move the window.
But the window is at the same place.

Germán.

On 2013-06-24 01:10:12 -0600 Germán Arias <[email protected]> wrote:

> I found a problem with -convertScreenToBase: in NSWindow. This is related with
> the problem I have with some in-window menus. This method not always use the 
> current
> frame of the window. Sometimes use a previous value of the frame. This
> occurs when NSMenuView call -mouseLocationOutsideOfEventStream.
> I uploaded a video here:
> 
> http://www.youtube.com/watch?v=JkZBu8w3QOg
> 
> First I show the problem with Ink. Then I run Ink in a shell to display some 
> messages
> I added on NSWindow, methods -setFrame:display: and -convertScreenToBase.
> And in -changeWindowHeight at GSWindowDecorationView.
> 
> At first window that Ink show, all is OK. All methods use the same frame.
> But in the second window, only -changeWindowHeight and -setFrame.display:
> uses the correct frame. -convertScreenToBase use the correct frame only the 
> first
> time, after this use the previous value. And this occurs with all windows 
> that you
> open later. Of course, move or resize the window solves the problem. But this 
> isn't
> the idea.
> 
> What can cause this problem?
> 
> This is with SVN and using Cairo with Glx enabled.
> 
> Germán.
> 
> 
> 


_______________________________________________
Gnustep-dev mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to