aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-05-11 10:30:51 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-05-11 10:30:51 +0400
commit6d9cfe28823e88df68f172496c928bd366777ad1 (patch)
treeaa420fffb4f8f6b89d2d7bf81b6c6ab2c5e24fa0 /src
parentde0ad857112384dbba0198bbd4481b2fd61204e3 (diff)
downloadniri-6d9cfe28823e88df68f172496c928bd366777ad1.tar.gz
niri-6d9cfe28823e88df68f172496c928bd366777ad1.tar.bz2
niri-6d9cfe28823e88df68f172496c928bd366777ad1.zip
Don't start a resize if edges is empty
Diffstat (limited to 'src')
-rw-r--r--src/input.rs86
1 files changed, 44 insertions, 42 deletions
diff --git a/src/input.rs b/src/input.rs
index ccae9397..e30655ec 100644
--- a/src/input.rs
+++ b/src/input.rs
@@ -1095,51 +1095,53 @@ impl State {
.resize_edges_under(output, pos_within_output)
.unwrap();
- // See if we got a double resize-click gesture.
- // FIXME: deduplicate with resize_request in xdg-shell somehow.
- let time = get_monotonic_time();
- let last_cell = mapped.last_interactive_resize_start();
- let last = last_cell.get();
- last_cell.set(Some((time, edges)));
- let mut did_gesture = false;
- if let Some((last_time, last_edges)) = last {
- if time.saturating_sub(last_time) <= DOUBLE_CLICK_TIME {
- let intersection = edges.intersection(last_edges);
- if intersection.intersects(ResizeEdge::LEFT_RIGHT) {
- // FIXME: don't activate once we can pass specific windows to
- // actions.
- self.niri.layout.activate_window(&window);
- self.niri.layout.toggle_full_width();
+ if !edges.is_empty() {
+ // See if we got a double resize-click gesture.
+ // FIXME: deduplicate with resize_request in xdg-shell somehow.
+ let time = get_monotonic_time();
+ let last_cell = mapped.last_interactive_resize_start();
+ let last = last_cell.get();
+ last_cell.set(Some((time, edges)));
+ let mut did_gesture = false;
+ if let Some((last_time, last_edges)) = last {
+ if time.saturating_sub(last_time) <= DOUBLE_CLICK_TIME {
+ let intersection = edges.intersection(last_edges);
+ if intersection.intersects(ResizeEdge::LEFT_RIGHT) {
+ // FIXME: don't activate once we can pass specific windows
+ // to actions.
+ self.niri.layout.activate_window(&window);
+ self.niri.layout.toggle_full_width();
+ }
+ if intersection.intersects(ResizeEdge::TOP_BOTTOM) {
+ // FIXME: don't activate once we can pass specific windows
+ // to actions.
+ self.niri.layout.activate_window(&window);
+ self.niri.layout.reset_window_height();
+ }
+ did_gesture = true;
}
- if intersection.intersects(ResizeEdge::TOP_BOTTOM) {
- // FIXME: don't activate once we can pass specific windows to
- // actions.
- self.niri.layout.activate_window(&window);
- self.niri.layout.reset_window_height();
- }
- did_gesture = true;
}
- }
- self.niri.layout.activate_window(&window);
-
- if !did_gesture
- && self
- .niri
- .layout
- .interactive_resize_begin(window.clone(), edges)
- {
- let start_data = PointerGrabStartData {
- focus: None,
- button: event.button_code(),
- location,
- };
- let grab = ResizeGrab::new(start_data, window.clone());
- pointer.set_grab(self, grab, serial, Focus::Clear);
- self.niri.interactive_resize_ongoing = true;
- self.niri
- .cursor_manager
- .set_cursor_image(CursorImageStatus::Named(edges.cursor_icon()));
+ self.niri.layout.activate_window(&window);
+
+ if !did_gesture
+ && self
+ .niri
+ .layout
+ .interactive_resize_begin(window.clone(), edges)
+ {
+ let start_data = PointerGrabStartData {
+ focus: None,
+ button: event.button_code(),
+ location,
+ };
+ let grab = ResizeGrab::new(start_data, window.clone());
+ pointer.set_grab(self, grab, serial, Focus::Clear);
+ self.niri.interactive_resize_ongoing = true;
+ self.niri.cursor_manager.set_cursor_image(
+ CursorImageStatus::Named(edges.cursor_icon()),
+ );
+ }
}
}
}