mirror of
https://github.com/labwc/labwc.git
synced 2026-02-08 10:06:59 -05:00
view: try to honor original geometry with layout changes
Whenever the output layout changes, each view's original geometry will be captured as last_layout_geometry (if it has not already been captured by a previous layout change), which will remain valid unless the user modifies the view's geometry (i.e., by tiling, maximizing, moving, resizing or full-screening). On subsequent output layout changes, views with valid last_layout_geometry will be back to their original position if possible, or else to the closest possible output.
This commit is contained in:
parent
1b5af86402
commit
c229f6edc0
3 changed files with 156 additions and 19 deletions
|
|
@ -70,6 +70,7 @@ interactive_begin(struct view *view, enum input_mode mode, uint32_t edges)
|
|||
} else {
|
||||
/* Store natural geometry at start of move */
|
||||
view_store_natural_geometry(view);
|
||||
view_invalidate_last_layout_geometry(view);
|
||||
}
|
||||
|
||||
/* Prevent region snapping when just moving via A-Left mousebind */
|
||||
|
|
@ -86,6 +87,13 @@ interactive_begin(struct view *view, enum input_mode mode, uint32_t edges)
|
|||
*/
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Resizing overrides any attempt to restore window
|
||||
* geometries altered by layout changes.
|
||||
*/
|
||||
view_invalidate_last_layout_geometry(view);
|
||||
|
||||
/*
|
||||
* If tiled or maximized in only one direction, reset
|
||||
* tiled/maximized state but keep the same geometry as
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue