From cd38445039d83b1d250113389b0252e5b6be54c8 Mon Sep 17 00:00:00 2001 From: Artur Shaik Date: Thu, 27 Nov 2014 14:08:43 +0600 Subject: [PATCH] Protect mouse pointer when pointer_follows_focus set When dialog window shows, I cannot move pointer outside this dialog window because when I move it, it jumps in window's center (again on dialog). So, this commit disables pff when mouse focus event happen and enables after. --- events.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/events.c b/events.c index 055b30d..1e8c829 100644 --- a/events.c +++ b/events.c @@ -347,15 +347,18 @@ void motion_notify(xcb_generic_event_t *evt) xcb_point_t pt = {e->root_x, e->root_y}; query_pointer(&win, NULL); - bool backup = pointer_follows_monitor; + bool pfm_backup = pointer_follows_monitor; + bool pff_backup = pointer_follows_focus; auto_raise = false; pointer_follows_monitor = false; + pointer_follows_focus = false; if (!window_focus(win)) { monitor_t *m = monitor_from_point(pt); if (m != NULL && m != mon) focus_node(m, m->desk, m->desk->focus); } - pointer_follows_monitor = backup; + pointer_follows_monitor = pfm_backup; + pointer_follows_focus = pff_backup; auto_raise = true; }