mirror of
https://github.com/swaywm/sway.git
synced 2026-05-03 06:46:26 -04:00
Fix popup rendering order and popup container_at issues
This adds proper support for popups overhanging their swayc bounds. For locating a surface at a given coordinate, it iterates all the floating popups first, then floating toplevels and decorations, then tiled popups, then tiled toplevels and decorations. For rendering popups, it renders all toplevels and decorations first, then popups afterwards.
This commit is contained in:
parent
0f71547032
commit
e84166a734
4 changed files with 159 additions and 46 deletions
|
|
@ -169,16 +169,16 @@ struct sway_container *container_parent(struct sway_container *container,
|
|||
* surface-local coordinates of the given layout coordinates if the container
|
||||
* is a view and the view contains a surface at those coordinates.
|
||||
*/
|
||||
struct sway_container *container_at(struct sway_container *container,
|
||||
double ox, double oy, struct wlr_surface **surface,
|
||||
struct sway_container *container_at(struct sway_container *workspace,
|
||||
double lx, double ly, struct wlr_surface **surface,
|
||||
double *sx, double *sy);
|
||||
|
||||
/**
|
||||
* Same as container_at, but only checks floating views and expects coordinates
|
||||
* to be layout coordinates, as that's what floating views use.
|
||||
* Same as container_at, but only checks for popups only.
|
||||
*/
|
||||
struct sway_container *floating_container_at(double lx, double ly,
|
||||
struct wlr_surface **surface, double *sx, double *sy);
|
||||
struct sway_container *popup_at(struct sway_container *workspace,
|
||||
double lx, double ly, struct wlr_surface **surface,
|
||||
double *sx, double *sy);
|
||||
|
||||
/**
|
||||
* Apply the function for each descendant of the container breadth first.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue