From b19eeea8cf09c9eeb97ff09ffbca1e23ab490d31 Mon Sep 17 00:00:00 2001 From: Tad Hardesty Date: Sat, 16 Nov 2019 09:53:37 -0800 Subject: [PATCH] Fix mouse clicked vs. pressed checks --- src/editor/main.rs | 14 +++++++------- src/editor/tools/place.rs | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/editor/main.rs b/src/editor/main.rs index 216ac791..b31baafb 100644 --- a/src/editor/main.rs +++ b/src/editor/main.rs @@ -731,8 +731,8 @@ impl EditorScene { Image::new(tex, [THUMBNAIL_SIZE as f32, THUMBNAIL_SIZE as f32]) .border_col(ui.frame_color(is_current)) .build(ui); - clicked = ui.is_item_hovered() && ui.io()[MouseButton::Left]; - if clicked || (is_current && ui.is_item_hovered() && ui.io()[MouseButton::Left]) { + clicked = ui.is_item_hovered() && ui.is_mouse_clicked(MouseButton::Left); + if clicked || (is_current && ui.is_item_hovered() && ui.is_mouse_down(MouseButton::Left)) { let pos = ui.io().mouse_pos; map.center = [ (pos[0] - start[0] - 1.0) * 32.0 * dims.0 as f32 / THUMBNAIL_SIZE as f32, @@ -763,7 +763,7 @@ impl EditorScene { }); if !ui.io().want_capture_mouse { - if ui.io()[MouseButton::Left] { + if ui.is_mouse_clicked(MouseButton::Left) { if let Some(env) = self.environment.as_ref() { if let Some(map) = self.maps.get_mut(self.map_current) { let z = map.z_current as u32; @@ -777,19 +777,19 @@ impl EditorScene { } } } - if ui.io()[MouseButton::Right] { + if ui.is_mouse_clicked(MouseButton::Right) { if let Some(tile) = self.target_tile { self.context_tile = Some(tile); ui.open_popup(im_str!("context")); } } - if ui.io()[MouseButton::Middle] && self.mouse_drag_pos.is_none() { + if ui.is_mouse_down(MouseButton::Middle) && self.mouse_drag_pos.is_none() { self.mouse_drag_pos = Some(self.last_mouse_pos); } } - if !ui.io()[MouseButton::Middle] && self.mouse_drag_pos.is_some() { + if !ui.is_mouse_down(MouseButton::Middle) && self.mouse_drag_pos.is_some() { self.mouse_drag_pos = None; } @@ -1670,7 +1670,7 @@ impl<'a> UiExt for Ui<'a> { .border_col(self.frame_color(active)) .tint_col(tint.unwrap_or(self.style_color(StyleColor::Text))) .build(self); - self.is_item_hovered() && self.io()[MouseButton::Left] + self.is_item_hovered() && self.is_mouse_clicked(MouseButton::Left) } else { self.button(fallback, [34.0, 34.0]) } diff --git a/src/editor/tools/place.rs b/src/editor/tools/place.rs index d9ec98f8..3e5ebae8 100644 --- a/src/editor/tools/place.rs +++ b/src/editor/tools/place.rs @@ -43,9 +43,9 @@ impl ToolBehavior for Place { ); if ui.is_item_hovered() { ui.tooltip_text(im_str!("{:#}", pal.fab)); - if ui.io()[MouseButton::Left] { + if ui.is_mouse_clicked(MouseButton::Left) { *pal_current = i; - } else if ui.io()[MouseButton::Right] { + } else if ui.is_mouse_clicked(MouseButton::Right) { if pal.edit.is_none() { pal.edit = Some(EditPrefab::new(pal.fab.clone())); }