[metacity] MetaFrameBorders: Add meta_frame_borders_clear
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [metacity] MetaFrameBorders: Add meta_frame_borders_clear
- Date: Sun, 28 Sep 2014 16:03:15 +0000 (UTC)
commit 7d519b3f45a5b739ac56b94a747c6b3fd31a672d
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Sun Sep 28 17:56:33 2014 +0300
MetaFrameBorders: Add meta_frame_borders_clear
Just a quick little commit to help clean things up for when we add invisible
borders. Additionally, do a little housekeeping in preview-widget as well.
https://bugzilla.gnome.org/show_bug.cgi?id=644930
NOTE: Patch copied from mutter and adapted for metacity.
src/Makefile.am | 2 ++
src/core/common.c | 34 ++++++++++++++++++++++++++++++++++
src/core/frame.c | 13 +++++++++++++
src/include/common.h | 4 ++++
src/ui/preview-widget.c | 32 ++++++++++----------------------
src/ui/preview-widget.h | 2 ++
src/ui/theme.c | 11 +++--------
src/ui/ui.c | 5 +----
8 files changed, 69 insertions(+), 34 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index 7cb2d85..35d1e32 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -75,6 +75,7 @@ metacity_SOURCES= \
core/workspace.h \
core/xprops.c \
include/xprops.h \
+ core/common.c \
include/common.h \
include/core.h \
include/ui.h \
@@ -110,6 +111,7 @@ libmetacity_private_la_SOURCES= \
ui/gradient.h \
core/util.c \
include/util.h \
+ core/common.c \
include/common.h \
ui/preview-widget.c \
ui/preview-widget.h \
diff --git a/src/core/common.c b/src/core/common.c
new file mode 100644
index 0000000..c7fe101
--- /dev/null
+++ b/src/core/common.c
@@ -0,0 +1,34 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+
+/* Metacity X window decorations */
+
+/*
+ * Copyright (C) 2001 Havoc Pennington
+ * Copyright (C) 2003, 2004 Red Hat, Inc.
+ * Copyright (C) 2005 Elijah Newren
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+#include "common.h"
+
+void
+meta_frame_borders_clear (MetaFrameBorders *self)
+{
+ self->visible.top = 0;
+ self->visible.bottom = 0;
+ self->visible.left = 0;
+ self->visible.right = 0;
+}
diff --git a/src/core/frame.c b/src/core/frame.c
index 3b3a950..117b75a 100644
--- a/src/core/frame.c
+++ b/src/core/frame.c
@@ -298,6 +298,19 @@ meta_frame_get_flags (MetaFrame *frame)
return flags;
}
+/* Moved to core/common.c
+ */
+#if 0
+void
+meta_frame_borders_clear (MetaFrameBorders *self)
+{
+ self->visible.top = 0;
+ self->visible.bottom = 0;
+ self->visible.left = 0;
+ self->visible.right = 0;
+}
+#endif
+
void
meta_frame_calc_borders (MetaFrame *frame,
MetaFrameBorders *borders)
diff --git a/src/include/common.h b/src/include/common.h
index d03da86..3764e62 100644
--- a/src/include/common.h
+++ b/src/include/common.h
@@ -267,6 +267,10 @@ struct _MetaFrameBorders
*/
GtkBorder visible;
};
+
+/* sets all dimensions to zero */
+void meta_frame_borders_clear (MetaFrameBorders *self);
+
/* should investigate changing these to whatever most apps use */
#define META_ICON_WIDTH 96
#define META_ICON_HEIGHT 96
diff --git a/src/ui/preview-widget.c b/src/ui/preview-widget.c
index 8223700..458d9c0 100644
--- a/src/ui/preview-widget.c
+++ b/src/ui/preview-widget.c
@@ -91,10 +91,7 @@ meta_preview_init (MetaPreview *preview)
META_FRAME_ALLOWS_SHADE |
META_FRAME_ALLOWS_MOVE;
- preview->borders.visible.left = -1;
- preview->borders.visible.right = -1;
- preview->borders.visible.top = -1;
- preview->borders.visible.bottom = -1;
+ preview->borders_cached = FALSE;
}
GtkWidget*
@@ -165,23 +162,17 @@ ensure_info (MetaPreview *preview)
pango_font_description_free (font_desc);
}
- if (preview->borders.visible.top < 0)
+ if (!preview->borders_cached)
{
if (preview->theme)
- {
- meta_theme_get_frame_borders (preview->theme,
- preview->type,
- preview->text_height,
- preview->flags,
- &preview->borders);
- }
+ meta_theme_get_frame_borders (preview->theme,
+ preview->type,
+ preview->text_height,
+ preview->flags,
+ &preview->borders);
else
- {
- preview->borders.visible.top = 0;
- preview->borders.visible.bottom = 0;
- preview->borders.visible.left = 0;
- preview->borders.visible.right = 0;
- }
+ meta_frame_borders_clear (&preview->borders);
+ preview->borders_cached = TRUE;
}
}
@@ -361,10 +352,7 @@ clear_cache (MetaPreview *preview)
preview->layout = NULL;
}
- preview->borders.visible.left = -1;
- preview->borders.visible.right = -1;
- preview->borders.visible.top = -1;
- preview->borders.visible.bottom = -1;
+ preview->borders_cached = FALSE;
}
void
diff --git a/src/ui/preview-widget.h b/src/ui/preview-widget.h
index e04c9eb..ad61a66 100644
--- a/src/ui/preview-widget.h
+++ b/src/ui/preview-widget.h
@@ -48,6 +48,8 @@ struct _MetaPreview
int text_height;
MetaFrameBorders borders;
+ guint borders_cached : 1;
+
MetaButtonLayout button_layout;
};
diff --git a/src/ui/theme.c b/src/ui/theme.c
index b671637..72c5cd3 100644
--- a/src/ui/theme.c
+++ b/src/ui/theme.c
@@ -423,10 +423,8 @@ meta_frame_layout_get_borders (const MetaFrameLayout *layout,
if (flags & META_FRAME_FULLSCREEN)
{
- borders->visible.top = 0;
- borders->visible.bottom = 0;
- borders->visible.left = 0;
- borders->visible.right = 0;
+ meta_frame_borders_clear (borders);
+ return;
}
}
@@ -5479,10 +5477,7 @@ meta_theme_get_frame_borders (MetaTheme *theme,
style = theme_get_style (theme, type, flags);
- borders->visible.top = 0;
- borders->visible.left = 0;
- borders->visible.right = 0;
- borders->visible.bottom = 0;
+ meta_frame_borders_clear (borders);
/* Parser is not supposed to allow this currently */
if (style == NULL)
diff --git a/src/ui/ui.c b/src/ui/ui.c
index 25809d5..2b225ae 100644
--- a/src/ui/ui.c
+++ b/src/ui/ui.c
@@ -732,10 +732,7 @@ meta_ui_theme_get_frame_borders (MetaUI *ui,
}
else
{
- borders->visible.top = 0;
- borders->visible.bottom = 0;
- borders->visible.left = 0;
- borders->visible.right = 0;
+ meta_frame_borders_clear (borders);
}
if (style != NULL)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]