fix restoring pointer focus
I don't know why I thought it was working before. Maybe I should go do something else.main
parent
71572521e9
commit
8de18f9bb4
7
dwl.c
7
dwl.c
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue