trigger fake mouse-out on clients when unsetting focus
authorMike Blumenkrantz <zmike@osg.samsung.com>
Mon, 29 Jun 2015 20:00:43 +0000 (16:00 -0400)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Mon, 29 Jun 2015 20:00:43 +0000 (16:00 -0400)
this will allow a more reasonable determination of pointer location
when attempting to apply mouse-based focus policies

src/bin/e_client.c

index 20f9e5e..e76d17d 100644 (file)
@@ -3467,6 +3467,8 @@ e_client_focused_set(E_Client *ec)
         ec_unfocus->want_focus = ec_unfocus->focused = 0;
         if (!e_object_is_del(E_OBJECT(ec_unfocus)))
           e_focus_event_focus_out(ec_unfocus);
+        if (ec_unfocus->mouse.in)
+          e_client_mouse_out(ec_unfocus, ec_unfocus->x - 1, ec_unfocus->y - 1);
 
         E_FREE_FUNC(ec_unfocus->raise_timer, ecore_timer_del);