[Xfce4-commits] <xfwm4:master> Get rid or of old GNOME 1.x protocol
Olivier Fourdan
noreply at xfce.org
Tue Oct 11 23:02:02 CEST 2011
Updating branch refs/heads/master
to 60259483c75d230ff3139bb1c21c0d0c2b2c0d2a (commit)
from 9982c00b3b7f6423faf9fe4a18cb92e85ce11c8f (commit)
commit 60259483c75d230ff3139bb1c21c0d0c2b2c0d2a
Author: Olivier Fourdan <fourdan at xfce.org>
Date: Tue Oct 11 20:17:09 2011 +0200
Get rid or of old GNOME 1.x protocol
src/client.c | 168 ++++++------------------------------------------------
src/client.h | 12 ++--
src/display.c | 10 ---
src/display.h | 10 ---
src/events.c | 60 ++++---------------
src/focus.c | 5 --
src/hints.c | 46 ---------------
src/hints.h | 16 -----
src/main.c | 6 --
src/moveresize.c | 6 +-
src/netwm.c | 37 ++----------
src/settings.c | 4 -
src/stacking.c | 2 -
src/workspaces.c | 2 -
14 files changed, 46 insertions(+), 338 deletions(-)
diff --git a/src/client.c b/src/client.c
index 6cf7206..e48345b 100644
--- a/src/client.c
+++ b/src/client.c
@@ -287,10 +287,7 @@ clientUpdateAllFrames (ScreenInfo *screen_info, int mask)
/* Recompute size and position of maximized windows */
if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ | CLIENT_FLAG_MAXIMIZED_VERT))
{
- maximization_flags |= FLAG_TEST (c->flags,
- CLIENT_FLAG_MAXIMIZED_HORIZ) ? WIN_STATE_MAXIMIZED_HORIZ : 0;
- maximization_flags |= FLAG_TEST (c->flags,
- CLIENT_FLAG_MAXIMIZED_VERT) ? WIN_STATE_MAXIMIZED_VERT : 0;
+ maximization_flags = c->flags & CLIENT_FLAG_MAXIMIZED;
/* Force an update by clearing the internal flags */
FLAG_UNSET (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ | CLIENT_FLAG_MAXIMIZED_VERT);
@@ -716,13 +713,9 @@ clientConfigure (Client * c, XWindowChanges * wc, unsigned long mask, unsigned s
}
mask &= ~(CWStackMode | CWSibling);
- /* Keep control over what the application does. However, some broken apps try
- to achieve fullscreen by using static gravity and a (0,0) position, the
- second part of the test is for this case.
- */
+ /* Keep control over what the application does. */
if (((flags & (CFG_CONSTRAINED | CFG_REQUEST)) == (CFG_CONSTRAINED | CFG_REQUEST))
- && CONSTRAINED_WINDOW (c)
- && !((c->gravity == StaticGravity) && (c->x == 0) && (c->y == 0)))
+ && CONSTRAINED_WINDOW (c))
{
clientConstrainPos (c, flags & CFG_KEEP_VISIBLE);
@@ -851,7 +844,7 @@ clientMoveResizeWindow (Client * c, XWindowChanges * wc, unsigned long mask)
{
clientRemoveMaximizeFlag (c);
}
- flags |= CFG_REQUEST;
+ flags |= CFG_REQUEST | CFG_CONSTRAINED;
}
if ((mask & (CWWidth | CWHeight)) && !(mask & (CWX | CWY)))
{
@@ -860,7 +853,7 @@ clientMoveResizeWindow (Client * c, XWindowChanges * wc, unsigned long mask)
* position, make sure the window remains fully visible in that
* case so that the user does not have to relocate the window
*/
- flags |= CFG_CONSTRAINED | CFG_KEEP_VISIBLE;
+ flags |= CFG_KEEP_VISIBLE;
}
/*
* Let's say that if the client performs a XRaiseWindow, we show the window if focus
@@ -1298,44 +1291,6 @@ clientFree (Client * c)
}
static void
-clientGetWinState (Client * c)
-{
- g_return_if_fail (c != NULL);
-
- TRACE ("entering clientGetWinState");
-
- if (c->win_state & WIN_STATE_STICKY)
- {
- FLAG_SET (c->flags, CLIENT_FLAG_STICKY);
- }
- if (c->win_state & WIN_STATE_SHADED)
- {
- FLAG_SET (c->flags, CLIENT_FLAG_SHADED);
- }
- if (c->win_state & WIN_STATE_MAXIMIZED_HORIZ)
- {
- if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_MAXIMIZE))
- {
- FLAG_SET (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ);
- }
- }
- if (c->win_state & WIN_STATE_MAXIMIZED_VERT)
- {
- if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_MAXIMIZE))
- {
- FLAG_SET (c->flags, CLIENT_FLAG_MAXIMIZED_VERT);
- }
- }
- if (c->win_state & WIN_STATE_MAXIMIZED)
- {
- if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_MAXIMIZE))
- {
- FLAG_SET (c->flags, CLIENT_FLAG_MAXIMIZED);
- }
- }
-}
-
-static void
clientApplyInitialState (Client * c)
{
g_return_if_fail (c != NULL);
@@ -1347,19 +1302,11 @@ clientApplyInitialState (Client * c)
{
if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_MAXIMIZE))
{
- unsigned long mode = 0;
+ unsigned long mode = 0L;
TRACE ("Applying client's initial state: maximized");
- if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ))
- {
- TRACE ("initial state: maximized horiz.");
- mode |= WIN_STATE_MAXIMIZED_HORIZ;
- }
- if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT))
- {
- TRACE ("initial state: maximized vert.");
- mode |= WIN_STATE_MAXIMIZED_VERT;
- }
+ mode = c->flags & CLIENT_FLAG_MAXIMIZED;
+
/* Unset fullscreen mode so that clientToggleMaximized() really change the state */
FLAG_UNSET (c->flags, CLIENT_FLAG_MAXIMIZED);
clientToggleMaximized (c, mode, FALSE);
@@ -1393,56 +1340,6 @@ clientApplyInitialState (Client * c)
}
}
-void
-clientUpdateWinState (Client * c, XClientMessageEvent * ev)
-{
- unsigned long action;
- Atom add_remove;
-
- g_return_if_fail (c != NULL);
- TRACE ("entering clientUpdateWinState");
- TRACE ("client \"%s\" (0x%lx)", c->name, c->window);
-
- action = ((XEvent *) ev)->xclient.data.l[0];
- add_remove = ((XEvent *) ev)->xclient.data.l[1];
-
- if (action & WIN_STATE_SHADED)
- {
- TRACE ("client \"%s\" (0x%lx) has received a win_state/shade event",
- c->name, c->window);
- if (add_remove == WIN_STATE_SHADED)
- {
- clientShade (c);
- }
- else
- {
- clientUnshade (c);
- }
- }
- else if ((action & WIN_STATE_STICKY)
- && FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_STICK))
- {
- TRACE ("client \"%s\" (0x%lx) has received a win_state/stick event",
- c->name, c->window);
- if (add_remove == WIN_STATE_STICKY)
- {
- clientStick (c, TRUE);
- }
- else
- {
- clientUnstick (c, TRUE);
- }
- frameQueueDraw (c, FALSE);
- }
- else if ((action & WIN_STATE_MAXIMIZED)
- && FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_MAXIMIZE))
- {
- TRACE ("client \"%s\" (0x%lx) has received a win_state/maximize event",
- c->name, c->window);
- clientToggleMaximized (c, add_remove, TRUE);
- }
-}
-
static gboolean
clientCheckShape (Client * c)
{
@@ -1782,12 +1679,7 @@ clientFrame (DisplayInfo *display_info, Window w, gboolean recapture)
clientGetWMProtocols (c);
clientGetMWMHints (c, FALSE);
- getHint (display_info, w, WIN_HINTS, (long *) &c->win_hints);
- getHint (display_info, w, WIN_STATE, (long *) &c->win_state);
- if (!getHint (display_info, w, WIN_LAYER, (long *) &c->win_layer))
- {
- c->win_layer = WIN_LAYER_NORMAL;
- }
+ c->win_layer = WIN_LAYER_NORMAL;
c->fullscreen_old_layer = c->win_layer;
/* net_wm_user_time standard */
@@ -1811,7 +1703,6 @@ clientFrame (DisplayInfo *display_info, Window w, gboolean recapture)
}
/* Beware, order of calls is important here ! */
- clientGetWinState (c);
clientGetNetState (c);
clientGetNetWmType (c);
clientGetInitialNetWmDesktop (c);
@@ -2060,14 +1951,8 @@ clientUnframe (Client * c, gboolean remap)
XDeleteProperty (display_info->dpy, c->window,
display_info->atoms[NET_WM_STATE]);
XDeleteProperty (display_info->dpy, c->window,
- display_info->atoms[WIN_STATE]);
- XDeleteProperty (display_info->dpy, c->window,
display_info->atoms[NET_WM_DESKTOP]);
XDeleteProperty (display_info->dpy, c->window,
- display_info->atoms[WIN_WORKSPACE]);
- XDeleteProperty (display_info->dpy, c->window,
- display_info->atoms[WIN_LAYER]);
- XDeleteProperty (display_info->dpy, c->window,
display_info->atoms[NET_WM_ALLOWED_ACTIONS]);
}
@@ -2259,7 +2144,6 @@ clientSetWorkspaceSingle (Client * c, guint ws)
{
TRACE ("setting client \"%s\" (0x%lx) to current_ws %d", c->name, c->window, ws);
c->win_workspace = ws;
- setHint (display_info, c->window, WIN_WORKSPACE, ws);
if (FLAG_TEST (c->flags, CLIENT_FLAG_STICKY))
{
setHint (display_info, c->window, NET_WM_DESKTOP, (unsigned long) ALL_WORKSPACES);
@@ -2724,7 +2608,6 @@ clientSetLayer (Client * c, guint l)
TRACE ("setting client \"%s\" (0x%lx) layer to %d", c2->name,
c2->window, l);
c2->win_layer = l;
- setHint (display_info, c2->window, WIN_LAYER, l);
}
}
g_list_free (list_of_windows);
@@ -2762,7 +2645,6 @@ clientShade (Client * c)
screen_info = c->screen_info;
display_info = screen_info->display_info;
- c->win_state |= WIN_STATE_SHADED;
FLAG_SET (c->flags, CLIENT_FLAG_SHADED);
if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_MANAGED))
{
@@ -2816,7 +2698,6 @@ clientUnshade (Client * c)
screen_info = c->screen_info;
display_info = screen_info->display_info;
- c->win_state &= ~WIN_STATE_SHADED;
FLAG_UNSET (c->flags, CLIENT_FLAG_SHADED);
if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_MANAGED))
{
@@ -2873,7 +2754,6 @@ clientStick (Client * c, gboolean include_transients)
for (list = list_of_windows; list; list = g_list_next (list))
{
c2 = (Client *) list->data;
- c2->win_state |= WIN_STATE_STICKY;
TRACE ("Sticking client \"%s\" (0x%lx)", c2->name, c2->window);
FLAG_SET (c2->flags, CLIENT_FLAG_STICKY);
setHint (display_info, c2->window, NET_WM_DESKTOP, (unsigned long) ALL_WORKSPACES);
@@ -2884,7 +2764,6 @@ clientStick (Client * c, gboolean include_transients)
else
{
TRACE ("Sticking client \"%s\" (0x%lx)", c->name, c->window);
- c->win_state |= WIN_STATE_STICKY;
FLAG_SET (c->flags, CLIENT_FLAG_STICKY);
setHint (display_info, c->window, NET_WM_DESKTOP, (unsigned long) ALL_WORKSPACES);
}
@@ -2913,7 +2792,6 @@ clientUnstick (Client * c, gboolean include_transients)
for (list = list_of_windows; list; list = g_list_next (list))
{
c2 = (Client *) list->data;
- c2->win_state &= ~WIN_STATE_STICKY;
TRACE ("Unsticking client \"%s\" (0x%lx)", c2->name, c2->window);
FLAG_UNSET (c2->flags, CLIENT_FLAG_STICKY);
setHint (display_info, c2->window, NET_WM_DESKTOP, (unsigned long) screen_info->current_ws);
@@ -2924,7 +2802,6 @@ clientUnstick (Client * c, gboolean include_transients)
else
{
TRACE ("Unsticking client \"%s\" (0x%lx)", c->name, c->window);
- c->win_state &= ~WIN_STATE_STICKY;
FLAG_UNSET (c->flags, CLIENT_FLAG_STICKY);
setHint (display_info, c->window, NET_WM_DESKTOP, (unsigned long) screen_info->current_ws);
}
@@ -3133,7 +3010,6 @@ clientRemoveMaximizeFlag (Client * c)
TRACE ("Removing maximize flag on client \"%s\" (0x%lx)", c->name,
c->window);
- c->win_state &= ~WIN_STATE_MAXIMIZED;
FLAG_UNSET (c->flags, CLIENT_FLAG_MAXIMIZED);
frameQueueDraw (c, FALSE);
clientSetNetActions (c);
@@ -3152,37 +3028,33 @@ clientNewMaxState (Client * c, XWindowChanges *wc, int mode)
* while either horizontal or vertical maximization still shows decorations...
*/
- if ((mode & WIN_STATE_MAXIMIZED) == WIN_STATE_MAXIMIZED)
+ if ((mode & CLIENT_FLAG_MAXIMIZED) == CLIENT_FLAG_MAXIMIZED)
{
if (!FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED))
{
- c->win_state |= WIN_STATE_MAXIMIZED;
FLAG_SET (c->flags, CLIENT_FLAG_MAXIMIZED);
return;
}
}
- if (mode & WIN_STATE_MAXIMIZED_HORIZ)
+ if (mode & CLIENT_FLAG_MAXIMIZED_HORIZ)
{
if (!FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ))
{
- c->win_state |= WIN_STATE_MAXIMIZED_HORIZ;
FLAG_SET (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ);
return;
}
}
- if (mode & WIN_STATE_MAXIMIZED_VERT)
+ if (mode & CLIENT_FLAG_MAXIMIZED_VERT)
{
if (!FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT))
{
- c->win_state |= WIN_STATE_MAXIMIZED_VERT;
FLAG_SET (c->flags, CLIENT_FLAG_MAXIMIZED_VERT);
return;
}
}
- c->win_state &= ~WIN_STATE_MAXIMIZED;
FLAG_UNSET (c->flags, CLIENT_FLAG_MAXIMIZED);
wc->x = c->old_x;
wc->y = c->old_y;
@@ -3493,16 +3365,12 @@ clientScreenResize(ScreenInfo *screen_info, gboolean fully_visible)
}
/* Recompute size and position of maximized windows */
- if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ | CLIENT_FLAG_MAXIMIZED_VERT))
+ if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED))
{
- /* Too bad, the flags used internally are different from the WIN_STATE_* bits */
- maximization_flags |= FLAG_TEST (c->flags,
- CLIENT_FLAG_MAXIMIZED_HORIZ) ? WIN_STATE_MAXIMIZED_HORIZ : 0;
- maximization_flags |= FLAG_TEST (c->flags,
- CLIENT_FLAG_MAXIMIZED_VERT) ? WIN_STATE_MAXIMIZED_VERT : 0;
+ maximization_flags = c->flags & CLIENT_FLAG_MAXIMIZED;
/* Force an update by clearing the internal flags */
- FLAG_UNSET (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ | CLIENT_FLAG_MAXIMIZED_VERT);
+ FLAG_UNSET (c->flags, CLIENT_FLAG_MAXIMIZED);
clientToggleMaximized (c, maximization_flags, FALSE);
wc.x = c->x;
@@ -3679,15 +3547,15 @@ clientButtonPress (Client * c, Window w, XButtonEvent * bev)
{
if (bev->button == Button1)
{
- clientToggleMaximized (c, WIN_STATE_MAXIMIZED, TRUE);
+ clientToggleMaximized (c, CLIENT_FLAG_MAXIMIZED, TRUE);
}
else if (bev->button == Button2)
{
- clientToggleMaximized (c, WIN_STATE_MAXIMIZED_VERT, TRUE);
+ clientToggleMaximized (c, CLIENT_FLAG_MAXIMIZED_VERT, TRUE);
}
else if (bev->button == Button3)
{
- clientToggleMaximized (c, WIN_STATE_MAXIMIZED_HORIZ, TRUE);
+ clientToggleMaximized (c, CLIENT_FLAG_MAXIMIZED_HORIZ, TRUE);
}
}
break;
diff --git a/src/client.h b/src/client.h
index 58963ae..a5ef5ff 100644
--- a/src/client.h
+++ b/src/client.h
@@ -213,12 +213,12 @@
#define CLIENT_CAN_HIDE_WINDOW(c) (!(c->transient_for) && \
FLAG_TEST(c->xfwm_flags, XFWM_FLAG_HAS_HIDE) && \
!FLAG_TEST(c->flags, CLIENT_FLAG_SKIP_TASKBAR))
-#define CLIENT_CAN_MAXIMIZE_WINDOW(c) (FLAG_TEST_AND_NOT(c->xfwm_flags, XFWM_FLAG_HAS_MAXIMIZE | \
- XFWM_FLAG_HAS_RESIZE | \
- XFWM_FLAG_IS_RESIZABLE) && \
+#define CLIENT_CAN_MAXIMIZE_WINDOW(c) (FLAG_TEST(c->xfwm_flags, XFWM_FLAG_HAS_MAXIMIZE | \
+ XFWM_FLAG_HAS_RESIZE | \
+ XFWM_FLAG_IS_RESIZABLE) && \
!FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN))
-#define CLIENT_CAN_FILL_WINDOW(c) (FLAG_TEST_AND_NOT(c->xfwm_flags, XFWM_FLAG_HAS_RESIZE | \
- XFWM_FLAG_IS_RESIZABLE) && \
+#define CLIENT_CAN_FILL_WINDOW(c) (FLAG_TEST(c->xfwm_flags, XFWM_FLAG_HAS_RESIZE | \
+ XFWM_FLAG_IS_RESIZABLE) && \
!FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN | CLIENT_FLAG_MAXIMIZED))
typedef enum
@@ -254,8 +254,6 @@ struct _Client
Window group_leader;
xfwmPixmap appmenu[STATE_TOGGLED];
Colormap cmap;
- unsigned long win_hints;
- unsigned long win_state;
unsigned long win_layer;
unsigned long serial;
unsigned long initial_layer;
diff --git a/src/display.c b/src/display.c
index d370f26..cfe2f85 100644
--- a/src/display.c
+++ b/src/display.c
@@ -75,7 +75,6 @@ myDisplayInitAtoms (DisplayInfo *display_info)
{
static const char *atom_names[] = {
"COMPOSITING_MANAGER",
- "GNOME_PANEL_DESKTOP_AREA",
"_KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR",
"KWM_WIN_ICON",
"_MOTIF_WM_HINTS",
@@ -156,15 +155,6 @@ myDisplayInitAtoms (DisplayInfo *display_info)
"PIXMAP",
"SM_CLIENT_ID",
"UTF8_STRING",
- "_WIN_CLIENT_LIST",
- "_WIN_DESKTOP_BUTTON_PROXY",
- "_WIN_HINTS",
- "_WIN_LAYER",
- "_WIN_PROTOCOLS",
- "_WIN_STATE",
- "_WIN_SUPPORTING_WM_CHECK",
- "_WIN_WORKSPACE",
- "_WIN_WORKSPACE_COUNT",
"WM_CHANGE_STATE",
"WM_CLIENT_LEADER",
"WM_CLIENT_MACHINE",
diff --git a/src/display.h b/src/display.h
index 6bf7094..f2f5dc7 100644
--- a/src/display.h
+++ b/src/display.h
@@ -169,7 +169,6 @@ enum
enum
{
COMPOSITING_MANAGER = 0,
- GNOME_PANEL_DESKTOP_AREA,
KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR,
KWM_WIN_ICON,
MOTIF_WM_HINTS,
@@ -250,15 +249,6 @@ enum
PIXMAP,
SM_CLIENT_ID,
UTF8_STRING,
- WIN_CLIENT_LIST,
- WIN_DESKTOP_BUTTON_PROXY,
- WIN_HINTS,
- WIN_LAYER,
- WIN_PROTOCOLS,
- WIN_STATE,
- WIN_SUPPORTING_WM_CHECK,
- WIN_WORKSPACE,
- WIN_WORKSPACE_COUNT,
WM_CHANGE_STATE,
WM_CLIENT_LEADER,
WM_CLIENT_MACHINE,
diff --git a/src/events.c b/src/events.c
index dec1174..e0901dc 100644
--- a/src/events.c
+++ b/src/events.c
@@ -338,13 +338,13 @@ handleKeyPress (DisplayInfo *display_info, XKeyEvent * ev)
}
break;
case KEY_MAXIMIZE_WINDOW:
- clientToggleMaximized (c, WIN_STATE_MAXIMIZED, TRUE);
+ clientToggleMaximized (c, CLIENT_FLAG_MAXIMIZED, TRUE);
break;
case KEY_MAXIMIZE_VERT:
- clientToggleMaximized (c, WIN_STATE_MAXIMIZED_VERT, TRUE);
+ clientToggleMaximized (c, CLIENT_FLAG_MAXIMIZED_VERT, TRUE);
break;
case KEY_MAXIMIZE_HORIZ:
- clientToggleMaximized (c, WIN_STATE_MAXIMIZED_HORIZ, TRUE);
+ clientToggleMaximized (c, CLIENT_FLAG_MAXIMIZED_HORIZ, TRUE);
break;
case KEY_SHADE_WINDOW:
clientToggleShaded (c);
@@ -696,7 +696,7 @@ button1Action (Client * c, XButtonEvent * ev)
switch (screen_info->params->double_click_action)
{
case DOUBLE_CLICK_ACTION_MAXIMIZE:
- clientToggleMaximized (c, WIN_STATE_MAXIMIZED, TRUE);
+ clientToggleMaximized (c, CLIENT_FLAG_MAXIMIZED, TRUE);
break;
case DOUBLE_CLICK_ACTION_SHADE:
clientToggleShaded (c);
@@ -1813,11 +1813,6 @@ handlePropertyNotify (DisplayInfo *display_info, XPropertyEvent * ev)
c->transient_for = w;
}
}
- else if (ev->atom == display_info->atoms[WIN_HINTS])
- {
- TRACE ("client \"%s\" (0x%lx) has received a WIN_HINTS notify", c->name, c->window);
- getHint (display_info, c->window, WIN_HINTS, (long *) &c->win_hints);
- }
else if (ev->atom == display_info->atoms[NET_WM_WINDOW_TYPE])
{
TRACE ("client \"%s\" (0x%lx) has received a NET_WM_WINDOW_TYPE notify", c->name, c->window);
@@ -1928,12 +1923,6 @@ handlePropertyNotify (DisplayInfo *display_info, XPropertyEvent * ev)
workspaceSetNames (screen_info, names, items);
}
}
- else if (ev->atom == display_info->atoms[GNOME_PANEL_DESKTOP_AREA])
- {
- TRACE ("root has received a GNOME_PANEL_DESKTOP_AREA notify");
- getGnomeDesktopMargins (display_info, screen_info->xroot, screen_info->gnome_margins);
- workspaceUpdateArea (screen_info);
- }
else if (ev->atom == display_info->atoms[NET_DESKTOP_LAYOUT])
{
TRACE ("root has received a NET_DESKTOP_LAYOUT notify");
@@ -1952,7 +1941,13 @@ handleClientMessage (DisplayInfo *display_info, XClientMessageEvent * ev)
Client *c;
TRACE ("entering handleClientMessage");
+ TRACE ("handleClientMessage from window (0x%lx)", ev->window);
+ if (ev->window == None)
+ {
+ /* Some do not set the window member, not much we can do without */
+ return EVENT_FILTER_PASS;
+ }
status = EVENT_FILTER_PASS;
c = myDisplayGetClientFromWindow (display_info, ev->window, SEARCH_WINDOW);
if (c)
@@ -1968,33 +1963,6 @@ handleClientMessage (DisplayInfo *display_info, XClientMessageEvent * ev)
clientWithdraw (c, c->win_workspace, TRUE);
}
}
- else if ((ev->message_type == display_info->atoms[WIN_STATE]) && (ev->format == 32))
- {
- TRACE ("client \"%s\" (0x%lx) has received a WIN_STATE event", c->name, c->window);
- clientUpdateWinState (c, ev);
- }
- else if ((ev->message_type == display_info->atoms[WIN_LAYER]) && (ev->format == 32))
- {
- TRACE ("client \"%s\" (0x%lx) has received a WIN_LAYER event", c->name, c->window);
- /*
- * Some apps that I wouldn't name try to manipulate the win layer by themselves
- * and cause havoc when doing so on transient dialogs, so we need to be extra careful
- * here before allowing apps to change the layer.
- * Actually, I beleive twe should get rid of support of this old protocol...
- */
- if (!clientIsTransientOrModal(c) && ((unsigned long) ev->data.l[0] != c->win_layer))
- {
- clientSetLayer (c, ev->data.l[0]);
- }
- }
- else if ((ev->message_type == display_info->atoms[WIN_WORKSPACE]) && (ev->format == 32))
- {
- TRACE ("client \"%s\" (0x%lx) has received a WIN_WORKSPACE event", c->name, c->window);
- if (ev->data.l[0] != (long) c->win_workspace)
- {
- clientSetWorkspace (c, (guint) ev->data.l[0], TRUE);
- }
- }
else if ((ev->message_type == display_info->atoms[NET_WM_DESKTOP]) && (ev->format == 32))
{
TRACE ("client \"%s\" (0x%lx) has received a NET_WM_DESKTOP event", c->name, c->window);
@@ -2066,8 +2034,7 @@ handleClientMessage (DisplayInfo *display_info, XClientMessageEvent * ev)
}
status = EVENT_FILTER_REMOVE;
- if (((ev->message_type == display_info->atoms[WIN_WORKSPACE]) ||
- (ev->message_type == display_info->atoms[NET_CURRENT_DESKTOP])) && (ev->format == 32))
+ if ((ev->message_type == display_info->atoms[NET_CURRENT_DESKTOP]) && (ev->format == 32))
{
TRACE ("root has received a win_workspace or a NET_CURRENT_DESKTOP event %li", ev->data.l[0]);
if ((ev->data.l[0] >= 0) && (ev->data.l[0] < (long) screen_info->workspace_count) &&
@@ -2077,8 +2044,7 @@ handleClientMessage (DisplayInfo *display_info, XClientMessageEvent * ev)
myDisplayGetTime (display_info, (guint32) ev->data.l[1]));
}
}
- else if (((ev->message_type == display_info->atoms[WIN_WORKSPACE_COUNT]) ||
- (ev->message_type == display_info->atoms[NET_NUMBER_OF_DESKTOPS])) && (ev->format == 32))
+ else if ((ev->message_type == display_info->atoms[NET_NUMBER_OF_DESKTOPS]) && (ev->format == 32))
{
TRACE ("root has received a win_workspace_count event");
if (ev->data.l[0] != (long) screen_info->workspace_count)
@@ -2415,7 +2381,7 @@ menu_callback (Menu * menu, MenuOp op, Window xid, gpointer menu_data, gpointer
case MENU_OP_UNMAXIMIZE:
if (CLIENT_CAN_MAXIMIZE_WINDOW (c))
{
- clientToggleMaximized (c, WIN_STATE_MAXIMIZED, TRUE);
+ clientToggleMaximized (c, CLIENT_FLAG_MAXIMIZED, TRUE);
}
break;
case MENU_OP_MINIMIZE:
diff --git a/src/focus.c b/src/focus.c
index bc6e810..49e4665 100644
--- a/src/focus.c
+++ b/src/focus.c
@@ -392,11 +392,6 @@ clientAcceptFocus (Client * c)
{
return TRUE;
}
- /* First check GNOME protocol */
- if (c->win_hints & WIN_HINTS_SKIP_FOCUS)
- {
- return FALSE;
- }
if ((c->screen_info->params->focus_hint)
&& !FLAG_TEST (c->wm_flags, WM_FLAG_INPUT | WM_FLAG_TAKEFOCUS))
{
diff --git a/src/hints.c b/src/hints.c
index 8a28b0f..41fd99c 100644
--- a/src/hints.c
+++ b/src/hints.c
@@ -338,52 +338,6 @@ getDesktopLayout (DisplayInfo *display_info, Window root, int ws_count, NetWmDes
}
void
-getGnomeDesktopMargins (DisplayInfo *display_info, Window root, int * m)
-{
- Atom real_type;
- int real_format;
- unsigned long items_read, items_left;
- unsigned long *ptr;
- unsigned char *data;
-
- TRACE ("entering getGnomeDesktopMargins");
-
- ptr = NULL;
- data = NULL;
- if ((XGetWindowProperty (display_info->dpy, root,
- display_info->atoms[GNOME_PANEL_DESKTOP_AREA], 0L, 4L, FALSE, XA_CARDINAL,
- &real_type, &real_format, &items_read, &items_left,
- (unsigned char **) &data) == Success) && (items_read >= 4))
- {
- ptr = (unsigned long *) data;
- m[0] = (int) *ptr++;
- m[1] = (int) *ptr++;
- m[2] = (int) *ptr++;
- m[3] = (int) *ptr++;
- XFree (data);
- }
- else
- {
- m[0] = 0;
- m[1] = 0;
- m[2] = 0;
- m[3] = 0;
- }
-}
-
-void
-setGnomeProtocols (DisplayInfo *display_info, Window root, Window w)
-{
- Atom atoms[1];
-
- atoms[0] = display_info->atoms[WIN_LAYER];
- XChangeProperty (display_info->dpy, root, display_info->atoms[WIN_PROTOCOLS], XA_ATOM,
- 32, PropModeReplace, (unsigned char *) atoms, 1);
- setHint (display_info, w, WIN_SUPPORTING_WM_CHECK, w);
- setHint (display_info, root, WIN_SUPPORTING_WM_CHECK, w);
-}
-
-void
setNetSupportedHint (DisplayInfo *display_info, Window root, Window check_win)
{
Atom atoms[ATOM_COUNT];
diff --git a/src/hints.h b/src/hints.h
index e1f0aa9..70a5c80 100644
--- a/src/hints.h
+++ b/src/hints.h
@@ -70,16 +70,6 @@
#define MWM_TEAROFF_WINDOW (1L<<0)
-#define WIN_STATE_STICKY (1L<<0)
-#define WIN_STATE_MAXIMIZED_VERT (1L<<2)
-#define WIN_STATE_MAXIMIZED_HORIZ (1L<<3)
-#define WIN_STATE_MAXIMIZED (WIN_STATE_MAXIMIZED_VERT | \
- WIN_STATE_MAXIMIZED_HORIZ)
-#define WIN_STATE_SHADED (1L<<5)
-
-#define WIN_HINTS_SKIP_FOCUS (1L<<0)
-#define WIN_HINTS_SKIP_TASKBAR (1L<<2)
-
#define WM_PROTOCOLS_TAKE_FOCUS (1L<<0)
#define WM_PROTOCOLS_DELETE_WINDOW (1L<<1)
#define WM_PROTOCOLS_CONTEXT_HELP (1L<<2)
@@ -174,12 +164,6 @@ void getDesktopLayout (DisplayInfo *,
Window,
int,
NetWmDesktopLayout *);
-void getGnomeDesktopMargins (DisplayInfo *,
- Window,
- int *);
-void setGnomeProtocols (DisplayInfo *,
- Window,
- Window);
void setNetSupportedHint (DisplayInfo *,
Window,
Window);
diff --git a/src/main.c b/src/main.c
index 0f1cb1e..b812310 100644
--- a/src/main.c
+++ b/src/main.c
@@ -483,13 +483,7 @@ initialize (gint compositor_mode, gboolean replace_wm)
sn_init_display (screen_info);
myDisplayAddScreen (main_display_info, screen_info);
- setGnomeProtocols (main_display_info, screen_info->xroot, screen_info->xfwm4_win);
- setHint (main_display_info, screen_info->xroot, WIN_SUPPORTING_WM_CHECK, screen_info->xfwm4_win);
- setHint (main_display_info, screen_info->xroot, WIN_DESKTOP_BUTTON_PROXY, screen_info->xfwm4_win);
- setHint (main_display_info, screen_info->xfwm4_win, WIN_DESKTOP_BUTTON_PROXY, screen_info->xfwm4_win);
- getHint (main_display_info, screen_info->xroot, WIN_WORKSPACE, &ws);
screen_info->current_ws = (int) ws;
- getGnomeDesktopMargins (main_display_info, screen_info->xroot, screen_info->gnome_margins);
setUTF8StringHint (main_display_info, screen_info->xfwm4_win, NET_WM_NAME, "Xfwm4");
setNetSupportedHint (main_display_info, screen_info->xroot, screen_info->xfwm4_win);
initNetDesktopInfo (main_display_info, screen_info->xroot, screen_info->current_ws,
diff --git a/src/moveresize.c b/src/moveresize.c
index a59bc1e..8b6b45c 100644
--- a/src/moveresize.c
+++ b/src/moveresize.c
@@ -695,7 +695,7 @@ clientMoveEventFilter (XEvent * xevent, gpointer data)
if (toggled_maximize)
{
toggled_maximize = FALSE;
- clientToggleMaximized (c, WIN_STATE_MAXIMIZED, FALSE);
+ clientToggleMaximized (c, CLIENT_FLAG_MAXIMIZED, FALSE);
configure_flags = CFG_FORCE_REDRAW;
passdata->move_resized = TRUE;
}
@@ -857,7 +857,7 @@ clientMoveEventFilter (XEvent * xevent, gpointer data)
xratio = (xevent->xmotion.x_root - c->x)/(double)c->width;
- clientToggleMaximized (c, WIN_STATE_MAXIMIZED, FALSE);
+ clientToggleMaximized (c, CLIENT_FLAG_MAXIMIZED, FALSE);
passdata->move_resized = TRUE;
passdata->ox = c->x;
passdata->mx = CLAMP(c->x + c->width * xratio, c->x, c->x + c->width);
@@ -881,7 +881,7 @@ clientMoveEventFilter (XEvent * xevent, gpointer data)
{
if ((clientConstrainPos (c, FALSE) & CLIENT_CONSTRAINED_TOP) && toggled_maximize)
{
- clientToggleMaximized (c, WIN_STATE_MAXIMIZED, FALSE);
+ clientToggleMaximized (c, CLIENT_FLAG_MAXIMIZED, FALSE);
configure_flags = CFG_FORCE_REDRAW;
toggled_maximize = FALSE;
passdata->move_resized = TRUE;
diff --git a/src/netwm.c b/src/netwm.c
index fcd6123..1886474 100644
--- a/src/netwm.c
+++ b/src/netwm.c
@@ -133,11 +133,6 @@ clientSetNetState (Client * c)
XChangeProperty (display_info->dpy, c->window,
display_info->atoms[NET_WM_STATE], XA_ATOM, 32,
PropModeReplace, (unsigned char *) data, i);
- /*
- We also set GNOME hint here for consistency and convenience,
- although the meaning of net_wm_state and win_state aren't the same.
- */
- setHint (display_info, c->window, WIN_STATE, c->win_state);
}
void
@@ -162,25 +157,21 @@ clientGetNetState (Client * c)
if (FLAG_TEST (c->flags, CLIENT_FLAG_SHADED))
{
TRACE ("clientGetNetState : shaded from session management");
- c->win_state |= WIN_STATE_SHADED;
FLAG_SET (c->flags, CLIENT_FLAG_SHADED);
}
if (FLAG_TEST (c->flags, CLIENT_FLAG_STICKY))
{
TRACE ("clientGetNetState : sticky from session management");
- c->win_state |= WIN_STATE_STICKY;
FLAG_SET (c->flags, CLIENT_FLAG_STICKY);
}
if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ))
{
TRACE ("clientGetNetState : maximized horiz from session management");
- c->win_state |= WIN_STATE_MAXIMIZED_HORIZ;
FLAG_SET (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ);
}
if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT))
{
TRACE ("clientGetNetState : maximized vert from session management");
- c->win_state |= WIN_STATE_MAXIMIZED_VERT;
FLAG_SET (c->flags, CLIENT_FLAG_MAXIMIZED_VERT);
}
}
@@ -196,25 +187,21 @@ clientGetNetState (Client * c)
if ((atoms[i] == display_info->atoms[NET_WM_STATE_SHADED]))
{
TRACE ("clientGetNetState : shaded");
- c->win_state |= WIN_STATE_SHADED;
FLAG_SET (c->flags, CLIENT_FLAG_SHADED);
}
else if ((atoms[i] == display_info->atoms[NET_WM_STATE_STICKY]))
{
TRACE ("clientGetNetState : sticky");
- c->win_state |= WIN_STATE_STICKY;
FLAG_SET (c->flags, CLIENT_FLAG_STICKY);
}
else if ((atoms[i] == display_info->atoms[NET_WM_STATE_MAXIMIZED_HORZ]))
{
TRACE ("clientGetNetState : maximized horiz");
- c->win_state |= WIN_STATE_MAXIMIZED_HORIZ;
FLAG_SET (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ);
}
else if ((atoms[i] == display_info->atoms[NET_WM_STATE_MAXIMIZED_VERT]))
{
TRACE ("clientGetNetState : maximized vert");
- c->win_state |= WIN_STATE_MAXIMIZED_VERT;
FLAG_SET (c->flags, CLIENT_FLAG_MAXIMIZED_VERT);
}
else if ((atoms[i] == display_info->atoms[NET_WM_STATE_FULLSCREEN]))
@@ -351,16 +338,16 @@ clientUpdateNetState (Client * c, XClientMessageEvent * ev)
{
if ((action == NET_WM_STATE_ADD) && !FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED))
{
- mode = 0;
+ mode = 0L;
if ((first == display_info->atoms[NET_WM_STATE_MAXIMIZED_HORZ]) ||
(second == display_info->atoms[NET_WM_STATE_MAXIMIZED_HORZ]))
{
- mode |= !FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ) ? WIN_STATE_MAXIMIZED_HORIZ : 0;
+ mode |= !FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ) ? CLIENT_FLAG_MAXIMIZED_HORIZ : 0;
}
if ((first == display_info->atoms[NET_WM_STATE_MAXIMIZED_VERT]) ||
(second == display_info->atoms[NET_WM_STATE_MAXIMIZED_VERT]))
{
- mode |= !FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT) ? WIN_STATE_MAXIMIZED_VERT : 0;
+ mode |= !FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT) ? CLIENT_FLAG_MAXIMIZED_VERT : 0;
}
clientToggleMaximized (c, mode, TRUE);
}
@@ -370,12 +357,12 @@ clientUpdateNetState (Client * c, XClientMessageEvent * ev)
if ((first == display_info->atoms[NET_WM_STATE_MAXIMIZED_HORZ]) ||
(second == display_info->atoms[NET_WM_STATE_MAXIMIZED_HORZ]))
{
- mode |= FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ) ? WIN_STATE_MAXIMIZED_HORIZ : 0;
+ mode |= FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ);
}
if ((first == display_info->atoms[NET_WM_STATE_MAXIMIZED_VERT]) ||
(second == display_info->atoms[NET_WM_STATE_MAXIMIZED_VERT]))
{
- mode |= FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT) ? WIN_STATE_MAXIMIZED_VERT : 0;
+ mode |= FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT);
}
clientToggleMaximized (c, mode, TRUE);
}
@@ -385,12 +372,12 @@ clientUpdateNetState (Client * c, XClientMessageEvent * ev)
if ((first == display_info->atoms[NET_WM_STATE_MAXIMIZED_HORZ]) ||
(second == display_info->atoms[NET_WM_STATE_MAXIMIZED_HORZ]))
{
- mode |= WIN_STATE_MAXIMIZED_HORIZ;
+ mode |= CLIENT_FLAG_MAXIMIZED_HORIZ;
}
if ((first == display_info->atoms[NET_WM_STATE_MAXIMIZED_VERT]) ||
(second == display_info->atoms[NET_WM_STATE_MAXIMIZED_VERT]))
{
- mode |= WIN_STATE_MAXIMIZED_VERT;
+ mode |= CLIENT_FLAG_MAXIMIZED_VERT;
}
clientToggleMaximized (c, mode, TRUE);
}
@@ -862,7 +849,6 @@ clientGetInitialNetWmDesktop (Client * c)
{
TRACE ("atom net_wm_desktop specifies window \"%s\" is sticky", c->name);
FLAG_SET (c->flags, CLIENT_FLAG_STICKY);
- c->win_state |= WIN_STATE_STICKY;
}
c->win_workspace = c->screen_info->current_ws;
}
@@ -873,12 +859,6 @@ clientGetInitialNetWmDesktop (Client * c)
}
FLAG_SET (c->xfwm_flags, XFWM_FLAG_WORKSPACE_SET);
}
- else if (getHint (display_info, c->window, WIN_WORKSPACE, &val))
- {
- TRACE ("atom win_workspace specifies window \"%s\" is on desk %i", c->name, (int) val);
- c->win_workspace = (int) val;
- FLAG_SET (c->xfwm_flags, XFWM_FLAG_WORKSPACE_SET);
- }
/* This is to make sure that transient are shown with their "ancestor" window */
if (!FLAG_TEST (c->flags, CLIENT_FLAG_STICKY))
@@ -891,7 +871,6 @@ clientGetInitialNetWmDesktop (Client * c)
if (FLAG_TEST (c2->flags, CLIENT_FLAG_STICKY))
{
FLAG_SET (c->flags, CLIENT_FLAG_STICKY);
- c->win_state |= WIN_STATE_STICKY;
c->win_workspace = c->screen_info->current_ws;
}
}
@@ -905,7 +884,6 @@ clientGetInitialNetWmDesktop (Client * c)
FLAG_SET (c->xfwm_flags, XFWM_FLAG_WORKSPACE_SET);
}
TRACE ("initial desktop for window \"%s\" is %i", c->name, c->win_workspace);
- setHint (display_info, c->window, WIN_WORKSPACE, c->win_workspace);
if (FLAG_TEST (c->flags, CLIENT_FLAG_STICKY))
{
setHint (display_info, c->window, NET_WM_DESKTOP, (unsigned long) ALL_WORKSPACES);
@@ -1193,7 +1171,6 @@ clientWindowType (Client * c)
TRACE ("atom net_wm_window_type_desktop detected");
c->type = WINDOW_DESKTOP;
c->initial_layer = WIN_LAYER_DESKTOP;
- c->win_state |= WIN_STATE_STICKY;
FLAG_SET (c->flags,
CLIENT_FLAG_SKIP_PAGER | CLIENT_FLAG_STICKY |
CLIENT_FLAG_SKIP_TASKBAR);
diff --git a/src/settings.c b/src/settings.c
index 20efbc6..58175f3 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -1036,10 +1036,6 @@ initSettings (ScreenInfo *screen_info)
{
workspaceSetCount (screen_info, val);
}
- else if (getHint (display_info, screen_info->xroot, WIN_WORKSPACE_COUNT, &val))
- {
- workspaceSetCount (screen_info, val);
- }
if (getUTF8StringList (display_info, screen_info->xroot, NET_DESKTOP_NAMES, &names, &i))
{
diff --git a/src/stacking.c b/src/stacking.c
index 4baed7e..b41dd30 100644
--- a/src/stacking.c
+++ b/src/stacking.c
@@ -600,7 +600,6 @@ clientAddToList (Client * c)
screen_info->windows_stack = g_list_append (screen_info->windows_stack, c);
clientSetNetClientList (screen_info, display_info->atoms[NET_CLIENT_LIST], screen_info->windows);
- clientSetNetClientList (screen_info, display_info->atoms[WIN_CLIENT_LIST], screen_info->windows);
FLAG_SET (c->xfwm_flags, XFWM_FLAG_MANAGED);
}
@@ -643,7 +642,6 @@ clientRemoveFromList (Client * c)
screen_info->windows_stack = g_list_remove (screen_info->windows_stack, c);
clientSetNetClientList (screen_info, display_info->atoms[NET_CLIENT_LIST], screen_info->windows);
- clientSetNetClientList (screen_info, display_info->atoms[WIN_CLIENT_LIST], screen_info->windows);
clientSetNetClientList (screen_info, display_info->atoms[NET_CLIENT_LIST_STACKING], screen_info->windows_stack);
FLAG_UNSET (c->xfwm_flags, XFWM_FLAG_MANAGED);
diff --git a/src/workspaces.c b/src/workspaces.c
index c4c4c6a..ef3fc15 100644
--- a/src/workspaces.c
+++ b/src/workspaces.c
@@ -368,7 +368,6 @@ workspaceSwitch (ScreenInfo *screen_info, gint new_ws, Client * c2, gboolean upd
}
}
- setHint (display_info, screen_info->xroot, WIN_WORKSPACE, new_ws);
data[0] = new_ws;
XChangeProperty (myScreenGetXDisplay (screen_info), screen_info->xroot,
display_info->atoms[NET_CURRENT_DESKTOP], XA_CARDINAL, 32,
@@ -443,7 +442,6 @@ workspaceSetCount (ScreenInfo * screen_info, guint count)
}
display_info = screen_info->display_info;
- setHint (display_info, screen_info->xroot, WIN_WORKSPACE_COUNT, count);
setHint (display_info, screen_info->xroot, NET_NUMBER_OF_DESKTOPS, count);
screen_info->workspace_count = count;
More information about the Xfce4-commits
mailing list