move wlr dependent input handler to sway

Moves input handling code that uses headers from wlroots from the common
code to sway proper, to allow for removing the wlroots dependency from
clients
This commit is contained in:
Markus Ongyerth 2018-05-24 21:52:35 +02:00
parent c7c1cf31f7
commit acae6ad40f
6 changed files with 77 additions and 76 deletions

View file

@ -9,7 +9,6 @@
#include <string.h>
#include <strings.h>
#include <xkbcommon/xkbcommon-names.h>
#include <wlr/types/wlr_keyboard.h>
#include "log.h"
#include "readline.h"
#include "util.h"
@ -25,58 +24,6 @@ int numlen(int n) {
return log10(n) + 1;
}
static struct modifier_key {
char *name;
uint32_t mod;
} modifiers[] = {
{ XKB_MOD_NAME_SHIFT, WLR_MODIFIER_SHIFT },
{ XKB_MOD_NAME_CAPS, WLR_MODIFIER_CAPS },
{ XKB_MOD_NAME_CTRL, WLR_MODIFIER_CTRL },
{ "Ctrl", WLR_MODIFIER_CTRL },
{ XKB_MOD_NAME_ALT, WLR_MODIFIER_ALT },
{ "Alt", WLR_MODIFIER_ALT },
{ XKB_MOD_NAME_NUM, WLR_MODIFIER_MOD2 },
{ "Mod3", WLR_MODIFIER_MOD3 },
{ XKB_MOD_NAME_LOGO, WLR_MODIFIER_LOGO },
{ "Mod5", WLR_MODIFIER_MOD5 },
};
uint32_t get_modifier_mask_by_name(const char *name) {
int i;
for (i = 0; i < (int)(sizeof(modifiers) / sizeof(struct modifier_key)); ++i) {
if (strcasecmp(modifiers[i].name, name) == 0) {
return modifiers[i].mod;
}
}
return 0;
}
const char *get_modifier_name_by_mask(uint32_t modifier) {
int i;
for (i = 0; i < (int)(sizeof(modifiers) / sizeof(struct modifier_key)); ++i) {
if (modifiers[i].mod == modifier) {
return modifiers[i].name;
}
}
return NULL;
}
int get_modifier_names(const char **names, uint32_t modifier_masks) {
int length = 0;
int i;
for (i = 0; i < (int)(sizeof(modifiers) / sizeof(struct modifier_key)); ++i) {
if ((modifier_masks & modifiers[i].mod) != 0) {
names[length] = modifiers[i].name;
++length;
modifier_masks ^= modifiers[i].mod;
}
}
return length;
}
pid_t get_parent_pid(pid_t child) {
pid_t parent = -1;
char file_name[100];