Fix crash when moving cursor over a fullscreen split container
Calling container_at_view fails an assertion if the container isn't a view. Calling tiling_container_at works correctly, as that function checks if the container is a view and calls container_at_view if so.
This commit is contained in:
parent
5ac3509d54
commit
c17f0870ef
|
@ -234,9 +234,9 @@ struct sway_container *container_at(struct sway_container *workspace,
|
|||
double lx, double ly, struct wlr_surface **surface,
|
||||
double *sx, double *sy);
|
||||
|
||||
struct sway_container *container_at_view(struct sway_container *view,
|
||||
double lx, double ly, struct wlr_surface **surface,
|
||||
double *sx, double *sy);
|
||||
struct sway_container *tiling_container_at(
|
||||
struct sway_container *con, double lx, double ly,
|
||||
struct wlr_surface **surface, double *sx, double *sy);
|
||||
|
||||
/**
|
||||
* Apply the function for each descendant of the container breadth first.
|
||||
|
|
|
@ -99,7 +99,7 @@ static struct sway_container *container_at_coords(
|
|||
return ws;
|
||||
}
|
||||
if (ws->sway_workspace->fullscreen) {
|
||||
return container_at_view(ws->sway_workspace->fullscreen, lx, ly,
|
||||
return tiling_container_at(ws->sway_workspace->fullscreen, lx, ly,
|
||||
surface, sx, sy);
|
||||
}
|
||||
if ((*surface = layer_surface_at(output,
|
||||
|
|
|
@ -535,7 +535,7 @@ struct sway_container *container_parent(struct sway_container *container,
|
|||
return container;
|
||||
}
|
||||
|
||||
struct sway_container *container_at_view(struct sway_container *swayc,
|
||||
static struct sway_container *container_at_view(struct sway_container *swayc,
|
||||
double lx, double ly,
|
||||
struct wlr_surface **surface, double *sx, double *sy) {
|
||||
if (!sway_assert(swayc->type == C_VIEW, "Expected a view")) {
|
||||
|
@ -574,10 +574,6 @@ struct sway_container *container_at_view(struct sway_container *swayc,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static struct sway_container *tiling_container_at(
|
||||
struct sway_container *con, double lx, double ly,
|
||||
struct wlr_surface **surface, double *sx, double *sy);
|
||||
|
||||
/**
|
||||
* container_at for a container with layout L_TABBED.
|
||||
*/
|
||||
|
@ -684,7 +680,7 @@ static struct sway_container *floating_container_at(double lx, double ly,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static struct sway_container *tiling_container_at(
|
||||
struct sway_container *tiling_container_at(
|
||||
struct sway_container *con, double lx, double ly,
|
||||
struct wlr_surface **surface, double *sx, double *sy) {
|
||||
if (con->type == C_VIEW) {
|
||||
|
|
Loading…
Reference in a new issue