Updating branch refs/heads/master to 60259483c75d230ff3139bb1c21c0d0c2b2c0d2a (commit) from 9982c00b3b7f6423faf9fe4a18cb92e85ce11c8f (commit)
commit 60259483c75d230ff3139bb1c21c0d0c2b2c0d2a Author: Olivier Fourdan <four...@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; _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits