grab with realign
This commit is contained in:
@@ -12,7 +12,7 @@ use std::{
|
||||
use crate::{
|
||||
backend::overlay::{OverlayData, OverlayState},
|
||||
gui::{color_parse, CanvasBuilder, Control},
|
||||
input::{KeyModifier, VirtualKey, KEYS_TO_MODS},
|
||||
hid::{KeyModifier, VirtualKey, KEYS_TO_MODS},
|
||||
state::AppState,
|
||||
};
|
||||
use glam::{vec2, vec3a};
|
||||
@@ -129,7 +129,7 @@ fn key_press(
|
||||
match control.state.as_mut() {
|
||||
Some(KeyButtonData::Key { vk, pressed }) => {
|
||||
data.key_click();
|
||||
app.input.send_key(*vk as _, true);
|
||||
app.hid_provider.send_key(*vk as _, true);
|
||||
*pressed = true;
|
||||
}
|
||||
Some(KeyButtonData::Modifier {
|
||||
@@ -140,13 +140,13 @@ fn key_press(
|
||||
*sticky = data.modifiers & *modifier == 0;
|
||||
data.modifiers |= *modifier;
|
||||
data.key_click();
|
||||
app.input.set_modifiers(data.modifiers);
|
||||
app.hid_provider.set_modifiers(data.modifiers);
|
||||
*pressed = true;
|
||||
}
|
||||
Some(KeyButtonData::Macro { verbs }) => {
|
||||
data.key_click();
|
||||
for (vk, press) in verbs {
|
||||
app.input.send_key(*vk as _, *press);
|
||||
app.hid_provider.send_key(*vk as _, *press);
|
||||
}
|
||||
}
|
||||
Some(KeyButtonData::Exec { program, args }) => {
|
||||
@@ -170,7 +170,7 @@ fn key_release(
|
||||
) {
|
||||
match control.state.as_mut() {
|
||||
Some(KeyButtonData::Key { vk, pressed }) => {
|
||||
app.input.send_key(*vk as _, false);
|
||||
app.hid_provider.send_key(*vk as _, false);
|
||||
*pressed = false;
|
||||
}
|
||||
Some(KeyButtonData::Modifier {
|
||||
@@ -180,7 +180,7 @@ fn key_release(
|
||||
}) => {
|
||||
if !*sticky {
|
||||
data.modifiers &= !*modifier;
|
||||
app.input.set_modifiers(data.modifiers);
|
||||
app.hid_provider.set_modifiers(data.modifiers);
|
||||
*pressed = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ use crate::{
|
||||
overlay::{OverlayData, OverlayRenderer, OverlayState, SplitOverlayBackend},
|
||||
},
|
||||
graphics::{Vert2Uv, WlxGraphics, WlxPipeline},
|
||||
input::{MOUSE_LEFT, MOUSE_MIDDLE, MOUSE_RIGHT},
|
||||
hid::{MOUSE_LEFT, MOUSE_MIDDLE, MOUSE_RIGHT},
|
||||
shaders::{frag_sprite, vert_common},
|
||||
state::{AppSession, AppState},
|
||||
};
|
||||
@@ -76,12 +76,12 @@ impl InteractionHandler for ScreenInteractionHandler {
|
||||
log::trace!("Hover: {:?}", hit.uv);
|
||||
if self.next_move < Instant::now() {
|
||||
let pos = self.mouse_transform.transform_point2(hit.uv);
|
||||
app.input.mouse_move(pos);
|
||||
app.hid_provider.mouse_move(pos);
|
||||
}
|
||||
}
|
||||
fn on_pointer(&mut self, app: &mut AppState, hit: &PointerHit, pressed: bool) {
|
||||
let pos = self.mouse_transform.transform_point2(hit.uv);
|
||||
app.input.mouse_move(pos);
|
||||
app.hid_provider.mouse_move(pos);
|
||||
|
||||
let btn = match hit.mode {
|
||||
PointerMode::Right => MOUSE_RIGHT,
|
||||
@@ -94,14 +94,14 @@ impl InteractionHandler for ScreenInteractionHandler {
|
||||
Instant::now() + Duration::from_millis(app.session.click_freeze_time_ms);
|
||||
}
|
||||
|
||||
app.input.send_button(btn, pressed);
|
||||
app.hid_provider.send_button(btn, pressed);
|
||||
}
|
||||
fn on_scroll(&mut self, app: &mut AppState, _hit: &PointerHit, delta: f32) {
|
||||
let millis = (1. - delta.abs()) * delta;
|
||||
if let Some(next_scroll) = Instant::now().checked_add(Duration::from_millis(millis as _)) {
|
||||
self.next_scroll = next_scroll;
|
||||
}
|
||||
app.input.wheel(if delta < 0. { -1 } else { 1 })
|
||||
app.hid_provider.wheel(if delta < 0. { -1 } else { 1 })
|
||||
}
|
||||
fn on_left(&mut self, _app: &mut AppState, _hand: usize) {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user