diff options
author | Parabola <dev@list.parabolagnulinux.org> | 2011-04-05 14:26:38 +0000 |
---|---|---|
committer | Parabola <dev@list.parabolagnulinux.org> | 2011-04-05 14:26:38 +0000 |
commit | 415856bdd4f48ab4f2732996f0bae58595092bbe (patch) | |
tree | ede2018b591f6dfb477fe9341ba17b9bc000fab9 /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/PKGBUILD | 43 | ||||
-rw-r--r-- | extra/xfce4-xkb-plugin/crashfix.diff | 34 | ||||
-rw-r--r-- | extra/xfce4-xkb-plugin/xfce4-xkb-plugin-0.5.3.3-libxklavier.patch | 30 |
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; + } |