aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sway/handlers.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/sway/handlers.c b/sway/handlers.c
index b6bc11c0..f37473aa 100644
--- a/sway/handlers.c
+++ b/sway/handlers.c
@@ -776,10 +776,13 @@ static bool handle_pointer_motion(wlc_handle handle, uint32_t time, const struct
return EVENT_PASSTHROUGH;
}
-bool swayc_border_check(swayc_t *c, const void *_origin) {
+static bool swayc_border_check(swayc_t *c, const void *_origin) {
const struct wlc_point *origin = _origin;
- if (origin->x >= c->title_bar_geometry.origin.x && origin->y >= c->title_bar_geometry.origin.y
- && origin->x < (c->title_bar_geometry.origin.x + (int)c->title_bar_geometry.size.w) && origin->y < (c->title_bar_geometry.origin.y + (int)c->title_bar_geometry.size.h)) {
+ const struct wlc_geometry title_bar = c->title_bar_geometry;
+
+ if (origin->x >= title_bar.origin.x && origin->y >= title_bar.origin.y
+ && origin->x < title_bar.origin.x + (int32_t)title_bar.size.w
+ && origin->y < title_bar.origin.y + (int32_t)title_bar.size.h) {
return true;
}
return false;
@@ -849,10 +852,12 @@ static bool handle_pointer_button(wlc_handle view, uint32_t time, const struct w
swayc_t *pointer = pointer_state.view;
if (pointer) {
swayc_t *ws = swayc_parent_by_type(focused, C_WORKSPACE);
- swayc_t *find = container_find(ws, &swayc_border_check, origin);
- if (find != NULL) {
- set_focused_container(find);
- return EVENT_HANDLED;
+ if (ws != NULL) {
+ swayc_t *find = container_find(ws, &swayc_border_check, origin);
+ if (find != NULL) {
+ set_focused_container(find);
+ return EVENT_HANDLED;
+ }
}
if (focused != pointer) {