From 836f24b04713217fea569c240b1cd6cb922d5091 Mon Sep 17 00:00:00 2001 From: taiyu Date: Fri, 28 Aug 2015 23:43:52 -0700 Subject: #149 change focus before pointer_mode --- sway/handlers.c | 21 ++++++++++----------- 1 file 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; } -- cgit v1.2.3