diff options
author | Naohiro Aota <naota@gentoo.org> | 2013-04-03 22:14:52 +0000 |
---|---|---|
committer | Naohiro Aota <naota@gentoo.org> | 2013-04-03 22:14:52 +0000 |
commit | c5fc72d1dcea679ba97de0399830dca0fbdd6957 (patch) | |
tree | eb1bbba099b3f220496816d05150548c1866f696 /app-i18n | |
parent | License of dev-tex/latex-calendar, bug 464114. (diff) | |
download | gentoo-2-c5fc72d1dcea679ba97de0399830dca0fbdd6957.tar.gz gentoo-2-c5fc72d1dcea679ba97de0399830dca0fbdd6957.tar.bz2 gentoo-2-c5fc72d1dcea679ba97de0399830dca0fbdd6957.zip |
Add patch to respect system keyboard layout. #460796
(Portage version: 2.2.0_alpha166/cvs/Linux x86_64, signed Manifest commit with key F8551514)
Diffstat (limited to 'app-i18n')
-rw-r--r-- | app-i18n/ibus/ChangeLog | 8 | ||||
-rw-r--r-- | app-i18n/ibus/files/ibus-1.5.1-use-system-keyboard-layout.patch | 85 | ||||
-rw-r--r-- | app-i18n/ibus/ibus-1.5.1-r2.ebuild | 176 |
3 files changed, 268 insertions, 1 deletions
diff --git a/app-i18n/ibus/ChangeLog b/app-i18n/ibus/ChangeLog index 4b59cce07363..0cff4cf2b95b 100644 --- a/app-i18n/ibus/ChangeLog +++ b/app-i18n/ibus/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for app-i18n/ibus # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-i18n/ibus/ChangeLog,v 1.120 2013/02/09 16:22:33 naota Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-i18n/ibus/ChangeLog,v 1.121 2013/04/03 22:14:52 naota Exp $ + +*ibus-1.5.1-r2 (03 Apr 2013) + + 03 Apr 2013; Naohiro Aota <naota@gentoo.org> + +files/ibus-1.5.1-use-system-keyboard-layout.patch, +ibus-1.5.1-r2.ebuild: + Add patch to respect system keyboard layout. #460796 *ibus-1.5.1-r1 (09 Feb 2013) diff --git a/app-i18n/ibus/files/ibus-1.5.1-use-system-keyboard-layout.patch b/app-i18n/ibus/files/ibus-1.5.1-use-system-keyboard-layout.patch new file mode 100644 index 000000000000..56d99a0b9478 --- /dev/null +++ b/app-i18n/ibus/files/ibus-1.5.1-use-system-keyboard-layout.patch @@ -0,0 +1,85 @@ +diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in +index dbb6da8..54ccb4c 100644 +--- a/data/ibus.schemas.in ++++ b/data/ibus.schemas.in +@@ -224,7 +224,7 @@ + <applyto>/desktop/ibus/general/use_system_keyboard_layout</applyto> + <owner>ibus</owner> + <type>bool</type> +- <default>true</default> ++ <default>false</default> + <locale name="C"> + <short>Use system keyboard layout</short> + <long>Use system keyboard (XKB) layout</long> +diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala +index 24e6b2e..18ef5c0 100644 +--- a/ui/gtk3/panel.vala ++++ b/ui/gtk3/panel.vala +@@ -48,6 +48,7 @@ class Panel : IBus.PanelService { + private Gtk.AboutDialog m_about_dialog; + private Gtk.CssProvider m_css_provider; + private int m_switcher_delay_time = 400; ++ private bool m_use_system_keyboard_layout = false; + private const string ACCELERATOR_SWITCH_IME_FOREWARD = "<Control>space"; + + private GLib.List<Keybinding> m_keybindings = new GLib.List<Keybinding>(); +@@ -265,6 +266,22 @@ class Panel : IBus.PanelService { + } + } + ++ private void set_use_system_keyboard_layout(Variant? variant) { ++ Variant var_use_system_kbd_layout = variant; ++ ++ if (var_use_system_kbd_layout == null) { ++ var_use_system_kbd_layout = m_config.get_value( ++ "general", ++ "use_system_keyboard_layout"); ++ } ++ ++ if (var_use_system_kbd_layout == null) { ++ return; ++ } ++ ++ m_use_system_keyboard_layout = var_use_system_kbd_layout.get_boolean(); ++ } ++ + public void set_config(IBus.Config config) { + if (m_config != null) { + m_config.value_changed.disconnect(config_value_changed_cb); +@@ -278,9 +295,13 @@ class Panel : IBus.PanelService { + m_config.watch("general", "preload_engines"); + m_config.watch("general", "engines_order"); + m_config.watch("general", "switcher_delay_time"); ++ m_config.watch("general", "use_system_keyboard_layout"); + m_config.watch("general/hotkey", "triggers"); + m_config.watch("panel", "custom_font"); + m_config.watch("panel", "use_custom_font"); ++ // Update m_use_system_keyboard_layout before update_engines() ++ // is called. ++ set_use_system_keyboard_layout(null); + update_engines(m_config.get_value("general", "preload_engines"), + m_config.get_value("general", "engines_order")); + unbind_switch_shortcut(); +@@ -352,7 +373,9 @@ class Panel : IBus.PanelService { + return; + } + // set xkb layout +- exec_setxkbmap(engine); ++ if (!m_use_system_keyboard_layout) { ++ exec_setxkbmap(engine); ++ } + } + + private void config_value_changed_cb(IBus.Config config, +@@ -380,6 +403,11 @@ class Panel : IBus.PanelService { + set_switcher_delay_time(variant); + return; + } ++ ++ if (section == "general" && name == "use_system_keyboard_layout") { ++ set_use_system_keyboard_layout(variant); ++ return; ++ } + } + + private void handle_engine_switch(Gdk.Event event, bool revert) { diff --git a/app-i18n/ibus/ibus-1.5.1-r2.ebuild b/app-i18n/ibus/ibus-1.5.1-r2.ebuild new file mode 100644 index 000000000000..59a65b0cd51f --- /dev/null +++ b/app-i18n/ibus/ibus-1.5.1-r2.ebuild @@ -0,0 +1,176 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-i18n/ibus/ibus-1.5.1-r2.ebuild,v 1.1 2013/04/03 22:14:52 naota Exp $ + +EAPI=4 +PYTHON_DEPEND="python? 2:2.5" +VALA_MIN_API_VERSION="0.18" +VALA_USE_DEPEND="vapigen" +# Vapigen is needed for the vala binding +# Valac is needed when building from git for the engine + +inherit eutils gnome2-utils multilib python vala virtualx + +DESCRIPTION="Intelligent Input Bus for Linux / Unix OS" +HOMEPAGE="http://code.google.com/p/ibus/" +SRC_URI="http://ibus.googlecode.com/files/${P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +# USE=vala is temporaly removed due to fix patch: +# ${P}-use-system-keyboard-layout.patch +IUSE="dconf deprecated +gconf gtk +gtk3 +introspection nls +python test +X" +REQUIRED_USE="|| ( gtk gtk3 X ) + deprecated? ( python ) + python? ( || ( deprecated ( gtk3 introspection ) ) )" #342903 + +COMMON_DEPEND=">=dev-libs/glib-2.26:2 + gnome-base/librsvg:2 + sys-apps/dbus[X?] + app-text/iso-codes + + dconf? ( >=gnome-base/dconf-0.13.4 ) + gconf? ( >=gnome-base/gconf-2.12:2 ) + gtk? ( x11-libs/gtk+:2 ) + gtk3? ( x11-libs/gtk+:3 ) + X? ( + x11-libs/libX11 + x11-libs/gtk+:2 ) + introspection? ( >=dev-libs/gobject-introspection-0.6.8 ) + nls? ( virtual/libintl )" +RDEPEND="${COMMON_DEPEND} + python? ( + dev-python/pyxdg + deprecated? ( + >=dev-python/dbus-python-0.83 + dev-python/pygobject:2 + dev-python/pygtk:2 ) + gtk3? ( + dev-python/pygobject:3 + x11-libs/gdk-pixbuf:2[introspection] + x11-libs/pango[introspection] + x11-libs/gtk+:3[introspection] ) + )" +DEPEND="${COMMON_DEPEND} + >=dev-lang/perl-5.8.1 + dev-util/gtk-doc-am + dev-util/intltool + virtual/pkgconfig + nls? ( >=sys-devel/gettext-0.16.1 ) + $(vala_depend)" + +# stress test in bus/ fails +# IBUS-CRITICAL **: bus_test_client_init: assertion `ibus_bus_is_connected (_bus)' failed +RESTRICT="test" + +DOCS="AUTHORS ChangeLog NEWS README" + +pkg_setup() { + if use python; then + python_set_active_version 2 + python_pkg_setup + fi +} + +src_prepare() { + # We run "dconf update" in pkg_postinst/postrm to avoid sandbox violations + sed -e 's/dconf update/$(NULL)/' \ + -i data/dconf/Makefile.{am,in} || die + use python && python_clean_py-compile_files + vala_src_prepare + epatch "${FILESDIR}"/${P}-setup.patch \ + "${FILESDIR}"/${P}-queue-events.patch \ + "${FILESDIR}"/${P}-use-system-keyboard-layout.patch + cp "${S}"/client/gtk2/ibusimcontext.c "${S}"/client/gtk3/ibusimcontext.c || die +} + +src_configure() { + local python_conf + if use python; then + # We cannot call $(PYTHON) if we haven't called python_pkg_setup + python_conf="PYTHON=$(PYTHON) + $(use_enable deprecated python-library) + $(use_enable gtk3 setup)" + else + python_conf="--disable-python-library --disable-setup" + fi + econf \ + $(use_enable dconf) \ + $(use_enable introspection) \ + $(use_enable gconf) \ + $(use_enable gtk gtk2) \ + $(use_enable gtk xim) \ + $(use_enable gtk3) \ + $(use_enable gtk3 ui) \ + $(use_enable nls) \ + $(use_enable test tests) \ + $(use_enable X xim) \ + --enable-vala \ + ${python_conf} +} + +src_test() { + unset DBUS_SESSION_BUS_ADDRESS + Xemake check || die +} + +src_install() { + default + + find "${ED}" -name '*.la' -exec rm -f {} + + + insinto /etc/X11/xinit/xinput.d + newins xinput-ibus ibus.conf + + keepdir /usr/share/ibus/{engine,icons} #289547 +} + +pkg_preinst() { + use gconf && gnome2_gconf_savelist + gnome2_icon_savelist +} + +pkg_postinst() { + if use dconf; then + ebegin "Updating dconf system databases" + dconf update + eend $? + fi + use gconf && gnome2_gconf_install + use gtk && gnome2_query_immodules_gtk2 + use gtk3 && gnome2_query_immodules_gtk3 + use deprecated && python_mod_optimize ${PN} + use python && use gtk3 && python_mod_optimize /usr/share/${PN} + gnome2_icon_cache_update + + elog "To use ibus, you should:" + elog "1. Get input engines from sunrise overlay." + elog " Run \"emerge -s ibus-\" in your favorite terminal" + elog " for a list of packages we already have." + elog + elog "2. Setup ibus:" + elog + elog " $ ibus-setup" + elog + elog "3. Set the following in your user startup scripts" + elog " such as .xinitrc, .xsession or .xprofile:" + elog + elog " export XMODIFIERS=\"@im=ibus\"" + elog " export GTK_IM_MODULE=\"ibus\"" + elog " export QT_IM_MODULE=\"xim\"" + elog " ibus-daemon -d -x" +} + +pkg_postrm() { + if use dconf; then + ebegin "Updating dconf system databases" + dconf update + eend $? + fi + use gtk && gnome2_query_immodules_gtk2 + use gtk3 && gnome2_query_immodules_gtk3 + use deprecated && python_mod_cleanup ${PN} + use python && use gtk3 && python_mod_cleanup /usr/share/${PN} + gnome2_icon_cache_update +} |