~ruther/dwl

779efe1cf99a35c8c0260f190194e6118dc4d066 — Rutherther 11 months ago 848a674 v0.7/keycodes-modes
Fix modes code to support keycodes patch
2 files changed, 11 insertions(+), 10 deletions(-)

M config.def.h
M dwl.c
M config.def.h => config.def.h +7 -7
@@ 181,13 181,13 @@ static const Key keys[] = {

static const Modekey modekeys[] = {
	/* mode      modifier                  key                 function        argument */
	{ BROWSER, { 0, XKB_KEY_f, spawn, SHCMD("firefox") } },
	{ BROWSER, { 0, XKB_KEY_f, entermode, {.i = NORMAL} } },
	{ BROWSER, { 0, XKB_KEY_b, spawn, SHCMD("brave") } },
	{ BROWSER, { 0, XKB_KEY_b, entermode, {.i = NORMAL} } },
	{ BROWSER, { 0, XKB_KEY_g, spawn, SHCMD("google-chrome-stable") } },
	{ BROWSER, { 0, XKB_KEY_g, entermode, {.i = NORMAL} } },
	{ BROWSER, { 0, XKB_KEY_Escape, entermode, {.i = NORMAL} } },
	{ BROWSER, { 0, Key_f, spawn, SHCMD("firefox") } },
	{ BROWSER, { 0, Key_f, entermode, {.i = NORMAL} } },
	{ BROWSER, { 0, Key_b, spawn, SHCMD("brave") } },
	{ BROWSER, { 0, Key_b, entermode, {.i = NORMAL} } },
	{ BROWSER, { 0, Key_g, spawn, SHCMD("google-chrome-stable") } },
	{ BROWSER, { 0, Key_g, entermode, {.i = NORMAL} } },
	{ BROWSER, { 0, Key_Escape, entermode, {.i = NORMAL} } },
};

static const Button buttons[] = {

M dwl.c => dwl.c +4 -3
@@ 300,6 300,7 @@ static void incnmaster(const Arg *arg);
static void inputdevice(struct wl_listener *listener, void *data);
static int keybinding(uint32_t mods, xkb_keycode_t keycode);
static int modekeybinding(uint32_t mods, xkb_keysym_t sym);
static int modekeybinding(uint32_t mods, xkb_keycode_t sym);
static void keypress(struct wl_listener *listener, void *data);
static void keypressmod(struct wl_listener *listener, void *data);
static int keyrepeat(void *data);


@@ 1573,7 1574,7 @@ keybinding(uint32_t mods, xkb_keycode_t keycode)
	const Key *k;

	if (active_mode_index >= 0) {
		return modekeybinding(mods, sym);
		return modekeybinding(mods, keycode);
	}

	for (k = keys; k < END(keys); k++) {


@@ 1587,7 1588,7 @@ keybinding(uint32_t mods, xkb_keycode_t keycode)
}

int
modekeybinding(uint32_t mods, xkb_keysym_t sym)
modekeybinding(uint32_t mods, xkb_keycode_t keycode)
{
	int handled = 0;
	const Modekey *mk;


@@ 1600,7 1601,7 @@ modekeybinding(uint32_t mods, xkb_keysym_t sym)

		k = &mk->key;
		if (CLEANMASK(mods) == CLEANMASK(k->mod) &&
				sym == k->keysym && k->func) {
				keycode == k->keycode && k->func) {
			k->func(&k->arg);
			handled = 1;
		}

Do not follow this link