mirror of
https://github.com/swaywm/sway.git
synced 2025-11-02 09:01:40 -05:00
Allow containers to float
Things worth noting:
* When a fullscreen view unmaps, the check to unset fullscreen on the
workspace has been moved out of view_unmap and into container_destroy,
because containers can be fullscreen too
* The calls to `container_reap_empty_recursive(workspace)` have been
removed from `container_set_floating`. That function reaps upwards so it
wouldn't do anything. I'm probably the one who originally added it...
* My fix (b14bd1b0b1) for the tabbed child
crash has a side effect where when you close a floating container, focus
is not given to the tiled container again. I've removed my fix and
removed the call to `send_cursor_motion` from `seat_set_focus_warp`. We
should consider calling it from somewhere earlier in the call stack.
This commit is contained in:
parent
a2164c6661
commit
08cfba2192
11 changed files with 126 additions and 86 deletions
|
|
@ -297,6 +297,11 @@ void container_notify_subtree_changed(struct sway_container *container);
|
|||
*/
|
||||
size_t container_titlebar_height(void);
|
||||
|
||||
/**
|
||||
* Resize and center the container in its workspace.
|
||||
*/
|
||||
void container_init_floating(struct sway_container *container);
|
||||
|
||||
void container_set_floating(struct sway_container *container, bool enable);
|
||||
|
||||
void container_set_geometry_from_floating_view(struct sway_container *con);
|
||||
|
|
@ -340,6 +345,12 @@ void container_end_mouse_operation(struct sway_container *container);
|
|||
|
||||
void container_set_fullscreen(struct sway_container *container, bool enable);
|
||||
|
||||
/**
|
||||
* Return true if the container is floating, or a child of a floating split
|
||||
* container.
|
||||
*/
|
||||
bool container_is_floating_or_child(struct sway_container *container);
|
||||
|
||||
/**
|
||||
* Return true if the container is fullscreen, or a child of a fullscreen split
|
||||
* container.
|
||||
|
|
|
|||
|
|
@ -234,11 +234,6 @@ void view_get_constraints(struct sway_view *view, double *min_width,
|
|||
uint32_t view_configure(struct sway_view *view, double lx, double ly, int width,
|
||||
int height);
|
||||
|
||||
/**
|
||||
* Center the view in its workspace and build the swayc decorations around it.
|
||||
*/
|
||||
void view_init_floating(struct sway_view *view);
|
||||
|
||||
/**
|
||||
* Configure the view's position and size based on the swayc's position and
|
||||
* size, taking borders into consideration.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue