summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOlivier Fourdan <fourdan@xfce.org>2011-09-12 10:18:33 +0200
committerOlivier Fourdan <fourdan@xfce.org>2011-09-12 10:18:33 +0200
commitb1decacb73ec0274c7916e2d28f0d60ef15f7a21 (patch)
tree4ccad7e0c15e63036f83bc4df3be0d3203a8fc81 /src
parent3f76f971e61fa781c1eb2c43b0411c4148ec4275 (diff)
downloadxfwm4-b1decacb73ec0274c7916e2d28f0d60ef15f7a21.tar.gz
Revert "Fix panel plugins such as verve not receiving focus in focus follow mouse mode (bug #6617)."
This reverts commit 3f76f971e61fa781c1eb2c43b0411c4148ec4275.
Diffstat (limited to 'src')
-rw-r--r--src/client.c9
-rw-r--r--src/client.h3
-rw-r--r--src/netwm.c4
3 files changed, 10 insertions, 6 deletions
diff --git a/src/client.c b/src/client.c
index 68fcf759f..6fe07151d 100644
--- a/src/client.c
+++ b/src/client.c
@@ -883,7 +883,7 @@ clientMoveResizeWindow (Client * c, XWindowChanges * wc, unsigned long mask)
}
else
{
- clientActivate (c, getXServerTime (display_info));
+ clientActivate (c, getXServerTime (display_info), FALSE);
}
}
}
@@ -2569,7 +2569,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;
@@ -2607,7 +2607,10 @@ clientActivate (Client * c, guint32 timestamp)
}
clientRaise (sibling, None);
clientShow (sibling, TRUE);
- 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 6b501a6db..10137f7a9 100644
--- a/src/client.h
+++ b/src/client.h
@@ -392,7 +392,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/netwm.c b/src/netwm.c
index f95567c49..fcd6123d6 100644
--- a/src/netwm.c
+++ b/src/netwm.c
@@ -1401,13 +1401,13 @@ clientHandleNetActiveWindow (Client *c, guint32 timestamp, gboolean source_is_ap
}
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);
}
}