feat: add bing flag p
This commit is contained in:
@@ -43,6 +43,7 @@ typedef struct {
|
||||
bool isdefaultmode;
|
||||
bool islockapply;
|
||||
bool isreleaseapply;
|
||||
bool ispassapply;
|
||||
} KeyBinding;
|
||||
|
||||
typedef struct {
|
||||
@@ -443,6 +444,9 @@ void parse_bind_flags(const char *str, KeyBinding *kb) {
|
||||
case 'r':
|
||||
kb->isreleaseapply = true;
|
||||
break;
|
||||
case 'p':
|
||||
kb->ispassapply = true;
|
||||
break;
|
||||
default:
|
||||
// 忽略其他字符或可根据需要处理错误
|
||||
break;
|
||||
@@ -1956,7 +1960,7 @@ void parse_option(Config *config, char *key, char *value) {
|
||||
|
||||
config->exec_once_count++;
|
||||
|
||||
} else if (regex_match("^bind[s|l|r]*$", key)) {
|
||||
} else if (regex_match("^bind[s|l|r|p]*$", key)) {
|
||||
config->key_bindings =
|
||||
realloc(config->key_bindings,
|
||||
(config->key_bindings_count + 1) * sizeof(KeyBinding));
|
||||
|
||||
@@ -3434,7 +3434,11 @@ keybinding(uint32_t state, bool locked, uint32_t mods, xkb_keysym_t sym,
|
||||
k->func) {
|
||||
|
||||
isbreak = k->func(&k->arg);
|
||||
handled = 1;
|
||||
|
||||
if (!k->ispassapply)
|
||||
handled = 1;
|
||||
else
|
||||
handled = 0;
|
||||
|
||||
if (isbreak)
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user