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