diff options
-rw-r--r-- | testing/mutter/APKBUILD | 46 | ||||
-rw-r--r-- | testing/mutter/mutter-gtk2.patch | 82 | ||||
-rw-r--r-- | testing/mutter/mutter.post-install | 7 | ||||
-rw-r--r-- | testing/mutter/mutter.post-upgrade | 7 | ||||
-rw-r--r-- | testing/mutter/mutter.pre-deinstall | 7 |
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 |