Fix input offsets
This commit is contained in:
+5
-6
@@ -432,12 +432,11 @@ fn main() {
|
||||
app.flush_display();
|
||||
}
|
||||
Cmd::Input { pos, input } => {
|
||||
if pos.0 >= 20 || pos.1 >= 20 {
|
||||
// We need to deal with our margin.
|
||||
if let Some(m) = app.get_module(pos) {
|
||||
m.input(input);
|
||||
q.lock().unwrap().push_back(Cmd::Draw);
|
||||
}
|
||||
if let Some(m) = app.get_module(pos) {
|
||||
let bounds = m.get_bounds();
|
||||
let input = input.offset((bounds.0, bounds.1));
|
||||
m.input(input);
|
||||
q.lock().unwrap().push_back(Cmd::Draw);
|
||||
}
|
||||
}
|
||||
Cmd::Exit => {
|
||||
|
||||
@@ -10,6 +10,15 @@ pub enum Input {
|
||||
Scroll { pos: (u32, u32), x: f64, y: f64 },
|
||||
}
|
||||
|
||||
impl Input {
|
||||
pub fn offset(&self, offset: (u32, u32)) -> Input{
|
||||
match self {
|
||||
Input::Click{pos, button} => Input::Click{pos: (pos.0 - offset.0, pos.1 - offset.1), button: *button},
|
||||
Input::Scroll{pos, x, y} => Input::Scroll{pos: (pos.0 - offset.0, pos.1 - offset.1), x: *x, y: *y},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub trait ModuleImpl {
|
||||
fn draw(
|
||||
&self,
|
||||
|
||||
Reference in New Issue
Block a user