[Xfce4-commits] <xfwm4:xfce-4.6> Place windows on top of stack even when not focused in focus follow mouse. (patch by Clifford Jolly<cliff at cliffjolly.com>).

Olivier Fourdan noreply at xfce.org
Tue Nov 17 12:52:03 CET 2009


Updating branch refs/heads/xfce-4.6
         to 20844436440f2c6276c5a9829bc6913795e00e14 (commit)
       from a23b56de10d343c94abce299764d5a5786f7b0b6 (commit)

commit 20844436440f2c6276c5a9829bc6913795e00e14
Author: Olivier Fourdan <fourdan.olivier at wanadoo.fr>
Date:   Wed Jul 22 08:16:40 2009 +0000

    Place windows on top of stack even when not focused in focus follow mouse.
    (patch by Clifford Jolly<cliff at cliffjolly.com>).
    
    (Old svn revision: 30377)

 ChangeLog                        |    2 +-
 src/client.c                     |   10 ++++++----
 src/client.h                     |    3 ++-
 src/events.c                     |    4 ++--
 themes/default/menu-active.png   |  Bin 97 -> 109 bytes
 themes/default/menu-inactive.png |  Bin 97 -> 109 bytes
 themes/default/menu-prelight.png |  Bin 97 -> 109 bytes
 themes/default/menu-pressed.png  |  Bin 97 -> 109 bytes
 8 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 7b93a0c..4e84a9d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,4 @@
-2009-07-27	olivier
+2009-07-19	olivier
 
 	* src/focus.c: Place windows on top of stack even when not focused in
 	  focus follow mouse (Bug #5479).
diff --git a/src/client.c b/src/client.c
index 829fe99..00b2270 100644
--- a/src/client.c
+++ b/src/client.c
@@ -873,7 +873,7 @@ clientMoveResizeWindow (Client * c, XWindowChanges * wc, unsigned long mask)
             }
             else
             {
-                clientActivate (c, getXServerTime (display_info));
+                clientActivate (c, getXServerTime (display_info), TRUE);
             }
         }
     }
@@ -2545,7 +2545,7 @@ clientToggleShowDesktop (ScreenInfo *screen_info)
 }
 
 void
-clientActivate (Client * c, guint32 timestamp)
+clientActivate (Client * c, guint32 timestamp, gboolean source_is_application)
 {
     ScreenInfo *screen_info;
     Client *focused;
@@ -2578,8 +2578,10 @@ clientActivate (Client * c, guint32 timestamp)
         }
         clientRaise (sibling, None);
         clientShow (sibling, TRUE);
-        clientClearAllShowDesktop (screen_info);
-        clientSetFocus (screen_info, c, timestamp, NO_FOCUS_FLAG);
+        if (!source_is_application || screen_info->params->click_to_focus)
+        {
+            clientSetFocus (screen_info, c, timestamp, NO_FOCUS_FLAG);
+        }
         clientSetLastRaise (c);
     }
     else
diff --git a/src/client.h b/src/client.h
index 07027c8..58e0e51 100644
--- a/src/client.h
+++ b/src/client.h
@@ -389,7 +389,8 @@ void                     clientWithdrawAll                      (Client *,
 void                     clientClearAllShowDesktop              (ScreenInfo *);
 void                     clientToggleShowDesktop                (ScreenInfo *);
 void                     clientActivate                         (Client *,
-                                                                 guint32);
+                                                                 guint32,
+                                                                 gboolean);
 void                     clientClose                            (Client *);
 void                     clientKill                             (Client *);
 void                     clientTerminate                        (Client *);
diff --git a/src/events.c b/src/events.c
index d3614b8..8af6d54 100644
--- a/src/events.c
+++ b/src/events.c
@@ -2097,13 +2097,13 @@ handleClientMessage (DisplayInfo *display_info, XClientMessageEvent * ev)
                 }
                 else
                 {
-                    clientActivate (c, ev_time);
+                    clientActivate (c, ev_time, source_is_application);
                 }
             }
             else
             {
                 /* The request is either from a pager or an older client, use the most accurate timestamp */
-                clientActivate (c, getXServerTime (display_info));
+                clientActivate (c, getXServerTime (display_info), source_is_application);
             }
         }
         else if (ev->message_type == display_info->atoms[NET_REQUEST_FRAME_EXTENTS])
diff --git a/themes/default/menu-active.png b/themes/default/menu-active.png
index 5de6127..1877667 100644
Binary files a/themes/default/menu-active.png and b/themes/default/menu-active.png differ
diff --git a/themes/default/menu-inactive.png b/themes/default/menu-inactive.png
index 5de6127..1877667 100644
Binary files a/themes/default/menu-inactive.png and b/themes/default/menu-inactive.png differ
diff --git a/themes/default/menu-prelight.png b/themes/default/menu-prelight.png
index 5de6127..1877667 100644
Binary files a/themes/default/menu-prelight.png and b/themes/default/menu-prelight.png differ
diff --git a/themes/default/menu-pressed.png b/themes/default/menu-pressed.png
index 5de6127..1877667 100644
Binary files a/themes/default/menu-pressed.png and b/themes/default/menu-pressed.png differ



More information about the Xfce4-commits mailing list