fix restoring pointer focus

I don't know why I thought it was working before. Maybe I should go do
something else.
main
Guido Cella 2020-09-04 21:14:02 +02:00
parent 71572521e9
commit 8de18f9bb4
1 changed files with 6 additions and 1 deletions

7
dwl.c
View File

@ -140,6 +140,7 @@ typedef struct {
struct wlr_box geo; struct wlr_box geo;
enum zwlr_layer_shell_v1_layer layer; enum zwlr_layer_shell_v1_layer layer;
bool unmapping;
} LayerSurface; } LayerSurface;
typedef struct { typedef struct {
@ -2082,6 +2083,7 @@ toggleview(const Arg *arg)
void void
unmaplayersurface(LayerSurface *layersurface) unmaplayersurface(LayerSurface *layersurface)
{ {
layersurface->unmapping = true;
if (layersurface->layer_surface->surface == if (layersurface->layer_surface->surface ==
seat->keyboard_state.focused_surface) seat->keyboard_state.focused_surface)
focusclient(NULL, selclient(), 1); focusclient(NULL, selclient(), 1);
@ -2141,7 +2143,10 @@ xytolayersurface(struct wl_list *layer_surfaces, double x, double y,
{ {
LayerSurface *layersurface; LayerSurface *layersurface;
wl_list_for_each_reverse(layersurface, layer_surfaces, link) { wl_list_for_each_reverse(layersurface, layer_surfaces, link) {
struct wlr_surface *sub = wlr_layer_surface_v1_surface_at( struct wlr_surface *sub;
if (layersurface->unmapping)
continue;
sub = wlr_layer_surface_v1_surface_at(
layersurface->layer_surface, layersurface->layer_surface,
x - layersurface->geo.x, x - layersurface->geo.x,
y - layersurface->geo.y, y - layersurface->geo.y,