mirror of
https://github.com/labwc/labwc.git
synced 2025-10-31 22:25:34 -04:00
Fix a couple of glitches seen when exiting interactive move/resize:
- Cursor briefly set to left_ptr rather than the correct cursor image
- Cursor not updated if the view being moved/resized is destroyed
Also make sure to exit interactive mode if the view is going fullscreen
(labwc gets very confused otherwise).
Code changes in detail:
- Factor out set_server_cursor() which will set the correct cursor
image for non-client areas (either XCURSOR_DEFAULT or one of the
resize cursors).
- Unify the logic from cursor_rebase() and process_cursor_motion by
factoring out cursor_update_common(). This corrects some logic
discrepancies between the two, which should be a good thing(TM).
- Remove the extra cursor_set(XCURSOR_DEFAULT) from interactive_end()
and instead rely on cursor_update_focus() to do the right thing.
- Simplify cursor_button() by just calling interactive_end() when we
want to exit interactive mode.
- Call cursor_update_focus() from view_destroy() if the view had mouse
focus or was being interactively moved/resized.
v2: Eliminate force_reenter parameters and figure out automatically
when we need to re-enter the surface.
v3: Rename wlseat -> wlr_seat.
v4: Simplify client/server cursor logic.
|
||
|---|---|---|
| .. | ||
| common | ||
| config | ||
| menu | ||
| private | ||
| xbm | ||
| action.h | ||
| buffer.h | ||
| debug.h | ||
| key-state.h | ||
| labwc.h | ||
| layers.h | ||
| meson.build | ||
| node.h | ||
| resistance.h | ||
| ssd.h | ||
| theme.h | ||
| workspaces.h | ||