From 3eeb4eca2c8b7a02bd64cd52f49d4c161e09eb1a Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Mon, 20 Apr 2020 10:54:57 +0200 Subject: [PATCH] Resize windows based on cursor position rather than movement --- emigui/src/window.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/emigui/src/window.rs b/emigui/src/window.rs index 2458dab2..158e3016 100644 --- a/emigui/src/window.rs +++ b/emigui/src/window.rs @@ -163,9 +163,11 @@ impl Window { let win_interact = ctx.interact(layer, state.rect, Some(id.with(&"window"))); if corner_interact.active { - let new_size = state.rect.size() + ctx.input().mouse_move; - let new_size = new_size.max(Vec2::splat(0.0)); - state.rect = Rect::from_min_size(state.rect.min(), new_size); + if let Some(mouse_pos) = ctx.input().mouse_pos { + let new_size = mouse_pos - state.rect.min() + 0.5 * corner_interact.rect.size(); + let new_size = new_size.max(Vec2::splat(0.0)); + state.rect = Rect::from_min_size(state.rect.min(), new_size); + } } else if win_interact.active { state.rect = state.rect.translate(ctx.input().mouse_move); }