mouse clicks in os-x

Andreas Raab andreas.raab at gmx.de
Thu Jul 29 20:31:29 UTC 2004


Ned,

> However, in the Windows VM we ensure that we have focus
> on a WM_?BUTTONDOWN (OR BUTTONUP) message, then go ahead
> and process it as normal (in fact, we check the focus twice
> on a buttonUP message, just to make sure!). So the behavior
> is the same as kwm's "Activate and pass click". But this is a
> focus policy decision on the part of Squeak.

No, it isn't. You are misinterpreting GetFocus() and SetFocus() API calls:

    The GetFocus function retrieves the handle to the window that has the
keyboard focus, if the window is attached to the calling thread's message
queue.

    The SetFocus function sets the keyboard focus to the specified window.
The window must be attached to the calling thread's message queue.

That is, all we do is ensure that we have the keyboard focus after you
clicked on Squeak and the only reason we do this is because the console
window at the bottom of Squeak might grab it (if you have a VM log message
and click in it). This has absolutely nothing to do with focus policy
decisions.

> What I'm proposing here is to "FIX" that issue and revert to standard
> click processing on window activation. Squeak and the squeak window
> should come to the foreground, but we shouldn't pass on that mouse
> click to cause the desktop menu to be displayed.

Unfortunately, there is absolutely nothing I can do - this decision isn't
made by the VM at all.

> Please let me know if you have any concerns with this change.

Only that it is impossible to implement ;-)

Cheers,
  - Andreas




More information about the Squeak-dev mailing list