feat: modifier key
This commit is contained in:
parent
28c11801f3
commit
26e77ba2c3
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -4914,7 +4914,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "rdev"
|
||||
version = "0.5.0-2"
|
||||
source = "git+https://github.com/mcfans/rdev#d643ea4542e61931cb20e1ecd390d6a3c9569171"
|
||||
source = "git+https://github.com/mcfans/rdev#97f63d5bc51bb2387d3f2664d3127640e492c9e5"
|
||||
dependencies = [
|
||||
"cocoa",
|
||||
"core-foundation",
|
||||
|
@ -9,8 +9,6 @@ object KeyEventConverter {
|
||||
var chrValue = 0
|
||||
var modifiers = 0
|
||||
|
||||
android.util.Log.d(tag, "proto: $keyEventProto")
|
||||
|
||||
val keyboardMode = keyEventProto.getMode()
|
||||
|
||||
if (keyEventProto.hasChr()) {
|
||||
@ -28,12 +26,10 @@ object KeyEventConverter {
|
||||
if (modifiersList != null) {
|
||||
for (modifier in keyEventProto.getModifiersList()) {
|
||||
val modifierValue = convertModifier(modifier)
|
||||
modifiers = modifiers and modifierValue
|
||||
modifiers = modifiers or modifierValue
|
||||
}
|
||||
}
|
||||
|
||||
android.util.Log.d(tag, "modifiers: $modifiersList")
|
||||
|
||||
var action = 0
|
||||
if (keyEventProto.getDown()) {
|
||||
action = KeyEvent.ACTION_DOWN
|
||||
|
@ -1072,6 +1072,8 @@ pub fn keycode_to_rdev_key(keycode: u32) -> Key {
|
||||
return rdev::win_key_from_scancode(keycode);
|
||||
#[cfg(any(target_os = "linux"))]
|
||||
return rdev::linux_key_from_code(keycode);
|
||||
#[cfg(any(target_os = "android"))]
|
||||
return rdev::android_key_from_code(keycode);
|
||||
#[cfg(target_os = "macos")]
|
||||
return rdev::macos_key_from_code(keycode.try_into().unwrap_or_default());
|
||||
}
|
||||
|
@ -1728,11 +1728,7 @@ impl Connection {
|
||||
Some(message::Union::KeyEvent(..)) => {}
|
||||
#[cfg(any(target_os = "android"))]
|
||||
Some(message::Union::KeyEvent(mut me)) => {
|
||||
let is_press = if cfg!(target_os = "linux") {
|
||||
(me.press || me.down) && !crate::is_modifier(&me)
|
||||
} else {
|
||||
me.press
|
||||
};
|
||||
let is_press = (me.press || me.down) && !crate::is_modifier(&me);
|
||||
|
||||
let key = match me.mode.enum_value() {
|
||||
Ok(KeyboardMode::Map) => {
|
||||
@ -1748,7 +1744,6 @@ impl Connection {
|
||||
_ => None,
|
||||
}
|
||||
.filter(crate::keyboard::is_modifier);
|
||||
log::debug!("key:{:?}", key);
|
||||
|
||||
if let Some(key) = key {
|
||||
if is_press {
|
||||
|
Loading…
x
Reference in New Issue
Block a user