# ChangeLog for kde-base/systemsettings
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/kde-base/systemsettings/ChangeLog,v 1.125 2011/12/11 18:52:33 alexxy Exp $
+# $Header: /var/cvsroot/gentoo-x86/kde-base/systemsettings/ChangeLog,v 1.126 2011/12/13 15:32:16 johu Exp $
+
+*systemsettings-4.7.3-r1 (13 Dec 2011)
+
+ 13 Dec 2011; Johannes Huber <johu@gentoo.org>
+ +files/systemsettings-4.7.3-fix-keyboard-layout-switch.patch,
+ +systemsettings-4.7.3-r1.ebuild:
+ Revision bump. Add upstream backport patch to fix non standard global keyboard
+ layout switch. Fixes bug #394491 Thanks to Denis Scherbakov
+ <denis_scherbakov@yahoo.comi>.
*systemsettings-4.7.4 (11 Dec 2011)
-----BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA256
+Hash: SHA512
AUX systemsettings-4.4.2-xinerama_cmake_automagic.patch 923 RMD160 45519a7e51001e6f16cf4bc13f7ef99eeaff793a SHA1 22102eaa95aa07bce19262842fcda69e0bc751f0 SHA256 c1f605148ba9ea606924c934a3b79bb7b415346a3fbe2e7c1732cc6956a44157
+AUX systemsettings-4.7.3-fix-keyboard-layout-switch.patch 3944 RMD160 df7141b0096e93cadad539108d2ede2d1e751ba0 SHA1 1de7289c0d986196604f093d3a3fb71038b0a03a SHA256 0d3ab5f702853c2537a9f932308b1103678b8d676cf84ec42dff940f64736fc9
DIST kde-workspace-4.7.3.tar.bz2 20556738 RMD160 c7298c81c978a722f54e033afe169111d2dfd438 SHA1 f3ed24e3e70671033718a5139cb61d0d7e2e709e SHA256 7403fc5ff78de55b1f9b6a1116001be3ad7906720521959d1f5de8c86677ac5e
DIST kde-workspace-4.7.4.tar.bz2 20557567 RMD160 94f1a36b3881276663a559a57dbd210d50ede06b SHA1 b7810ba13f6f2a1c4783b153ad9349a1dd27b495 SHA256 175cdc6a72e89b3b0f859fd06712947f485aecf507896f637e49f3dbac4d43b6
DIST kdebase-workspace-4.6.3.tar.bz2 69349331 RMD160 ae7928eb7f524564890181a8862e657cf13727f6 SHA1 50103b7752defbab08965b665fa95361bb5b3ff6 SHA256 ab11dbfc48b94a4cb867436d91aa80a3677bdb6e49a6df8cc1c70a4f8dd5868d
DIST kdebase-workspace-4.6.5.tar.bz2 69241659 RMD160 580bcfe80aeb70dc7c2ef559338a58c41227e476 SHA1 bdcdbf235b3e3941b968f57afd3d490e7ca106e5 SHA256 4df66edf88df327d10d131536e6daebdeae449fb75eebc6bfae67cf3128093c0
EBUILD systemsettings-4.6.3.ebuild 2133 RMD160 5d5c18a1bf6476c9d67896e7ce3f25f4d2edb246 SHA1 db68165d7be88738be36d119b9ee4caecfe4928c SHA256 3f6ac90a9a857e5d337a804a8fd40b4dbecf1b90ce4d4010c21f7d0db409ec8b
EBUILD systemsettings-4.6.5.ebuild 2134 RMD160 6f96e69f037c37210686340dd2454c5175a766f5 SHA1 5c2b5bc09d4de69e39eecefe2f61fdee6e829ba3 SHA256 70f74d28d21f398b4427c3e7528181ca6267e103b36e90e2b74ab0f6ab4ae41d
+EBUILD systemsettings-4.7.3-r1.ebuild 2207 RMD160 a302c618cd9e0fde5605ae41490730010df16be8 SHA1 e232c05e1b1eacfde85387f0246d099ee5826fc9 SHA256 add2ceef7154423224d338ff2008b322d36bebe15ef53b6f6a35e70f97c5fcd7
EBUILD systemsettings-4.7.3.ebuild 2151 RMD160 ba82aba86d1a95a3ad75ddb1f24ad1517afcabc7 SHA1 5b51ba29af6779bbf3290b37f15b86c2b27524b2 SHA256 889f1655fda94e819581dae06cf1ff11ae80fb7945a016489cba866edb682007
EBUILD systemsettings-4.7.4.ebuild 2151 RMD160 ad00339ebaba6bef7e2b8655adffba2f6367c3cd SHA1 cf0700dbad3183263b0c2c8ecfa3e3ad18f15a0b SHA256 a00ebe980227f904a7064d8736635e294582f5a98edaf59b38008dfee2f4787d
-MISC ChangeLog 18105 RMD160 752c6497e4a3dbcb7d31ff4483eaf2b4e8d2ebe5 SHA1 cbc1c662f56bc4187f843ea49fd53383251b3283 SHA256 d7c7b51f9c55fffb958bb571bbbd8a8c79b7b91f650eb33e7959473be6f1a863
+MISC ChangeLog 18467 RMD160 3debe37f7e6f897e6dfc09000710b2863471fd75 SHA1 6173a591ab24ff94027cd5efb901376158d1cb42 SHA256 c68dde7c221f36102bc0726480aa3939b825bf24ccd95557eabce9d67eceecc4
MISC metadata.xml 156 RMD160 ecce3b981f150c45ae1e84e2d208e678d6124259 SHA1 b64f7c0b4e5db816d82ad19848f72118af129d35 SHA256 2f4da28506b9d4185f320f67a6191d30c7a921217ed4447ed46ea0bc4aefc79a
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)
-iQIcBAEBCAAGBQJO5Pz1AAoJEOf+E+/4L5LmKxkP/0wxIEkUQAlLSzbq0jS17MbB
-Aos6KJDsjh2ndhKDFTWROTEk9RosOiWOvAifLMcRI1JXkbyXqE3Uuy45D6O/tUql
-6cYtxTc5nmNKcGsv8DCI11K7eKVn8MycyT+G4+JbD8nVcqbugH8mbxDSGlmgLjrU
-Qk8WMWdM8JqCXlq9W2W7BF5miSEzwtVD0PYrU6RgvWpg4KMCDpIQOmL4+NeGBAbd
-pMHYTB7yyCmvJhxwKcDyFm9JxwnaReVlIT73SFQnLPB0cd74h2bTzI+IZbQjT/Nj
-ZC83afPWLa51bjaDF9BnWoBDn0sdJyNIvaTpWKR+FFOwAbvMTYNv5luSKB7+Vwhz
-GjhWnVFZ3TXFuh6VneBcWp8i+AF5Yq7ihlt+eaZMd4dfnA3OB+qo+OG3AVDOWYGQ
-yImnlpj9kBh8s0d6lxR7O15DiWwLY6+jKBhK5srMMKq7CicKMZfw/xj6PovmL1j1
-uBJVw8DM9YRZTNSO0LO79PU/GhPZ21cHvQEmuB7f4QjYMDmmK6rFiUoob3yfMjTN
-zqQlL5yWkK3MLWpCNCtKpT0tg/hOYKXGR7msKFFBs1OTASOas6mEbWEK/uhl+hcx
-OsHXT273qDKnxslZIqM6cJ9fU/YBaGuweTk5/Ze4ufaKp/QVqwrDegvOxYc1vo4p
-TSZG7trA0XXNof4f38K3
-=/6wA
+iQEcBAEBCgAGBQJO52/6AAoJEO+t9ga+3I3acXcH/ib23SDEjfu1pUjYxc0P65aE
+rKKpW6zELm8NYcIl46OAJrYgQB1Bb7NjSoJ27G5JSxQXN7RxGJ1lW+02nn2nII2A
+vCg439d+g3Seo/sk5AqY9nC2isRMMuuC80VaewlKSGuiHSZTcs7bgMZ8qMyW5dDB
+w+8GR607u1gDHVu9MKzVAvrmZatNaY3PJ9K5MKYWrjWLXLctamq/Mhn/1U1dyOS7
+cIlTAjfIGBA6+Zdpcz68TAqvNm8PhCJhs6u5wplPTvjoJBAVDn6WUFIzDjGPLgDt
+l5lquBtHnrQi2A1DwOAF0lXnBCuL6qXlVIuiPtRCrsx8Rzsq7PdZjxqdkjFo26c=
+=QUl5
-----END PGP SIGNATURE-----
--- /dev/null
+commit 1ac5ebe482f633295fb4a79eb1c5236561e9ca70
+Author: Andriy Rysin <arysin@gmail.com>
+Date: Fri Nov 18 23:12:14 2011 -0500
+
+ Fix keyboard layout global shortcuts
+ BUG: 286302
+
+diff --git a/kcontrol/keyboard/bindings.cpp b/kcontrol/keyboard/bindings.cpp
+index 6f5af7b..ac20dd9 100644
+--- a/kcontrol/keyboard/bindings.cpp
++++ b/kcontrol/keyboard/bindings.cpp
+@@ -103,8 +103,11 @@ void KeyboardLayoutActionCollection::setLayoutShortcuts(QList<LayoutUnit>& layou
+ {
+ for (QList<LayoutUnit>::iterator i = layoutUnits.begin(); i != layoutUnits.end(); ++i) {
+ LayoutUnit& layoutUnit = *i;
+- createLayoutShortcutActon(layoutUnit, rules, false);
++ if( ! layoutUnit.getShortcut().isEmpty() ) {
++ createLayoutShortcutActon(layoutUnit, rules, false);
++ }
+ }
++ kDebug() << "Cleaning component shortcuts on save" << KGlobalAccel::cleanComponent(COMPONENT_NAME);
+ }
+
+ void KeyboardLayoutActionCollection::loadLayoutShortcuts(QList<LayoutUnit>& layoutUnits, const Rules* rules)
+@@ -112,19 +115,27 @@ void KeyboardLayoutActionCollection::loadLayoutShortcuts(QList<LayoutUnit>& layo
+ for (QList<LayoutUnit>::iterator i = layoutUnits.begin(); i != layoutUnits.end(); ++i) {
+ LayoutUnit& layoutUnit = *i;
+ KAction* action = createLayoutShortcutActon(layoutUnit, rules, true);
+- layoutUnit.setShortcut(action->globalShortcut(KAction::ActiveShortcut).primary()); // shortcut was restored
++ QKeySequence shortcut = action->globalShortcut(KAction::ActiveShortcut).primary(); // shortcut was restored
++ if( ! shortcut.isEmpty() ) {
++ kDebug() << "Restored shortcut for" << layoutUnit.toString() << shortcut;
++ layoutUnit.setShortcut(shortcut);
++ }
++ else {
++ kDebug() << "Skipping empty shortcut for" << layoutUnit.toString();
++ removeAction(action);
++ }
+ }
+ kDebug() << "Cleaning component shortcuts on load" << KGlobalAccel::cleanComponent(COMPONENT_NAME);
+ }
+
+-KAction* KeyboardLayoutActionCollection::getAction(const LayoutUnit& layoutUnit)
+-{
+- for(int i=1; i<actions().size(); i++) {
+- if( action(i)->data() == layoutUnit.toString() )
+- return static_cast<KAction*>(action(i));
+- }
+- return NULL;
+-}
++//KAction* KeyboardLayoutActionCollection::getAction(const LayoutUnit& layoutUnit)
++//{
++// for(int i=1; i<actions().size(); i++) {
++// if( action(i)->data() == layoutUnit.toString() )
++// return static_cast<KAction*>(action(i));
++// }
++// return NULL;
++//}
+
+ void KeyboardLayoutActionCollection::resetLayoutShortcuts()
+ {
+diff --git a/kcontrol/keyboard/bindings.h b/kcontrol/keyboard/bindings.h
+index f60656b..09a9bdc 100644
+--- a/kcontrol/keyboard/bindings.h
++++ b/kcontrol/keyboard/bindings.h
+@@ -36,7 +36,7 @@ public:
+ virtual ~KeyboardLayoutActionCollection();
+
+ KAction* getToggeAction();
+- KAction* getAction(const LayoutUnit& layoutUnit);
++// KAction* getAction(const LayoutUnit& layoutUnit);
+ KAction* createLayoutShortcutActon(const LayoutUnit& layoutUnit, const Rules* rules, bool autoload);
+ // KAction* setShortcut(LayoutUnit& layoutUnit, const QKeySequence& keySequence, const Rules* rules);
+ void setLayoutShortcuts(QList<LayoutUnit>& layoutUnits, const Rules* rules);
+diff --git a/kcontrol/keyboard/keyboard_daemon.cpp b/kcontrol/keyboard/keyboard_daemon.cpp
+index 1618d2a..7126268 100644
+--- a/kcontrol/keyboard/keyboard_daemon.cpp
++++ b/kcontrol/keyboard/keyboard_daemon.cpp
+@@ -214,12 +214,16 @@ void KeyboardDaemon::layoutMapChanged()
+
+ void KeyboardDaemon::switchToNextLayout()
+ {
++ kDebug() << "Toggling layout";
+ X11Helper::switchToNextLayout();
+ }
+
+ bool KeyboardDaemon::setLayout(QAction* action)
+ {
+- LayoutUnit layoutUnit(LayoutUnit(action->data().toString()));
++ if( action == actionCollection->getToggeAction() )
++ return false;
++
++ LayoutUnit layoutUnit(action->data().toString());
+ return LayoutsMenu::switchToLayout(layoutUnit, keyboardConfig); // need this to be able to switch to spare layouts
+ // return X11Helper::setLayout(LayoutUnit(action->data().toString()));
+ }
--- /dev/null
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/kde-base/systemsettings/systemsettings-4.7.3-r1.ebuild,v 1.1 2011/12/13 15:32:16 johu Exp $
+
+EAPI=4
+
+KDE_HANDBOOK="optional"
+KMNAME="kde-workspace"
+OPENGL_REQUIRED="optional"
+inherit kde4-meta
+
+DESCRIPTION="System settings utility"
+IUSE="debug gtk +usb xinerama"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+
+COMMONDEPEND="
+ dev-libs/glib:2
+ $(add_kdebase_dep libkworkspace)
+ media-libs/fontconfig
+ >=media-libs/freetype-2
+ >=x11-libs/libxklavier-3.2
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXft
+ x11-libs/libXrandr
+ x11-libs/libXtst
+ opengl? ( virtual/opengl )
+ usb? ( =virtual/libusb-0* )
+ xinerama? ( x11-libs/libXinerama )
+"
+DEPEND="${COMMONDEPEND}
+ x11-proto/kbproto
+ x11-proto/xextproto
+ xinerama? ( x11-proto/xineramaproto )
+"
+RDEPEND="${COMMONDEPEND}
+ sys-libs/timezone-data
+ x11-apps/setxkbmap
+ x11-misc/xkeyboard-config
+ gtk? ( kde-misc/kcm-gtk-config )
+"
+
+RESTRICT="test"
+# bug 393133
+
+KMEXTRA="
+ kcontrol/
+"
+KMEXTRACTONLY="
+ krunner/dbus/org.kde.krunner.App.xml
+ krunner/dbus/org.kde.screensaver.xml
+ kwin/
+ libs/
+ plasma/
+"
+
+add_blocker kdeaccessibility-colorschemes '<4.6.50'
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.4.2-xinerama_cmake_automagic.patch"
+ "${FILESDIR}/${P}-fix-keyboard-layout-switch.patch"
+)
+
+src_unpack() {
+ if use handbook; then
+ KMEXTRA+="
+ doc/kcontrol
+ doc/kfontview
+ "
+ fi
+
+ kde4-meta_src_unpack
+}
+
+src_prepare() {
+ sed -i -e 's/systemsettingsrc DESTINATION ${SYSCONF_INSTALL_DIR}/systemsettingsrc DESTINATION ${CONFIG_INSTALL_DIR}/' \
+ systemsettings/CMakeLists.txt \
+ || die "Failed to fix systemsettingsrc install location"
+
+ kde4-meta_src_prepare
+}
+
+# FIXME: is have_openglxvisual found without screensaver
+src_configure() {
+ # Old keyboard-detection code is unmaintained,
+ # so we force the new stuff, using libxklavier.
+ mycmakeargs=(
+ -DUSE_XKLAVIER=ON -DWITH_LibXKlavier=ON
+ -DWITH_GLIB2=ON -DWITH_GObject=ON
+ $(cmake-utils_use_with opengl OpenGL)
+ $(cmake-utils_use_with usb)
+ $(cmake-utils_use_with xinerama X11_Xinerama)
+ )
+
+ kde4-meta_src_configure
+}