diff options
author | okan | 2011-03-22 10:47:59 +0000 |
---|---|---|
committer | okan | 2011-03-22 10:47:59 +0000 |
commit | ebcb441521708792051913bc8ce6b0891b402d77 (patch) | |
tree | 5658830b9a0c10d63979c3e41781a57d65805bef /input.c | |
parent | 12e2dbd7e638ae41941668d15dbcebd11dee3e76 (diff) | |
download | cwm-ebcb441521708792051913bc8ce6b0891b402d77.tar.gz |
move the single keycode function directly into the menu code.
ok oga@
Diffstat (limited to '')
-rw-r--r-- | input.c | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/input.c b/input.c deleted file mode 100644 index 164a09b..0000000 --- a/input.c +++ /dev/null @@ -1,117 +0,0 @@ -/* - * calmwm - the calm window manager - * - * Copyright (c) 2004 Marius Aamodt Eriksen <marius@monkey.org> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $Id: input.c,v 1.10 2009/12/15 04:10:42 okan Exp $ - */ - -#include <sys/param.h> -#include <sys/queue.h> - -#include <err.h> -#include <errno.h> -#include <stdlib.h> -#include <string.h> -#include <stdio.h> -#include <unistd.h> - -#include "calmwm.h" - -int -input_keycodetrans(KeyCode kc, u_int state, enum ctltype *ctl, char *chr) -{ - int ks; - - *ctl = CTL_NONE; - *chr = '\0'; - - ks = XKeycodeToKeysym(X_Dpy, kc, (state & ShiftMask) ? 1 : 0); - - /* Look for control characters. */ - switch (ks) { - case XK_BackSpace: - *ctl = CTL_ERASEONE; - break; - case XK_Return: - *ctl = CTL_RETURN; - break; - case XK_Up: - *ctl = CTL_UP; - break; - case XK_Down: - *ctl = CTL_DOWN; - break; - case XK_Escape: - *ctl = CTL_ABORT; - break; - } - - if (*ctl == CTL_NONE && (state & ControlMask)) { - switch (ks) { - case XK_s: - case XK_S: - /* Emacs "next" */ - *ctl = CTL_DOWN; - break; - case XK_r: - case XK_R: - /* Emacs "previous" */ - *ctl = CTL_UP; - break; - case XK_u: - case XK_U: - *ctl = CTL_WIPE; - break; - case XK_h: - case XK_H: - *ctl = CTL_ERASEONE; - break; - case XK_a: - case XK_A: - *ctl = CTL_ALL; - break; - } - } - - if (*ctl == CTL_NONE && (state & Mod1Mask)) { - switch (ks) { - case XK_j: - case XK_J: - /* Vi "down" */ - *ctl = CTL_DOWN; - break; - case XK_k: - case XK_K: - /* Vi "up" */ - *ctl = CTL_UP; - break; - } - } - - if (*ctl != CTL_NONE) - return (0); - - /* - * For regular characters, only (part of, actually) Latin 1 - * for now. - */ - if (ks < 0x20 || ks > 0x07e) - return (-1); - - *chr = (char)ks; - - return (0); -} |