[Xfce4-commits] r24244 - xfwm4/trunk/src
Olivier Fourdan
olivier at xfce.org
Tue Jan 2 20:13:10 CET 2007
Author: olivier
Date: 2007-01-02 19:13:10 +0000 (Tue, 02 Jan 2007)
New Revision: 24244
Modified:
xfwm4/trunk/src/netwm.c
Log:
Apply NET_WM_STATE_DEMANDS_ATTENTION changes (otherwise it breaks xfwm4 demand attention mechanism), but do not obey client state change requests for NET_WM_STATE_DEMANDS_ATTENTION if the client is already focused.
Modified: xfwm4/trunk/src/netwm.c
===================================================================
--- xfwm4/trunk/src/netwm.c 2007-01-02 18:57:14 UTC (rev 24243)
+++ xfwm4/trunk/src/netwm.c 2007-01-02 19:13:10 UTC (rev 24244)
@@ -121,9 +121,7 @@
TRACE ("clientSetNetState : hidden");
data[i++] = display_info->atoms[NET_WM_STATE_HIDDEN];
}
- /* Do not apply NET_WM_STATE_DEMANDS_ATTENTION if client is already focused */
- if ((c != clientGetFocusOrPending ()) &&
- FLAG_TEST (c->flags, CLIENT_FLAG_DEMANDS_ATTENTION))
+ if (FLAG_TEST (c->flags, CLIENT_FLAG_DEMANDS_ATTENTION))
{
TRACE ("clientSetNetState : demands_attention");
data[i++] = display_info->atoms[NET_WM_STATE_DEMANDS_ATTENTION];
@@ -534,8 +532,12 @@
{
if ((action == NET_WM_STATE_ADD) && !FLAG_TEST (c->flags, CLIENT_FLAG_DEMANDS_ATTENTION))
{
- FLAG_SET (c->flags, CLIENT_FLAG_DEMANDS_ATTENTION);
- clientSetNetState (c);
+ /* Do not apply NET_WM_STATE_DEMANDS_ATTENTION if client is already focused */
+ if (c != clientGetFocusOrPending ())
+ {
+ FLAG_SET (c->flags, CLIENT_FLAG_DEMANDS_ATTENTION);
+ clientSetNetState (c);
+ }
}
else if ((action == NET_WM_STATE_REMOVE) && FLAG_TEST (c->flags, CLIENT_FLAG_DEMANDS_ATTENTION))
{
@@ -544,8 +546,12 @@
}
else if (action == NET_WM_STATE_TOGGLE)
{
- FLAG_TOGGLE (c->flags, CLIENT_FLAG_DEMANDS_ATTENTION);
- clientSetNetState (c);
+ /* Do not apply NET_WM_STATE_DEMANDS_ATTENTION if client is already focused */
+ if (c != clientGetFocusOrPending () || !FLAG_TEST (c->flags, CLIENT_FLAG_DEMANDS_ATTENTION))
+ {
+ FLAG_TOGGLE (c->flags, CLIENT_FLAG_DEMANDS_ATTENTION);
+ clientSetNetState (c);
+ }
}
}
}
More information about the Xfce4-commits
mailing list