summaryrefslogtreecommitdiff
path: root/testing/gnome-shell
diff options
context:
space:
mode:
authorroot <root@rshg047.dnsready.net>2011-07-06 23:10:44 +0000
committerroot <root@rshg047.dnsready.net>2011-07-06 23:10:44 +0000
commitb215b5e985b9310dff8d992510f12a87141fe7cb (patch)
treebc81c9c0c02ab9a4d6ee15e553850141b8d46f94 /testing/gnome-shell
parent9d2caacbc33de06407311a5da87e5d22e0266435 (diff)
Wed Jul 6 23:10:44 UTC 2011
Diffstat (limited to 'testing/gnome-shell')
-rw-r--r--testing/gnome-shell/PKGBUILD50
-rw-r--r--testing/gnome-shell/arch.patch12
-rw-r--r--testing/gnome-shell/bluetoothstatus-always-update-devices.patch132
-rw-r--r--testing/gnome-shell/gnome-shell.install22
-rw-r--r--testing/gnome-shell/shell-recorder-missing-XFree.patch22
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..b10afff70
--- /dev/null
+++ b/testing/gnome-shell/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 130217 2011-07-04 12:56:15Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Flamelab <panosfilip@gmail.com
+
+pkgname=gnome-shell
+pkgver=3.0.2
+pkgrel=2
+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