Graeme Geldenhuys schrieb:
On 8 January 2011 17:16, Hans-Peter Diettrich <[email protected]> wrote:
What's the purpose of setting the mouse capture in the LCL?
While nobody seems to know, I found that TSpltter uses mouse capture.

MouseCapture (at least under fpGUI) is also used while the mouse
button is down, eg on a TButton. For example (i think this works under
LCL too). Click a TButton, and hold the mouse button down. Now move
the mouse cursor outside the TButton bounds. The TButton should pop up
(normal state again), and when you hove the mouse over the TButton,
the mouse would be pressed again.

That's questionable behaviour, that must be checked for compatibility with e.g. an DragManager.

Since a DragManager has no HWND and cannot capture the mouse itself, a safe implementation would redirect all mouse and keyboard events to an dragging DragManager immediately, instead of delivering the events to the target control, in the hope that it will *in any case* forward the messages to the DragManager.

At least I observed some weird behaviour of some controls, that do not check properly for a drag operation in progress. No such checks are required, and can be forgotten or implemented in a wrong way, when the event dispatcher already checks for a dragging operation in progress.

DoDi


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to