summaryrefslogtreecommitdiffstats
path: root/sway/input/input-manager.c
diff options
context:
space:
mode:
authorLibravatar Brian Ashworth <bosrsf04@gmail.com>2018-09-23 19:56:52 -0400
committerLibravatar Brian Ashworth <bosrsf04@gmail.com>2018-09-23 19:56:52 -0400
commitbaeb28ea6230ef9aa409ee52abe208720120e45c (patch)
treed5a6fffc3470b3fbbb18a6ae01851451bea1dbb2 /sway/input/input-manager.c
parentMerge pull request #2699 from RedSoxFan/fix-2667 (diff)
downloadsway-baeb28ea6230ef9aa409ee52abe208720120e45c.tar.gz
sway-baeb28ea6230ef9aa409ee52abe208720120e45c.tar.zst
sway-baeb28ea6230ef9aa409ee52abe208720120e45c.zip
Implement support for input wildcard
Diffstat (limited to 'sway/input/input-manager.c')
-rw-r--r--sway/input/input-manager.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sway/input/input-manager.c b/sway/input/input-manager.c
index b4352c6a..f696646f 100644
--- a/sway/input/input-manager.c
+++ b/sway/input/input-manager.c
@@ -389,8 +389,10 @@ void input_manager_set_focus(struct sway_input_manager *input,
389void input_manager_apply_input_config(struct sway_input_manager *input, 389void input_manager_apply_input_config(struct sway_input_manager *input,
390 struct input_config *input_config) { 390 struct input_config *input_config) {
391 struct sway_input_device *input_device = NULL; 391 struct sway_input_device *input_device = NULL;
392 bool wildcard = strcmp(input_config->identifier, "*") == 0;
392 wl_list_for_each(input_device, &input->devices, link) { 393 wl_list_for_each(input_device, &input->devices, link) {
393 if (strcmp(input_device->identifier, input_config->identifier) == 0) { 394 if (strcmp(input_device->identifier, input_config->identifier) == 0
395 || wildcard) {
394 if (input_device->wlr_device->type == WLR_INPUT_DEVICE_POINTER) { 396 if (input_device->wlr_device->type == WLR_INPUT_DEVICE_POINTER) {
395 input_manager_libinput_config_pointer(input_device); 397 input_manager_libinput_config_pointer(input_device);
396 } 398 }
@@ -480,13 +482,16 @@ struct sway_seat *input_manager_get_default_seat(
480} 482}
481 483
482struct input_config *input_device_get_config(struct sway_input_device *device) { 484struct input_config *input_device_get_config(struct sway_input_device *device) {
485 struct input_config *wildcard_config = NULL;
483 struct input_config *input_config = NULL; 486 struct input_config *input_config = NULL;
484 for (int i = 0; i < config->input_configs->length; ++i) { 487 for (int i = 0; i < config->input_configs->length; ++i) {
485 input_config = config->input_configs->items[i]; 488 input_config = config->input_configs->items[i];
486 if (strcmp(input_config->identifier, device->identifier) == 0) { 489 if (strcmp(input_config->identifier, device->identifier) == 0) {
487 return input_config; 490 return input_config;
491 } else if (strcmp(input_config->identifier, "*") == 0) {
492 wildcard_config = input_config;
488 } 493 }
489 } 494 }
490 495
491 return NULL; 496 return wildcard_config;
492} 497}