summaryrefslogtreecommitdiff
path: root/extra/xfce4-xkb-plugin
diff options
context:
space:
mode:
authorParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
committerParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
commit415856bdd4f48ab4f2732996f0bae58595092bbe (patch)
treeede2018b591f6dfb477fe9341ba17b9bc000fab9 /extra/xfce4-xkb-plugin
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'extra/xfce4-xkb-plugin')
-rw-r--r--extra/xfce4-xkb-plugin/PKGBUILD43
-rw-r--r--extra/xfce4-xkb-plugin/crashfix.diff34
-rw-r--r--extra/xfce4-xkb-plugin/xfce4-xkb-plugin-0.5.3.3-libxklavier.patch30
3 files changed, 107 insertions, 0 deletions
diff --git a/extra/xfce4-xkb-plugin/PKGBUILD b/extra/xfce4-xkb-plugin/PKGBUILD
new file mode 100644
index 000000000..2cabd66df
--- /dev/null
+++ b/extra/xfce4-xkb-plugin/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 107269 2011-01-22 22:04:45Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=xfce4-xkb-plugin
+pkgver=0.5.3.3
+pkgrel=4
+pkgdesc="plugin to switch keyboard layouts for the Xfce4 panel"
+arch=(i686 x86_64)
+license=('custom')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-xkb-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4' 'libxklavier>=5.0' 'librsvg')
+makedepends=('intltool')
+options=('!libtool')
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/0.5/${pkgname}-${pkgver}.tar.gz
+ xfce4-xkb-plugin-0.5.3.3-libxklavier.patch
+ crashfix.diff)
+md5sums=('b233cc9de1cbace075eaf6e2c9a8e685'
+ '781165ce1bc08059ae8e846c45c0bab2'
+ '4faeaaea7d294cbad2972af964508086')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i "${srcdir}/xfce4-xkb-plugin-0.5.3.3-libxklavier.patch"
+
+ # https://bugs.archlinux.org/task/21067 - http://bugzilla.xfce.org/show_bug.cgi?id=6477
+ patch -Np1 -i ${srcdir}/crashfix.diff
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/extra/xfce4-xkb-plugin/crashfix.diff b/extra/xfce4-xkb-plugin/crashfix.diff
new file mode 100644
index 000000000..5ccfbaa3c
--- /dev/null
+++ b/extra/xfce4-xkb-plugin/crashfix.diff
@@ -0,0 +1,34 @@
+From 52dc725bf5e44a0ab0064daebffe7ff139da0f78 Mon Sep 17 00:00:00 2001
+From: Lionel Le Folgoc <mrpouit@gmail.com>
+Date: Fri, 24 Sep 2010 21:28:49 +0200
+Subject: Handle cases when the keyboard model is empty
+
+gtk_combo_box_get_active_iter () does not set the iter, and a call to
+gtk_tree_model_get () using this iter will crash. Thus, check the return value
+of gtk_combo_box_get_active_iter () before using the iter.
+---
+ panel-plugin/xkb-settings-dialog.c | 8 +++++---
+ 1 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/panel-plugin/xkb-settings-dialog.c b/panel-plugin/xkb-settings-dialog.c
+index 178ec5f..37a0a9a 100644
+--- a/panel-plugin/xkb-settings-dialog.c
++++ b/panel-plugin/xkb-settings-dialog.c
+@@ -831,9 +831,11 @@ xkb_settings_update_from_ui (t_xkb *xkb)
+ gint i = 0;
+
+ model = GTK_TREE_MODEL (xkb->combo_store);
+- gtk_combo_box_get_active_iter (GTK_COMBO_BOX (xkb->kbd_model_combo), &iter);
+- gtk_tree_model_get (model, &iter, NOM, &kbdmodel, -1);
+- kbd_config->model = kbdmodel;
++ if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (xkb->kbd_model_combo), &iter))
++ {
++ gtk_tree_model_get (model, &iter, NOM, &kbdmodel, -1);
++ kbd_config->model = kbdmodel;
++ }
+
+ model = GTK_TREE_MODEL (xkb->toggle_options_store);
+ if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (xkb->toggle_options_combo), &iter))
+--
+1.7.1
+
diff --git a/extra/xfce4-xkb-plugin/xfce4-xkb-plugin-0.5.3.3-libxklavier.patch b/extra/xfce4-xkb-plugin/xfce4-xkb-plugin-0.5.3.3-libxklavier.patch
new file mode 100644
index 000000000..5b9dc5401
--- /dev/null
+++ b/extra/xfce4-xkb-plugin/xfce4-xkb-plugin-0.5.3.3-libxklavier.patch
@@ -0,0 +1,30 @@
+diff -ur xfce4-xkb-plugin-0.5.3.3.orig/panel-plugin/xkb-config.c xfce4-xkb-plugin-0.5.3.3/panel-plugin/xkb-config.c
+--- xfce4-xkb-plugin-0.5.3.3.orig/panel-plugin/xkb-config.c 2009-03-06 15:16:03.000000000 +0200
++++ xfce4-xkb-plugin-0.5.3.3/panel-plugin/xkb-config.c 2009-07-20 18:40:34.000000000 +0300
+@@ -150,7 +150,7 @@
+ config->application_map = g_hash_table_new (g_direct_hash, NULL);
+
+ registry = xkl_config_registry_get_instance (config->engine);
+- xkl_config_registry_load (registry);
++ xkl_config_registry_load (registry, FALSE);
+
+ config_item = xkl_config_item_new ();
+
+@@ -214,7 +214,7 @@
+
+ gdk_window_remove_filter (NULL, (GdkFilterFunc) handle_xevent, NULL);
+
+- xkl_engine_stop_listen (config->engine);
++ xkl_engine_stop_listen (config->engine, XKLL_TRACK_KEYBOARD_STATE);
+ }
+
+ gint
+@@ -547,7 +547,7 @@
+ if (!config) return NULL;
+
+ registry = xkl_config_registry_get_instance (config->engine);
+- xkl_config_registry_load (registry);
++ xkl_config_registry_load (registry, FALSE);
+
+ return registry;
+ }