diff options
Diffstat (limited to 'testing/gnome-shell')
-rw-r--r-- | testing/gnome-shell/PKGBUILD | 50 | ||||
-rw-r--r-- | testing/gnome-shell/arch.patch | 12 | ||||
-rw-r--r-- | testing/gnome-shell/bluetoothstatus-always-update-devices.patch | 132 | ||||
-rw-r--r-- | testing/gnome-shell/gnome-shell.install | 22 | ||||
-rw-r--r-- | testing/gnome-shell/shell-recorder-missing-XFree.patch | 22 |
5 files changed, 238 insertions, 0 deletions
diff --git a/testing/gnome-shell/PKGBUILD b/testing/gnome-shell/PKGBUILD new file mode 100644 index 000000000..0c005f56e --- /dev/null +++ b/testing/gnome-shell/PKGBUILD @@ -0,0 +1,50 @@ +# $Id: PKGBUILD 125332 2011-05-25 22:41:23Z ibiru $ +# Maintainer: Ionut Biru <ibiru@archlinux.org> +# Contributor: Flamelab <panosfilip@gmail.com + +pkgname=gnome-shell +pkgver=3.0.2 +pkgrel=1 +pkgdesc="The next generation GNOME Shell" +arch=('i686' 'x86_64') +url="http://live.gnome.org/GnomeShell" +license=('GPL2') +depends=('mutter' 'gconf' 'dconf' 'gjs' 'gnome-menus' 'gnome-desktop' 'libcroco' 'libcanberra' 'libpulse' 'telepathy-glib' 'polkit-gnome' + 'gobject-introspection' 'evolution-data-server' 'gnome-bluetooth' 'gstreamer0.10' 'telepathy-logger') +makedepends=('intltool' 'gnome-doc-utils') +optdepends=('network-manager-applet: shell integration for networkmanager' + 'gnome-power-manager: shell integration for power management') +options=('!libtool' '!emptydirs') +install=gnome-shell.install +groups=(gnome) +source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2 + arch.patch + bluetoothstatus-always-update-devices.patch + shell-recorder-missing-XFree.patch) +sha256sums=('a44963877da895d9b9f1ea98617067c5e88a5c4b414c6ccf0fcbfacdeac7db95' + 'a35d5e5f9f781728070aecae3bfe329f49dadcd50ca2984e0fbdd2219825a0db' + 'f592752875085fceebdb27e65802e09c07edd7be57eec0da3edfcad5052be2ae' + '070edd5e720c063be41c158f39b7ef62a0d4a7f547ca0d23216104d5428ff971') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + patch -Np1 -i "${srcdir}/arch.patch" + patch -Np1 -i "${srcdir}/bluetoothstatus-always-update-devices.patch" + patch -Np1 -i "${srcdir}/shell-recorder-missing-XFree.patch" + + ./configure --prefix=/usr --sysconfdir=/etc \ + --libexecdir=/usr/lib/gnome-shell \ + --localstatedir=/var --disable-static \ + --disable-schemas-compile + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install + + install -m755 -d "${pkgdir}/usr/share/gconf/schemas" + gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-shell ${pkgdir}/etc/gconf/schemas/*.schemas + rm -f ${pkgdir}/etc/gconf/schemas/*.schemas +} diff --git a/testing/gnome-shell/arch.patch b/testing/gnome-shell/arch.patch new file mode 100644 index 000000000..67baefdcb --- /dev/null +++ b/testing/gnome-shell/arch.patch @@ -0,0 +1,12 @@ +diff -Nur gnome-shell.orig/data/org.gnome.shell.gschema.xml.in gnome-shell/data/org.gnome.shell.gschema.xml.in +--- gnome-shell.orig/data/org.gnome.shell.gschema.xml.in 2011-04-06 08:47:58.638600793 -0700 ++++ gnome-shell/data/org.gnome.shell.gschema.xml.in 2011-04-06 08:49:17.035274675 -0700 +@@ -30,7 +30,7 @@ + </_description> + </key> + <key name="favorite-apps" type="as"> +- <default>[ 'mozilla-firefox.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'openoffice.org-writer.desktop', 'nautilus.desktop' ]</default> ++ <default>[ 'firefox.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'writer.desktop', 'nautilus.desktop' ]</default> + <_summary>List of desktop file IDs for favorite applications</_summary> + <_description> + The applications corresponding to these identifiers diff --git a/testing/gnome-shell/bluetoothstatus-always-update-devices.patch b/testing/gnome-shell/bluetoothstatus-always-update-devices.patch new file mode 100644 index 000000000..0272169f5 --- /dev/null +++ b/testing/gnome-shell/bluetoothstatus-always-update-devices.patch @@ -0,0 +1,132 @@ +From 76fce94b66be7bdebbedcc3bce62898da51da15a Mon Sep 17 00:00:00 2001 +From: Giovanni Campagna <gcampagna@src.gnome.org> +Date: Wed, 13 Apr 2011 17:08:45 +0000 +Subject: BluetoothStatus: always update devices + +Previously, we skipped rebuilding device items in case the device +had already been seen, but this caused the connected switch not to +be updated. Now it has been refactored to update in case the device +changes, and to create only when the device is completely new. + +https://bugzilla.gnome.org/show_bug.cgi?id=647565 +--- +diff --git a/js/ui/status/bluetooth.js b/js/ui/status/bluetooth.js +index 070016a..cee2f90 100644 +--- a/js/ui/status/bluetooth.js ++++ b/js/ui/status/bluetooth.js +@@ -127,13 +127,6 @@ Indicator.prototype = { + } + }, + +- _deviceCompare: function(d1, d2) { +- return d1.device_path == d2.device_path && +- d1.bdaddr == d2.bdaddr && +- d1.can_connect == d2.can_connect && +- d1.capabilities == d2.capabilities; +- }, +- + _updateDevices: function() { + let devices = this._applet.get_devices(); + +@@ -142,12 +135,8 @@ Indicator.prototype = { + let item = this._deviceItems[i]; + let destroy = true; + for (let j = 0; j < devices.length; j++) { +- // we need to deep compare because BluetoothSimpleDevice is a boxed type +- // (but we take advantage of that, because _skip will disappear the next +- // time get_devices() is called) +- if (this._deviceCompare(item._device, devices[j])) { +- item.label.text = devices[j].alias; +- devices[j]._skip = true; ++ if (item._device.device_path == devices[j].device_path) { ++ this._updateDeviceItem(item, devices[j]); + destroy = false; + break; + } +@@ -162,7 +151,7 @@ Indicator.prototype = { + this._hasDevices = newlist.length > 0; + for (let i = 0; i < devices.length; i++) { + let d = devices[i]; +- if (d._skip) ++ if (d._item) + continue; + let item = this._createDeviceItem(d); + if (item) { +@@ -177,17 +166,55 @@ Indicator.prototype = { + this._deviceSep.actor.hide(); + }, + ++ _updateDeviceItem: function(item, device) { ++ if (!device.can_connect && device.capabilities == GnomeBluetoothApplet.Capabilities.NONE) { ++ item.destroy(); ++ return; ++ } ++ ++ let prevDevice = item._device; ++ let prevCapabilities = prevDevice.capabilities; ++ let prevCanConnect = prevDevice.can_connect; ++ ++ // adopt the new device object ++ item._device = device; ++ device._item = item; ++ ++ // update properties ++ item.label.text = device.alias; ++ ++ if (prevCapabilities != device.capabilities || ++ prevCanConnect != device.can_connect) { ++ // need to rebuild the submenu ++ item.menu.removeAll(); ++ this._buildDeviceSubMenu(item, device); ++ } ++ ++ // update connected property ++ if (device.can_connect) ++ item._connectedMenuitem.setToggleState(device.connected); ++ }, ++ + _createDeviceItem: function(device) { + if (!device.can_connect && device.capabilities == GnomeBluetoothApplet.Capabilities.NONE) + return null; + let item = new PopupMenu.PopupSubMenuMenuItem(device.alias); ++ ++ // adopt the device object, and add a back link + item._device = device; ++ device._item = item; + ++ this._buildDeviceSubMenu(item, device); ++ ++ return item; ++ }, ++ ++ _buildDeviceSubMenu: function(item, device) { + if (device.can_connect) { + item._connected = device.connected; +- let menuitem = new PopupMenu.PopupSwitchMenuItem(_("Connection"), device.connected); ++ item._connectedMenuitem = new PopupMenu.PopupSwitchMenuItem(_("Connection"), device.connected); + +- menuitem.connect('toggled', Lang.bind(this, function() { ++ item._connectedMenuitem.connect('toggled', Lang.bind(this, function() { + if (item._connected > ConnectionState.CONNECTED) { + // operation already in progress, revert + menuitem.setToggleState(menuitem.state); +@@ -217,7 +244,7 @@ Indicator.prototype = { + } + })); + +- item.menu.addMenuItem(menuitem); ++ item.menu.addMenuItem(item._connectedMenuitem); + } + + if (device.capabilities & GnomeBluetoothApplet.Capabilities.OBEX_PUSH) { +@@ -263,8 +290,6 @@ Indicator.prototype = { + default: + break; + } +- +- return item; + }, + + _updateFullMenu: function() { +-- +cgit v0.9 diff --git a/testing/gnome-shell/gnome-shell.install b/testing/gnome-shell/gnome-shell.install new file mode 100644 index 000000000..a07105c24 --- /dev/null +++ b/testing/gnome-shell/gnome-shell.install @@ -0,0 +1,22 @@ +pkgname=gnome-shell + +post_install() { + glib-compile-schemas usr/share/glib-2.0/schemas + usr/sbin/gconfpkg --install ${pkgname} +} + +pre_upgrade() { + pre_remove $1 +} + +post_upgrade() { + post_install $1 +} + +pre_remove() { + usr/sbin/gconfpkg --uninstall ${pkgname} +} + +post_remove() { + glib-compile-schemas usr/share/glib-2.0/schemas +} diff --git a/testing/gnome-shell/shell-recorder-missing-XFree.patch b/testing/gnome-shell/shell-recorder-missing-XFree.patch new file mode 100644 index 000000000..a7329166f --- /dev/null +++ b/testing/gnome-shell/shell-recorder-missing-XFree.patch @@ -0,0 +1,22 @@ +From 88df18345069c295e68d319606a11b7727b2bd4b Mon Sep 17 00:00:00 2001 +From: Maxim Ermilov <zaspire@rambler.ru> +Date: Tue, 24 May 2011 22:46:47 +0000 +Subject: shell-recorder: missing XFree + +https://bugzilla.gnome.org/show_bug.cgi?id=650934 +--- +diff --git a/src/shell-recorder.c b/src/shell-recorder.c +index 6555187..d297923 100644 +--- a/src/shell-recorder.c ++++ b/src/shell-recorder.c +@@ -412,6 +412,8 @@ recorder_fetch_cursor_image (ShellRecorder *recorder) + *(guint32 *)(data + i * stride + 4 * j) = cursor_image->pixels[i * cursor_image->width + j]; + + cairo_surface_mark_dirty (recorder->cursor_image); ++ ++ XFree (cursor_image); + } + + /* Overlay the cursor image on the frame. We draw the cursor image +-- +cgit v0.9 |