Merge branch 'main' into pipe-status
commit
3f86336bad
19
Makefile
19
Makefile
|
@ -11,6 +11,14 @@ LDLIBS += $(foreach p,$(PKGS),$(shell pkg-config --libs $(p)))
|
||||||
|
|
||||||
all: dwl
|
all: dwl
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f dwl *.o *-protocol.h *-protocol.c
|
||||||
|
|
||||||
|
install: dwl
|
||||||
|
install -D dwl $(PREFIX)/bin/dwl
|
||||||
|
|
||||||
|
.PHONY: all clean install
|
||||||
|
|
||||||
# wayland-scanner is a tool which generates C headers and rigging for Wayland
|
# wayland-scanner is a tool which generates C headers and rigging for Wayland
|
||||||
# protocols, which are specified in XML. wlroots requires you to rig these up
|
# protocols, which are specified in XML. wlroots requires you to rig these up
|
||||||
# to your build system yourself and provide them in the include path.
|
# to your build system yourself and provide them in the include path.
|
||||||
|
@ -47,15 +55,6 @@ idle-protocol.o: idle-protocol.h
|
||||||
config.h: | config.def.h
|
config.h: | config.def.h
|
||||||
cp config.def.h $@
|
cp config.def.h $@
|
||||||
|
|
||||||
dwl.o: config.h client.h xdg-shell-protocol.h wlr-layer-shell-unstable-v1-protocol.h idle-protocol.h
|
dwl.o: config.mk config.h client.h xdg-shell-protocol.h wlr-layer-shell-unstable-v1-protocol.h idle-protocol.h
|
||||||
|
|
||||||
dwl: xdg-shell-protocol.o wlr-layer-shell-unstable-v1-protocol.o idle-protocol.o
|
dwl: xdg-shell-protocol.o wlr-layer-shell-unstable-v1-protocol.o idle-protocol.o
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f dwl *.o *-protocol.h *-protocol.c
|
|
||||||
|
|
||||||
install: dwl
|
|
||||||
install -D dwl $(PREFIX)/bin/dwl
|
|
||||||
|
|
||||||
.DEFAULT_GOAL=dwl
|
|
||||||
.PHONY: clean
|
|
||||||
|
|
13
dwl.c
13
dwl.c
|
@ -96,6 +96,7 @@ typedef struct {
|
||||||
struct wl_listener map;
|
struct wl_listener map;
|
||||||
struct wl_listener unmap;
|
struct wl_listener unmap;
|
||||||
struct wl_listener destroy;
|
struct wl_listener destroy;
|
||||||
|
struct wl_listener set_title;
|
||||||
struct wl_listener fullscreen;
|
struct wl_listener fullscreen;
|
||||||
struct wlr_box geom; /* layout-relative, includes border */
|
struct wlr_box geom; /* layout-relative, includes border */
|
||||||
Monitor *mon;
|
Monitor *mon;
|
||||||
|
@ -288,6 +289,7 @@ static void unmaplayersurface(LayerSurface *layersurface);
|
||||||
static void unmaplayersurfacenotify(struct wl_listener *listener, void *data);
|
static void unmaplayersurfacenotify(struct wl_listener *listener, void *data);
|
||||||
static void unmapnotify(struct wl_listener *listener, void *data);
|
static void unmapnotify(struct wl_listener *listener, void *data);
|
||||||
static void updatemons(struct wl_listener *listener, void *data);
|
static void updatemons(struct wl_listener *listener, void *data);
|
||||||
|
static void updatetitle(struct wl_listener *listener, void *data);
|
||||||
static void view(const Arg *arg);
|
static void view(const Arg *arg);
|
||||||
static void virtualkeyboard(struct wl_listener *listener, void *data);
|
static void virtualkeyboard(struct wl_listener *listener, void *data);
|
||||||
static Client *xytoclient(double x, double y);
|
static Client *xytoclient(double x, double y);
|
||||||
|
@ -891,6 +893,7 @@ createnotify(struct wl_listener *listener, void *data)
|
||||||
LISTEN(&xdg_surface->events.map, &c->map, mapnotify);
|
LISTEN(&xdg_surface->events.map, &c->map, mapnotify);
|
||||||
LISTEN(&xdg_surface->events.unmap, &c->unmap, unmapnotify);
|
LISTEN(&xdg_surface->events.unmap, &c->unmap, unmapnotify);
|
||||||
LISTEN(&xdg_surface->events.destroy, &c->destroy, destroynotify);
|
LISTEN(&xdg_surface->events.destroy, &c->destroy, destroynotify);
|
||||||
|
LISTEN(&xdg_surface->toplevel->events.set_title, &c->set_title, updatetitle);
|
||||||
LISTEN(&xdg_surface->toplevel->events.request_fullscreen, &c->fullscreen,
|
LISTEN(&xdg_surface->toplevel->events.request_fullscreen, &c->fullscreen,
|
||||||
fullscreennotify);
|
fullscreennotify);
|
||||||
c->isfullscreen = 0;
|
c->isfullscreen = 0;
|
||||||
|
@ -994,6 +997,7 @@ destroynotify(struct wl_listener *listener, void *data)
|
||||||
wl_list_remove(&c->map.link);
|
wl_list_remove(&c->map.link);
|
||||||
wl_list_remove(&c->unmap.link);
|
wl_list_remove(&c->unmap.link);
|
||||||
wl_list_remove(&c->destroy.link);
|
wl_list_remove(&c->destroy.link);
|
||||||
|
wl_list_remove(&c->set_title.link);
|
||||||
wl_list_remove(&c->fullscreen.link);
|
wl_list_remove(&c->fullscreen.link);
|
||||||
#ifdef XWAYLAND
|
#ifdef XWAYLAND
|
||||||
if (c->type == X11Managed)
|
if (c->type == X11Managed)
|
||||||
|
@ -2298,6 +2302,14 @@ updatemons(struct wl_listener *listener, void *data)
|
||||||
wlr_output_manager_v1_set_configuration(output_mgr, config);
|
wlr_output_manager_v1_set_configuration(output_mgr, config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
updatetitle(struct wl_listener *listener, void *data)
|
||||||
|
{
|
||||||
|
Client *c = wl_container_of(listener, c, set_title);
|
||||||
|
if (c == focustop(c->mon))
|
||||||
|
printstatus();
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
view(const Arg *arg)
|
view(const Arg *arg)
|
||||||
{
|
{
|
||||||
|
@ -2434,6 +2446,7 @@ createnotifyx11(struct wl_listener *listener, void *data)
|
||||||
activatex11);
|
activatex11);
|
||||||
LISTEN(&xwayland_surface->events.request_configure, &c->configure,
|
LISTEN(&xwayland_surface->events.request_configure, &c->configure,
|
||||||
configurex11);
|
configurex11);
|
||||||
|
LISTEN(&xwayland_surface->events.set_title, &c->set_title, updatetitle);
|
||||||
LISTEN(&xwayland_surface->events.destroy, &c->destroy, destroynotify);
|
LISTEN(&xwayland_surface->events.destroy, &c->destroy, destroynotify);
|
||||||
LISTEN(&xwayland_surface->events.request_fullscreen, &c->fullscreen,
|
LISTEN(&xwayland_surface->events.request_fullscreen, &c->fullscreen,
|
||||||
fullscreennotify);
|
fullscreennotify);
|
||||||
|
|
Loading…
Reference in New Issue