[Xfce4-commits] <xfwm4:xfce-4.8> 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:44:02 CEST 2011


Updating branch refs/heads/xfce-4.8
         to 1d23a0d781e8c23cdc3b1c3a136b148f9a448c2c (commit)
       from 0f80fca9277fccd5351fafa64ba884d632fe0c43 (commit)

commit 1d23a0d781e8c23cdc3b1c3a136b148f9a448c2c
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 a7cd5f7..64bd2e7 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