aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStivvo <stivvo01@gmail.com>2020-09-04 12:44:09 +0200
committerGuido Cella <guido@guidocella.xyz>2020-12-19 18:05:51 +0100
commit0f04c76387f74827931db0c3692fbdc2f50fa8d8 (patch)
tree918f39a2380da30f2a677fc7045706f101a0a198
parent0f48c9552eaec29e1aac0165bc0e472b05e17ecd (diff)
Basic fullscreen
-rw-r--r--dwl.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/dwl.c b/dwl.c
index 924823b..4c97cc4 100644
--- a/dwl.c
+++ b/dwl.c
@@ -102,6 +102,7 @@ typedef struct {
struct wl_listener map;
struct wl_listener unmap;
struct wl_listener destroy;
+ struct wl_listener fullscreen;
struct wlr_box geom; /* layout-relative, includes border */
Monitor *mon;
#ifdef XWAYLAND
@@ -222,6 +223,7 @@ static void cursorframe(struct wl_listener *listener, void *data);
static void destroylayersurfacenotify(struct wl_listener *listener, void *data);
static void destroynotify(struct wl_listener *listener, void *data);
static void destroyxdeco(struct wl_listener *listener, void *data);
+static void fullscreenotify(struct wl_listener *listener, void *data);
static Monitor *dirtomon(int dir);
static void focusclient(Client *c, int lift);
static void focusmon(const Arg *arg);
@@ -909,6 +911,9 @@ createnotify(struct wl_listener *listener, void *data)
wl_signal_add(&xdg_surface->events.unmap, &c->unmap);
c->destroy.notify = destroynotify;
wl_signal_add(&xdg_surface->events.destroy, &c->destroy);
+
+ wl_signal_add(&xdg_surface->toplevel->events.request_fullscreen, &c->fullscreen);
+ c->fullscreen.notify = fullscreenotify;
}
void
@@ -1037,6 +1042,12 @@ destroyxdeco(struct wl_listener *listener, void *data)
free(d);
}
+void
+fullscreenotify(struct wl_listener *listener, void *data) {
+ Client *c = wl_container_of(listener, c, fullscreen);
+ wlr_xdg_toplevel_set_fullscreen(c->surface.xdg, true);
+}
+
Monitor *
dirtomon(int dir)
{