[mutter/wip/wayland-fixes: 4/5] window: Don't queue move/resizes if the extents are the same
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/wayland-fixes: 4/5] window: Don't queue move/resizes if the extents are the same
- Date: Wed, 17 Sep 2014 21:09:47 +0000 (UTC)
commit 55b910f183ec7315f61088b2e268f8379ebd20b5
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Wed Sep 17 10:41:14 2014 -0600
window: Don't queue move/resizes if the extents are the same
GTK+ sets the frame extents on every allocation, so don't bother doing
any extra work if things are the same.
src/x11/window-props.c | 19 ++++++++++++++++---
1 files changed, 16 insertions(+), 3 deletions(-)
---
diff --git a/src/x11/window-props.c b/src/x11/window-props.c
index 1b4fa6e..e857788 100644
--- a/src/x11/window-props.c
+++ b/src/x11/window-props.c
@@ -338,17 +338,33 @@ reload_icon_geometry (MetaWindow *window,
}
}
+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));
}
@@ -382,9 +398,6 @@ reload_gtk_frame_extents (MetaWindow *window,
{
meta_window_set_custom_frame_extents (window, NULL);
}
-
- if (!initial)
- meta_window_queue(window, META_QUEUE_MOVE_RESIZE);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]