diff -upr marco/src/core/atomnames.h marco-test-master/src/core/atomnames.h
--- marco/src/core/atomnames.h 2015-10-06 17:15:54.909757371 +0200
+++ marco-test-master/src/core/atomnames.h 2015-10-23 17:19:23.373005831 +0200
@@ -58,7 +58,6 @@ item(_MARCO_RESTART_MESSAGE)
item(_MARCO_RELOAD_THEME_MESSAGE)
item(_MARCO_SET_KEYBINDINGS_MESSAGE)
item(_MARCO_TOGGLE_VERBOSE)
-item(_GTK_FRAME_EXTENTS)
item(_MATE_PANEL_ACTION)
item(_MATE_PANEL_ACTION_MAIN_MENU)
item(_MATE_PANEL_ACTION_RUN_DIALOG)
@@ -71,6 +70,7 @@ item(MULTIPLE)
item(TIMESTAMP)
item(VERSION)
item(ATOM_PAIR)
+item(_GTK_FRAME_EXTENTS)
/* Oddities: These are used, and we need atoms for them,
* but when we need all _NET_WM hints (i.e. when we're making
diff -upr marco/src/core/constraints.c marco-test-master/src/core/constraints.c
--- marco/src/core/constraints.c 2015-10-06 17:15:54.910757381 +0200
+++ marco-test-master/src/core/constraints.c 2015-10-23 17:20:37.214737879 +0200
@@ -437,7 +437,7 @@ setup_constraint_info (ConstraintInfo
*/
if (meta_prefs_get_force_fullscreen() &&
- (window->decorated || !meta_window_is_client_decorated (window)) &&
+ window->decorated &&
meta_rectangle_equal (new, &xinerama_info->rect) &&
window->has_fullscreen_func &&
!window->fullscreen)
diff -upr marco/src/core/window.c marco-test-master/src/core/window.c
--- marco/src/core/window.c 2015-10-23 17:18:23.157406594 +0200
+++ marco-test-master/src/core/window.c 2015-10-23 17:20:41.317778555 +0200
@@ -4058,18 +4058,7 @@ meta_window_get_outer_rect (const MetaWi
if (window->frame)
*rect = window->frame->rect;
else
- {
- *rect = window->rect;
-
- if (window->has_custom_frame_extents)
- {
- const GtkBorder *extents = &window->custom_frame_extents;
- rect->x += extents->left;
- rect->y += extents->top;
- rect->width -= extents->left + extents->right;
- rect->height -= extents->top + extents->bottom;
- }
- }
+ *rect = window->rect;
}
void
@@ -8468,20 +8457,3 @@ meta_window_is_maximized (MetaWindow *wi
return META_WINDOW_MAXIMIZED (window);
}
-/**
- * meta_window_is_client_decorated:
- *
- * Check if if the window has decorations drawn by the client.
- * (window->decorated refers only to whether we should add decorations)
- */
-gboolean
-meta_window_is_client_decorated (MetaWindow *window)
-{
- /* Currently the implementation here is hackish -
- * has_custom_frame_extents() is set if _GTK_FRAME_EXTENTS is set
- * to any value even 0. GTK+ always sets _GTK_FRAME_EXTENTS for
- * client-side-decorated window, even if the value is 0 because
- * the window is maxized and has no invisible borders or shadows.
- */
- return window->has_custom_frame_extents;
-}
diff -upr marco/src/core/window-private.h marco-test-master/src/core/window-private.h
--- marco/src/core/window-private.h 2015-10-23 17:18:23.155406574 +0200
+++ marco-test-master/src/core/window-private.h 2015-10-23 17:20:41.320778585 +0200
@@ -356,9 +356,6 @@ struct _MetaWindow
*/
MetaRectangle rect;
- gboolean has_custom_frame_extents;
- GtkBorder custom_frame_extents;
-
/* The geometry to restore when we unmaximize. The position is in
* root window coords, even if there's a frame, which contrasts with
* window->rect above. Note that this gives the position and size
@@ -664,8 +661,6 @@ void meta_window_unset_demands_attention
void meta_window_update_icon_now (MetaWindow *window);
-gboolean meta_window_is_client_decorated (MetaWindow *window);
-
void meta_window_update_role (MetaWindow *window);
void meta_window_update_net_wm_type (MetaWindow *window);
diff -upr marco/src/core/window-props.c marco-test-master/src/core/window-props.c
--- marco/src/core/window-props.c 2015-10-06 17:15:54.919757469 +0200
+++ marco-test-master/src/core/window-props.c 2015-10-23 17:20:35.921725060 +0200
@@ -215,66 +215,12 @@ reload_kwm_win_icon (MetaWindow *wind
reload_icon (window, window->display->atom__KWM_WIN_ICON);
}
-static gboolean
-gtk_border_equal (GtkBorder *a,
- GtkBorder *b)
-{
- return (a->left == b->left &&
- a->right == b->right &&
- a->top == b->top &&
- a->bottom == b->bottom);
-}
-
-static void
-meta_window_set_custom_frame_extents (MetaWindow *window,
- GtkBorder *extents)
-{
- if (extents)
- {
- if (window->has_custom_frame_extents && gtk_border_equal (&window->custom_frame_extents, extents))
- return;
-
- window->has_custom_frame_extents = TRUE;
- window->custom_frame_extents = *extents;
- }
- else
- {
- if (!window->has_custom_frame_extents)
- return;
-
- window->has_custom_frame_extents = FALSE;
- memset (&window->custom_frame_extents, 0, sizeof (window->custom_frame_extents));
- }
-
- meta_window_queue (window, META_QUEUE_MOVE_RESIZE);
-}
-
static void
reload_gtk_frame_extents (MetaWindow *window,
MetaPropValue *value,
gboolean initial)
{
- if (value->type != META_PROP_VALUE_INVALID)
- {
- if (value->v.cardinal_list.n_cardinals != 4)
- {
- meta_verbose ("_GTK_FRAME_EXTENTS on %s has %d values instead of 4\n",
- window->desc, value->v.cardinal_list.n_cardinals);
- }
- else
- {
- GtkBorder extents;
- extents.left = (int)value->v.cardinal_list.cardinals[0];
- extents.right = (int)value->v.cardinal_list.cardinals[1];
- extents.top = (int)value->v.cardinal_list.cardinals[2];
- extents.bottom = (int)value->v.cardinal_list.cardinals[3];
- meta_window_set_custom_frame_extents (window, &extents);
- }
- }
- else
- {
- meta_window_set_custom_frame_extents (window, NULL);
- }
+ return;
}
static void