Browse Source

Fix: resize handle positioning

readable-ids
Emil Ernerfeldt 5 years ago
parent
commit
45016ebf53
  1. 9
      emigui/src/containers/resize.rs

9
emigui/src/containers/resize.rs

@ -166,7 +166,8 @@ impl Resize {
if let Some(mouse_pos) = region.input().mouse_pos {
// This is the desired size. We may not be able to achieve it.
state.size = mouse_pos - position + 0.5 * corner_interact.rect.size();
state.size =
mouse_pos - position + 0.5 * corner_interact.rect.size() - self.handle_offset;
// We don't clamp to max size, because we want to be able to push against outer bounds.
// For instance, if we are inside a bigger Resize region, we want to expand that.
// state.size = state.size.clamp(self.min_size..=self.max_size);
@ -226,7 +227,7 @@ impl Resize {
// ------------------------------
paint_resize_corner(region, &corner_rect, &corner_interact);
paint_resize_corner(region, &corner_interact);
if corner_interact.hovered || corner_interact.active {
region.ctx().output().cursor_icon = CursorIcon::ResizeNwSe;
@ -236,11 +237,11 @@ impl Resize {
}
}
fn paint_resize_corner(region: &mut Region, rect: &Rect, interact: &InteractInfo) {
fn paint_resize_corner(region: &mut Region, interact: &InteractInfo) {
let color = region.style().interact_stroke_color(&interact);
let width = region.style().interact_stroke_width(&interact);
let corner = rect.right_bottom().round(); // TODO: round to pixels
let corner = interact.rect.right_bottom().round(); // TODO: round to pixels
let mut w = 2.0;
while w < 12.0 {

Loading…
Cancel
Save