This ensures that client-side decorations (and maybe other client
behaviors) behave intuitively during interative moves, but means that
drag to snapped position -> drag to maximize -> un-maximize
will put the window back to its natural geometry (saved before the first
snap) rather than back to the snapped position. This is a change in
behavior, but a) simplifies the logic a bit, because the tiled state is
always in sync with the window geometry and b) in some sense is "more
correct", because the window has been "visually" un-tiled the minute the
window starts dragging.
Note that maximizing using an action (including the button) a window
that has been snapped and then un-maximizing the window will put the
window back to the snapped position, as it always has.
geometry.height);
view_set_shade(view, false);
+ view_set_untiled(view);
view_restore_to(view, geometry);
} else {
/* Store natural geometry at start of move */
}
if (view->server->input_mode == LAB_INPUT_STATE_MOVE) {
- /* Reset tiled state if not snapped */
- if (!snap_to_region(view) && !snap_to_edge(view)) {
- view_set_untiled(view);
+ if (!snap_to_region(view)) {
+ snap_to_edge(view);
}
}