gnustep-dev
[Top][All Lists]
Advanced

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

Re: Drag/drop from workspace to app icon


From: Adrian Robert
Subject: Re: Drag/drop from workspace to app icon
Date: Fri, 14 Jan 2005 11:10:24 -0500

On Jan 14, 2005, at 10:58 AM, Adam Fedor wrote:


On Jan 12, 2005, at 10:11 AM, Adrian Robert wrote:
The problem is though (on GNUstep), the message only seems to be sent if the app icon is in the lower left of the screen. This applies to other apps like TextEdit too. Put the icon in the lower left, and a green 'draggable' icon appears when dragging, and it gets the file. Move it away, and a black 'no' icon appears instead, and no file open message is received. Has anyone else experienced this? I'm using WindowMaker, is it to blame? My GWorkspace is CVS from about a month ago.


There are NSDragging debug log messages you can look at that might help. They print something whenever a drag event gets sent to the app:

openapp MyApp --GNU-Debug=NSDragging

Thanks, I eventually tried this debug (and NSEvent) and ended up finding the problem is that no ConfigureNotify events are being sent to XGServerEvent for application icon windows. Thus, the icon is initially granted location at lower left, then placed by the window manager, possibly moved, etc., but GNUstep never hears about it, and the intersection computation when a drag comes is messed up because it gets the drag coordinates in root space. I guess this has something to do with WindowMaker, either intercepting server-generated ConfigureNotify events or simply not synthesizing them for the app icon, because it feels that it is its job to manage it and the app should not care.

Perhaps this has been fixed in the ongoing "development version" of WindowMaker, or there is some way to configure it to provide the ConfigureNotify's?

If there is no fix of this kind, I found that simply tossing in a direct determination of the window's coordinates when XGServerEvent gets XdndPosition events works around the bug reasonably well. I'll check this in unless someone has a better idea..





reply via email to

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