fix: layer shell + view bugs
- fix bug that causes layer shell seat focus incorrect on layer windows - focus on a regular view now raises all views of the related applications on top of the output
This commit is contained in:
13
layer.c
13
layer.c
@ -89,11 +89,10 @@ static void layer_surface_commit(struct wl_listener *listener, void *data)
|
||||
* enter a new/moved/resized layer surface.
|
||||
*/
|
||||
// cursor_update_focus(layer->server);
|
||||
diyac_cursor_focus(layer->server);
|
||||
//diyac_cursor_focus(layer->server);
|
||||
}
|
||||
}
|
||||
static void
|
||||
layer_surface_unmap(struct wl_listener *listener, void *data)
|
||||
static void layer_surface_unmap(struct wl_listener *listener, void *data)
|
||||
{
|
||||
struct diyac_layer_surface *layer = wl_container_of(listener, layer, unmap);
|
||||
struct wlr_layer_surface_v1 *layer_surface =
|
||||
@ -104,7 +103,7 @@ layer_surface_unmap(struct wl_listener *listener, void *data)
|
||||
}
|
||||
struct diyac_seat *seat = &layer->server->seat;
|
||||
if (seat->focused_layer == layer_surface) {
|
||||
diyac_seat_focus_layer(seat, NULL);
|
||||
diyac_seat_focus_layer(seat, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@ -131,11 +130,7 @@ static void layer_surface_node_destroy(struct wl_listener *listener, void *data)
|
||||
struct diyac_layer_surface *layer =
|
||||
wl_container_of(listener, layer, node_destroy);
|
||||
|
||||
/*
|
||||
* TODO: Determine if this layer is being used by an exclusive client.
|
||||
* If it is, try and find another layer owned by this client to pass
|
||||
* focus to.
|
||||
*/
|
||||
diyac_seat_focus_layer(&layer->server->seat, NULL);
|
||||
|
||||
wl_list_remove(&layer->map.link);
|
||||
wl_list_remove(&layer->unmap.link);
|
||||
|
Reference in New Issue
Block a user