[Xfce4-commits] <xfwm4:master> Refix panel plugins such as verve not receiving focus in focus follow mouse mode (bug #6617, bug #6649).

Olivier Fourdan noreply at xfce.org
Mon Sep 12 10:42:02 CEST 2011


Updating branch refs/heads/master
         to fd8b46355bcb7b38978929463c4fbf55c1a6934a (commit)
       from b1decacb73ec0274c7916e2d28f0d60ef15f7a21 (commit)

commit fd8b46355bcb7b38978929463c4fbf55c1a6934a
Author: Olivier Fourdan <fourdan at xfce.org>
Date:   Mon Sep 12 10:38:41 2011 +0200

    Refix panel plugins such as verve not receiving focus in focus follow mouse mode (bug #6617, bug #6649).

 src/client.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/src/client.c b/src/client.c
index 6fe0715..7ab1664 100644
--- a/src/client.c
+++ b/src/client.c
@@ -2607,8 +2607,16 @@ clientActivate (Client * c, guint32 timestamp, gboolean source_is_application)
         }
         clientRaise (sibling, None);
         clientShow (sibling, TRUE);
-        if (source_is_application || screen_info->params->click_to_focus)
+        if (source_is_application || screen_info->params->click_to_focus || (c->type & WINDOW_TYPE_DONT_FOCUS))
         {
+            /*
+               It's a bit tricky here, we want to honor the activate request only if:
+
+               - The window use the _NET_ACTIVE_WINDOW protocol and identify itself as an application,
+               - Or we use the click to focus model, in that case we focus the raised window anyway,
+               - Or the request comes from an application that we would not focus by default,
+                 such as panels for example
+             */
             clientSetFocus (screen_info, c, timestamp, NO_FOCUS_FLAG);
         }
         clientSetLastRaise (c);


More information about the Xfce4-commits mailing list