diff options
Diffstat (limited to 'src/config.rs')
-rw-r--r-- | src/config.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/config.rs b/src/config.rs index 2e746623..0c774f37 100644 --- a/src/config.rs +++ b/src/config.rs @@ -106,6 +106,17 @@ pub struct Url { pub modifiers: ModifiersState, } +impl Url { + // Make sure that modifiers in the config are always present, + // but ignore surplus modifiers. + pub fn mods_match_relaxed(&self, mods: ModifiersState) -> bool { + !((self.modifiers.shift && !mods.shift) + || (self.modifiers.ctrl && !mods.ctrl) + || (self.modifiers.alt && !mods.alt) + || (self.modifiers.logo && !mods.logo)) + } +} + fn deserialize_modifiers<'a, D>(deserializer: D) -> ::std::result::Result<ModifiersState, D::Error> where D: de::Deserializer<'a> { |