Graeme Geldenhuys schrieb:
On Sunday, 10 July 2011, Mattias Gaertner <[email protected]> wrote:
But I think DoDi was referring to floating windows, that means top level
windows, not child windows.

I'll read the thread again to try and better understand the problem.

Background information:

The LCL implements interfaces to widgetsets, which represent the *content* of windows. That's why an application only gets notifications for client-area events from the widgetset.

For dragging forms another interface, to the window manager, may be required, but this may cause trouble with the widgetsets, which already communicate with the window manager. Only Windows comes with a messaging system that handles both window (NC) and widget related messages in the same way (message queue). Here the application receives *all* messages, and has to care for sending widget-related messages to the widgets (DispatchMessage, WndProc...).

But IMO you know all that already, from your implementation of fpGui. Perhaps just you are the right person, that can figure out how the LCL can work together with every window manager, for receiving and handling notifications?

Window docking requires a notification on MouseDown in the window NC area, and then the dockmanager has to instruct the window manager that it handles subsequent mouse events himself - kind of MouseCapture.

Is this feasable, in parallel to an widgetset?


For example it would be nice, to have an event when the window title is
dragged by the user. But since some window themes do not have a title,

Welcome to the world of X11. Sometimes it can be great, but often it
can be a curse. :-/

One solution might be the use of the ALT-drag interface, that allows to move windows without or invisible title bars. I assume that such moves are not intercepted by the widgetsets, so that an application could use that for docking. It would do no harm when windows can be docked from the title bar on Windows, and with other procedures on other platforms. This may mean that window docking support has to be supplied by the RTL, because it has to be independent from the choosen widgetset...

DoDi


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

Reply via email to