summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--testing/mutter/APKBUILD46
-rw-r--r--testing/mutter/mutter-gtk2.patch82
-rw-r--r--testing/mutter/mutter.post-install7
-rw-r--r--testing/mutter/mutter.post-upgrade7
-rw-r--r--testing/mutter/mutter.pre-deinstall7
5 files changed, 149 insertions, 0 deletions
diff --git a/testing/mutter/APKBUILD b/testing/mutter/APKBUILD
new file mode 100644
index 000000000..22a76877c
--- /dev/null
+++ b/testing/mutter/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: William Pitcock <nenolod@dereferenced.org>
+# Maintainer: William Pitcock <nenolod@dereferenced.org>
+pkgname=mutter
+pkgver=2.31.5
+pkgrel=0
+pkgdesc="clutter-based window manager for GNOME"
+url="http://www.gnome.org/"
+arch="all"
+license="GPL"
+depends="zenity"
+depends_dev="clutter-dev libcanberra-dev gconf-dev startup-notification-dev python-dev"
+makedepends="$depends_dev gobject-introspection intltool gnome-doc-utils"
+install="$pkgname.pre-deinstall $pkgname.post-install $pkgname.post-upgrade"
+subpackages="$pkgname-dev $pkgname-doc"
+source="ftp://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2
+ mutter-gtk2.patch"
+
+_builddir="${srcdir}/${pkgname}-${pkgver}"
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+
+ export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+md5sums="0bec58091d4a3b1df6d5d6c05a1dd7cd mutter-2.31.5.tar.bz2
+e2f03d7771bf45069f2fba0af8f6b57d mutter-gtk2.patch"
diff --git a/testing/mutter/mutter-gtk2.patch b/testing/mutter/mutter-gtk2.patch
new file mode 100644
index 000000000..70f7c6fd2
--- /dev/null
+++ b/testing/mutter/mutter-gtk2.patch
@@ -0,0 +1,82 @@
+--- mutter-2.31.5.orig/src/ui/frames.c
++++ mutter-2.31.5/src/ui/frames.c
+@@ -2004,47 +2004,26 @@
+ return TRUE;
+ }
+
+-/* Cut and paste from GDK */
+-static GdkGC *
+-get_bg_gc (GdkWindow *window, int x_offset, int y_offset)
++static void
++setup_bg_cr (cairo_t *cr, GdkWindow *window, int x_offset, int y_offset)
+ {
+ GdkWindow *parent = gdk_window_get_parent (window);
+- GdkPixmap *back_pixmap;
+- gboolean parent_relative;
+- guint gc_mask = 0;
+- GdkGCValues gc_values;
++ cairo_pattern_t *bg_pattern;
+
+- gdk_window_get_back_pixmap (window, &back_pixmap, &parent_relative);
+- if (parent_relative && parent)
++ bg_pattern = gdk_window_get_background_pattern (window);
++ if (bg_pattern == NULL && parent)
+ {
+ gint window_x, window_y;
+
+ gdk_window_get_position (window, &window_x, &window_y);
+- return get_bg_gc (parent,
+- x_offset + window_x,
+- y_offset + window_y);
++ setup_bg_cr (cr, parent, x_offset + window_x, y_offset + window_y);
+ }
+- else if (back_pixmap)
++ else if (bg_pattern)
+ {
+- gc_values.fill = GDK_TILED;
+- gc_values.tile = back_pixmap;
+- gc_values.ts_x_origin = x_offset;
+- gc_values.ts_y_origin = y_offset;
+-
+- gc_mask = GDK_GC_FILL | GDK_GC_TILE | GDK_GC_TS_X_ORIGIN | GDK_GC_TS_Y_ORIGIN;
+-
+- return gdk_gc_new_with_values (window, &gc_values, gc_mask);
++ cairo_translate (cr, - x_offset, - y_offset);
++ cairo_set_source (cr, bg_pattern);
++ cairo_translate (cr, x_offset, y_offset);
+ }
+- else
+- {
+- GdkColor bg_color;
+- GdkGC *gc = gdk_gc_new (window);
+-
+- gdk_window_get_background (window, &bg_color);
+- gdk_gc_set_foreground (gc, &bg_color);
+-
+- return gc;
+- }
+ }
+
+ static void
+@@ -2052,12 +2031,16 @@
+ GdkWindow *window,
+ int xoffset, int yoffset)
+ {
+- GdkGC *tmp_gc = get_bg_gc (window, xoffset, yoffset);
++ int width, height;
++ cairo_t *cr = gdk_cairo_create (pixmap);
+
+- gdk_draw_rectangle (pixmap, tmp_gc, TRUE,
+- 0, 0, -1, -1);
+-
+- g_object_unref (tmp_gc);
++ setup_bg_cr (cr, window, xoffset, yoffset);
++
++ gdk_drawable_get_size (GDK_DRAWABLE (pixmap), &width, &height);
++ cairo_rectangle (cr, 0, 0, width, height);
++ cairo_fill (cr);
++
++ cairo_destroy (cr);
+ }
+
+ /* Returns a pixmap with a piece of the windows frame painted on it.
diff --git a/testing/mutter/mutter.post-install b/testing/mutter/mutter.post-install
new file mode 100644
index 000000000..fdaf4e4f4
--- /dev/null
+++ b/testing/mutter/mutter.post-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+for i in mutter.schemas; do
+ echo "Installing GConf2 schema $i."
+ GCONF_CONFIG_SOURCE=`/usr/bin/gconftool-2 --get-default-source` \
+ /usr/bin/gconftool-2 --makefile-install-rule /etc/gconf/schemas/$i >/dev/null
+done
diff --git a/testing/mutter/mutter.post-upgrade b/testing/mutter/mutter.post-upgrade
new file mode 100644
index 000000000..fdaf4e4f4
--- /dev/null
+++ b/testing/mutter/mutter.post-upgrade
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+for i in mutter.schemas; do
+ echo "Installing GConf2 schema $i."
+ GCONF_CONFIG_SOURCE=`/usr/bin/gconftool-2 --get-default-source` \
+ /usr/bin/gconftool-2 --makefile-install-rule /etc/gconf/schemas/$i >/dev/null
+done
diff --git a/testing/mutter/mutter.pre-deinstall b/testing/mutter/mutter.pre-deinstall
new file mode 100644
index 000000000..6ec3c545d
--- /dev/null
+++ b/testing/mutter/mutter.pre-deinstall
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+for i in mutter.schemas; do
+ echo "Uninstalling GConf2 schema $i."
+ GCONF_CONFIG_SOURCE=`/usr/bin/gconftool-2 --get-default-source` \
+ /usr/bin/gconftool-2 --makefile-uninstall-rule /etc/gconf/schemas/$i >/dev/null
+done