Currently there is one flag:
- NO_STEAL_FOCUS
This is used in the toast daemon so toasts don't steal focus.
Other flags will be added in the future to control whether a window is
displayed when created, whether it should animate a particular way, etc.
This provides more understandable behavior when snapping off small
windows, ensuring the mouse doesn't hang way off to the side of the
window. It's not ideal for large windows, but it's at least reasonable
there, so it's an overall win.
Resize and drag cursors have been added.
These new cursor types are exposed in two ways:
- Window drag and resize will automatically use the resize cursors if
a cursor is enabled for the window.
- Clients can use new values for yutani_window_show_mouse to set the
current cursor type, or reset it to the previous normal or hidden
state.
The latter functionality is now used in the decoration library to
present the appropriate resize cursor when the mouse is hovered over the
decoration borders.
More cursor options may be added in the future.
Cursor themes will be added in the future as well.
Cursors are stored in /usr/share/cursor
The arrow cursor has been moved to /usr/share/cursor/normal.png
ADDENDUM: A critical heisenbug with window resizing has been fixed in
this commit involving a race with window dimensions and
potentially also buffers.
- Supports directional resizing, including restricted left/right/up/down
- Decoration-initiated resizing is now supported
- Details of how the decorator determines up-restricted resizing
still need some work.
- Corrected issues when attempting to resize to the other side of the
origin.
- Corrected some other compositor issues.