gnustep-dev
[Top][All Lists]
Advanced

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

Re: [Gnustep-cvs] r29912 - in /libs/back/trunk: ChangeLog Source/win32/W


From: Doug Simons
Subject: Re: [Gnustep-cvs] r29912 - in /libs/back/trunk: ChangeLog Source/win32/WIN32Server.m
Date: Sat, 13 Mar 2010 13:19:46 -0700

Capturing the mouse allows GNUstep to receive mouseDragged events when the mouse is outside of the window. Without this, the autoscroll mechanism doesn't work properly when a user moves the mouse out of the window while holding the button down.

I'm not at all expert (in fact I'm a complete newbie) with regards to the Windows event API, so I'm very open to other suggestions. The call to SetCapture() that I added solves the problem, and I was careful to call ReleaseCapture() when there are no longer any mouse buttons down. Hopefully that's done in such a way that it will always get called when the mouse is released.

I didn't see anything in Microsoft's documentation about what happens if SetCapture() is called more than once, so I was presuming it's a simple on/off toggle, with extra calls being ignored, but I don't know that for sure.

Let me know if anyone has a better idea for how to do this.

--
Doug Simons

Principal Developer
TestPlant
 
TestPlant Inc T    +1 720-890-0211 ext 13
4730 Walnut Street F    +1 720-890-0209
Boulder, CO 80301 address@hidden
USA
http://www.testplant.com

This email and any attachments may contain privileged / confidential information. If you have received this email in error
or believe that you are not the intended recipient, please delete all content and attached files and contact TestPlant via
the switchboard on +1 720-890-0211 or via return e-mail. You should not copy, forward or use any part of the
contents in any way. Any such unauthorised use or disclosure may be unlawful.

On Mar 13, 2010, at 5:15 AM, Fred Kiefer wrote:

Am 12.03.2010 22:29, schrieb Doug Simons:
Author: dpsimons
Date: Fri Mar 12 22:29:37 2010
New Revision: 29912

URL: http://svn.gna.org/viewcvs/gnustep?rev=29912&view=rev
Log:
capture the mouse to get mouse moved events outside of window

Modified:
   libs/back/trunk/ChangeLog
   libs/back/trunk/Source/win32/WIN32Server.m

Hi Doug,

are you sure this is what you need to do? Capturing the mouse is a very
dangerous operation, you have to make sure you always get to the release
code as well. And if this code interacts with user code that actually
tries to capture the mouse, we may get into unclear states.

If I understand your comment then this is about getting the mouse up
event that follows a mouse down on a GNUstep window. When the mouse
moves out of the window this event wont get send to GNUstep, so we will
think the mouse is still up. Is this the problem you are trying to address?
There must be a difference in the event handling of X11, as we don't
need to capture the mouse there. Perhaps the mouse up event there is
always send to the window where the mouse went down?

Sorry, I am no longer familiar with all that code, it has been ages
since I last dug that deep into the difference of the event model of X11
and Windows.

Fred



reply via email to

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