testing/mutter: new aport

This commit is contained in:
William Pitcock 2011-01-28 23:44:23 -06:00
parent 10e5d0573d
commit a295dde101
5 changed files with 149 additions and 0 deletions

46
testing/mutter/APKBUILD Normal file
View File

@ -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"

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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