I am currently using Qt 4.7.0 and 32-bit Ubuntu 10.10.
I have created a very simple application that draws a rectangle and has no border, no title bar and no buttons in it respectively - close, maximize, minimize.
If the user clicks the rectangle with the left mouse button and begin dragging the mouse cursor while holding the left mouse button, the rectangle will be dragged. On Windows and Mac it is possible to move the window out of the desktop bounds - you are only constrained to the position of the cursor.
On Ubuntu the rectangle, which is actually the application window, cannot be moved out of the desktop extents by this custom dragging functionality. It uses QWidget::move( int x, int y ) function which is the same as xlib's XMoveWindow.
Hitting Alt + and then dragging the window with the left mouse button makes the window go out of bounds but this is because Alt + LMB is handled not by the application but by the window manager.
How could I achieve the Alt+LMB effect - move the application window out of the desktop bounds using xlib? Should I set some window attributes - XChangeProperty, XChangeWindowAttributes?
The "XLIB Programming Manual" book says:
Sixth, a window has a set of attributes. The window attributes control many aspects of the appearance and response of the
Should this window be allowed to be displayed, moved, or resized without notifying the window manager?
How to make the window not notify the window manager when the application window is moved, so that the application window can go out of its parent's bounds - the bounds of the root window?
I failed to achieve this using Qt, but I presume it is possible using xlib, I think.