aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortaiyu <taiyu.len@gmail.com>2015-08-28 23:43:52 -0700
committertaiyu <taiyu.len@gmail.com>2015-08-28 23:43:52 -0700
commit836f24b04713217fea569c240b1cd6cb922d5091 (patch)
treeac7fe7587177e7610d426130c0e38b61ccf70f9e
parent9acd3d20681de1bbce791bdf82e5fb5e74dfb80f (diff)
#149 change focus before pointer_mode
-rw-r--r--sway/handlers.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/sway/handlers.c b/sway/handlers.c
index fa5c6c93..d0b129e8 100644
--- a/sway/handlers.c
+++ b/sway/handlers.c
@@ -447,19 +447,8 @@ static bool handle_pointer_button(wlc_handle view, uint32_t time, const struct w
pointer_mode_set(button, !(modifiers->mods ^ config->floating_mod));
}
- // Return if mode has been set
- if (pointer_state.mode) {
- return EVENT_HANDLED;
- }
-
- // Always send mouse release
- if (state == WLC_BUTTON_STATE_RELEASED) {
- return EVENT_PASSTHROUGH;
- }
-
// Check whether to change focus
swayc_t *pointer = pointer_state.view;
- sway_log(L_DEBUG, "pointer:%p",pointer);
if (pointer) {
if (focused != pointer) {
set_focused_container(pointer_state.view);
@@ -478,6 +467,16 @@ static bool handle_pointer_button(wlc_handle view, uint32_t time, const struct w
}
}
+ // Return if mode has been set
+ if (pointer_state.mode) {
+ return EVENT_HANDLED;
+ }
+
+ // Always send mouse release
+ if (state == WLC_BUTTON_STATE_RELEASED) {
+ return EVENT_PASSTHROUGH;
+ }
+
// Finally send click
return EVENT_PASSTHROUGH;
}