Merge branch 'fix-segfault-in-fullscreennotify'
This commit is contained in:
commit
88f241d1cf
2 changed files with 21 additions and 1 deletions
10
client.h
10
client.h
|
@ -103,6 +103,16 @@ client_is_float_type(Client *c)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
client_wants_fullscreen(Client *c)
|
||||
{
|
||||
#ifdef XWAYLAND
|
||||
if (client_is_x11(c))
|
||||
return c->surface.xwayland->fullscreen;
|
||||
#endif
|
||||
return c->surface.xdg->toplevel->requested.fullscreen;
|
||||
}
|
||||
|
||||
static inline int
|
||||
client_is_unmanaged(Client *c)
|
||||
{
|
||||
|
|
12
dwl.c
12
dwl.c
|
@ -1043,7 +1043,14 @@ void
|
|||
fullscreennotify(struct wl_listener *listener, void *data)
|
||||
{
|
||||
Client *c = wl_container_of(listener, c, fullscreen);
|
||||
setfullscreen(c, !c->isfullscreen);
|
||||
int fullscreen = client_wants_fullscreen(c);
|
||||
|
||||
if (!c->mon) {
|
||||
/* if the client is not mapped yet, let mapnotify() call setfullscreen() */
|
||||
c->isfullscreen = fullscreen;
|
||||
return;
|
||||
}
|
||||
setfullscreen(c, fullscreen);
|
||||
}
|
||||
|
||||
Monitor *
|
||||
|
@ -1318,6 +1325,9 @@ mapnotify(struct wl_listener *listener, void *data)
|
|||
/* Set initial monitor, tags, floating status, and focus */
|
||||
applyrules(c);
|
||||
printstatus();
|
||||
|
||||
if (c->isfullscreen)
|
||||
setfullscreen(c, 1);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in a new issue