wayland: remove selection_override_modmask member

This member is no longer valid - we need to use one from the current
key-binding set.
This commit is contained in:
Daniel Eklöf 2022-04-19 17:24:25 +02:00
parent e3683b58fc
commit 876044df8d
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 25 additions and 3 deletions

View file

@ -13,6 +13,7 @@
#include "async.h"
#include "config.h"
#include "key-binding.h"
#include "reaper.h"
#include "sixel.h"
#include "user-notification.h"
@ -170,6 +171,27 @@ void get_current_modifiers(const struct seat *seat,
xkb_mod_mask_t *effective,
xkb_mod_mask_t *consumed, uint32_t key) {}
static struct key_binding_set kbd;
static bool kbd_initialized = false;
struct key_binding_set *
key_binding_for(
struct key_binding_manager *mgr, const struct terminal *term,
const struct seat *seat)
{
if (!kbd_initialized) {
kbd_initialized = true;
kbd = (struct key_binding_set){
.key = tll_init(),
.search = tll_init(),
.url = tll_init(),
.mouse = tll_init(),
.selection_overrides = 0,
};
}
return &kbd;
}
int
main(int argc, const char *const *argv)

View file

@ -2859,7 +2859,9 @@ term_mouse_grabbed(const struct terminal *term, const struct seat *seat)
xkb_mod_mask_t mods;
get_current_modifiers(seat, &mods, NULL, 0);
const xkb_mod_mask_t override_modmask = seat->kbd.selection_override_modmask;
const struct key_binding_set *bindings =
key_binding_for(term->wl->key_binding_manager, term, seat);
const xkb_mod_mask_t override_modmask = bindings->selection_overrides;
bool override_mods_pressed = (mods & override_modmask) == override_modmask;
return term->mouse_tracking == MOUSE_NONE ||

View file

@ -111,8 +111,6 @@ struct seat {
xkb_mod_mask_t bind_significant;
xkb_mod_mask_t kitty_significant;
xkb_mod_mask_t selection_override_modmask;
xkb_keycode_t key_arrow_up;
xkb_keycode_t key_arrow_down;