~ruther/dwl

cad233b6057d282deb93fbf3e1b56091a38d1747 — Devin J. Pohly 4 years ago 5817c91
initialize global listeners statically
1 files changed, 12 insertions(+), 20 deletions(-)

M dwl.c
M dwl.c => dwl.c +12 -20
@@ 192,22 192,14 @@ static struct wlr_backend *backend;
static struct wlr_renderer *drw;

static struct wlr_xdg_shell *xdg_shell;
static struct wl_listener new_xdg_surface;
static struct wl_list clients; /* tiling order */
static struct wl_list fstack;  /* focus order */
static struct wl_list stack;   /* stacking z-order */

static struct wlr_cursor *cursor;
static struct wlr_xcursor_manager *cursor_mgr;
static struct wl_listener cursor_motion;
static struct wl_listener cursor_motion_absolute;
static struct wl_listener cursor_button;
static struct wl_listener cursor_axis;
static struct wl_listener cursor_frame;

static struct wlr_seat *seat;
static struct wl_listener new_input;
static struct wl_listener request_cursor;
static struct wl_list keyboards;
static unsigned int cursor_mode;
static Client *grabc;


@@ 216,9 208,19 @@ static int grabcx, grabcy; /* client-relative */
static struct wlr_output_layout *output_layout;
static struct wlr_box sgeom;
static struct wl_list mons;
static struct wl_listener new_output;
static Monitor *selmon;

/* global event handlers */
static struct wl_listener cursor_axis = {.notify = axisnotify};
static struct wl_listener cursor_button = {.notify = buttonpress};
static struct wl_listener cursor_frame = {.notify = cursorframe};
static struct wl_listener cursor_motion = {.notify = motionrelative};
static struct wl_listener cursor_motion_absolute = {.notify = motionabsolute};
static struct wl_listener new_input = {.notify = inputdevice};
static struct wl_listener new_output = {.notify = createmon};
static struct wl_listener new_xdg_surface = {.notify = createnotify};
static struct wl_listener request_cursor = {.notify = setcursor};

/* configuration, allows nested code to access above variables */
#include "config.h"



@@ 1200,7 1202,6 @@ setup(void)
	/* Configure a listener to be notified when new outputs are available on the
	 * backend. */
	wl_list_init(&mons);
	new_output.notify = createmon;
	wl_signal_add(&backend->events.new_output, &new_output);

	/* Set up our client lists and the xdg-shell. The xdg-shell is a


@@ 1213,9 1214,7 @@ setup(void)
	wl_list_init(&fstack);
	wl_list_init(&stack);
	xdg_shell = wlr_xdg_shell_create(dpy);
	new_xdg_surface.notify = createnotify;
	wl_signal_add(&xdg_shell->events.new_surface,
			&new_xdg_surface);
	wl_signal_add(&xdg_shell->events.new_surface, &new_xdg_surface);

	/*
	 * Creates a cursor, which is a wlroots utility for tracking the cursor


@@ 1242,16 1241,11 @@ setup(void)
	 *
	 * And more comments are sprinkled throughout the notify functions above.
	 */
	cursor_motion.notify = motionrelative;
	wl_signal_add(&cursor->events.motion, &cursor_motion);
	cursor_motion_absolute.notify = motionabsolute;
	wl_signal_add(&cursor->events.motion_absolute,
			&cursor_motion_absolute);
	cursor_button.notify = buttonpress;
	wl_signal_add(&cursor->events.button, &cursor_button);
	cursor_axis.notify = axisnotify;
	wl_signal_add(&cursor->events.axis, &cursor_axis);
	cursor_frame.notify = cursorframe;
	wl_signal_add(&cursor->events.frame, &cursor_frame);

	/*


@@ 1261,10 1255,8 @@ setup(void)
	 * let us know when new input devices are available on the backend.
	 */
	wl_list_init(&keyboards);
	new_input.notify = inputdevice;
	wl_signal_add(&backend->events.new_input, &new_input);
	seat = wlr_seat_create(dpy, "seat0");
	request_cursor.notify = setcursor;
	wl_signal_add(&seat->events.request_set_cursor,
			&request_cursor);
}

Do not follow this link