parent
dfb07a5cfc
commit
fb2517c71f
@ -1,119 +0,0 @@
|
|||||||
Description: Avoid polluting the x11 shortcut map
|
|
||||||
When user presses a key, but this key was not previously registered as a
|
|
||||||
shortcut, the shortcut map is polluted with "" entry.
|
|
||||||
.
|
|
||||||
This could cause an error when the shortcut is not set after clicking OK in the
|
|
||||||
keybinding editing dialog and you are told that shortcut "" is being used
|
|
||||||
instead (in the logs).
|
|
||||||
Author: Roman Kapl <code@rkapl.cz>
|
|
||||||
Origin: backport
|
|
||||||
Bug: https://github.com/lxde/lxqt-globalkeys/pull/50
|
|
||||||
Applied-Upstream: commit:c79d560
|
|
||||||
Last-Update: 2018-02-05
|
|
||||||
--- a/daemon/core.cpp
|
|
||||||
+++ b/daemon/core.cpp
|
|
||||||
@@ -1316,59 +1316,64 @@ void Core::run()
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
- QString shortcut = mShortcutByX11[qMakePair(static_cast<KeyCode>(event.xkey.keycode), event.xkey.state & allShifts)];
|
|
||||||
- log(LOG_DEBUG, "KeyPress %08x %08x %s", event.xkey.state & allShifts, event.xkey.keycode, qPrintable(shortcut));
|
|
||||||
-
|
|
||||||
- IdsByShortcut::iterator idsByShortcut = mIdsByShortcut.find(shortcut);
|
|
||||||
- if (idsByShortcut != mIdsByShortcut.end())
|
|
||||||
+ X11Shortcut shortcutKey = qMakePair(static_cast<KeyCode>(event.xkey.keycode), event.xkey.state & allShifts);
|
|
||||||
+ ShortcutByX11::const_iterator shortcutIt = mShortcutByX11.constFind(shortcutKey);
|
|
||||||
+ if(shortcutIt != mShortcutByX11.constEnd())
|
|
||||||
{
|
|
||||||
- Ids &ids = idsByShortcut.value();
|
|
||||||
- switch (mMultipleActionsBehaviour)
|
|
||||||
- {
|
|
||||||
- case MULTIPLE_ACTIONS_BEHAVIOUR_FIRST:
|
|
||||||
- {
|
|
||||||
- Ids::iterator lastIds = ids.end();
|
|
||||||
- for (Ids::iterator idi = ids.begin(); idi != lastIds; ++idi)
|
|
||||||
- if (mShortcutAndActionById[*idi].second->call())
|
|
||||||
- {
|
|
||||||
- break;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- break;
|
|
||||||
+ const QString& shortcut = shortcutIt.value();
|
|
||||||
+ log(LOG_DEBUG, "KeyPress %08x %08x %s", event.xkey.state & allShifts, event.xkey.keycode, qPrintable(shortcut));
|
|
||||||
|
|
||||||
- case MULTIPLE_ACTIONS_BEHAVIOUR_LAST:
|
|
||||||
+ IdsByShortcut::iterator idsByShortcut = mIdsByShortcut.find(shortcut);
|
|
||||||
+ if (idsByShortcut != mIdsByShortcut.end())
|
|
||||||
{
|
|
||||||
- Ids::iterator firstIds = ids.begin();
|
|
||||||
- for (Ids::iterator idi = ids.end(); idi != firstIds;)
|
|
||||||
+ Ids &ids = idsByShortcut.value();
|
|
||||||
+ switch (mMultipleActionsBehaviour)
|
|
||||||
{
|
|
||||||
- --idi;
|
|
||||||
- if (mShortcutAndActionById[*idi].second->call())
|
|
||||||
- {
|
|
||||||
- break;
|
|
||||||
- }
|
|
||||||
+ case MULTIPLE_ACTIONS_BEHAVIOUR_FIRST:
|
|
||||||
+ {
|
|
||||||
+ Ids::iterator lastIds = ids.end();
|
|
||||||
+ for (Ids::iterator idi = ids.begin(); idi != lastIds; ++idi)
|
|
||||||
+ if (mShortcutAndActionById[*idi].second->call())
|
|
||||||
+ {
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
- }
|
|
||||||
- break;
|
|
||||||
+ break;
|
|
||||||
|
|
||||||
- case MULTIPLE_ACTIONS_BEHAVIOUR_NONE:
|
|
||||||
- if (ids.size() == 1)
|
|
||||||
+ case MULTIPLE_ACTIONS_BEHAVIOUR_LAST:
|
|
||||||
{
|
|
||||||
- mShortcutAndActionById[*(ids.begin())].second->call();
|
|
||||||
+ Ids::iterator firstIds = ids.begin();
|
|
||||||
+ for (Ids::iterator idi = ids.end(); idi != firstIds;)
|
|
||||||
+ {
|
|
||||||
+ --idi;
|
|
||||||
+ if (mShortcutAndActionById[*idi].second->call())
|
|
||||||
+ {
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
- case MULTIPLE_ACTIONS_BEHAVIOUR_ALL:
|
|
||||||
- {
|
|
||||||
- Ids::iterator lastIds = ids.end();
|
|
||||||
- for (Ids::iterator idi = ids.begin(); idi != lastIds; ++idi)
|
|
||||||
+ case MULTIPLE_ACTIONS_BEHAVIOUR_NONE:
|
|
||||||
+ if (ids.size() == 1)
|
|
||||||
+ {
|
|
||||||
+ mShortcutAndActionById[*(ids.begin())].second->call();
|
|
||||||
+ }
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ case MULTIPLE_ACTIONS_BEHAVIOUR_ALL:
|
|
||||||
{
|
|
||||||
- mShortcutAndActionById[*idi].second->call();
|
|
||||||
+ Ids::iterator lastIds = ids.end();
|
|
||||||
+ for (Ids::iterator idi = ids.begin(); idi != lastIds; ++idi)
|
|
||||||
+ {
|
|
||||||
+ mShortcutAndActionById[*idi].second->call();
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
- }
|
|
||||||
- break;
|
|
||||||
+ break;
|
|
||||||
|
|
||||||
- default:
|
|
||||||
- ;
|
|
||||||
+ default:
|
|
||||||
+ ;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,25 +0,0 @@
|
|||||||
Description: Fix wrong radio buttons when changing shortcuts
|
|
||||||
When the dialog box was displayed, the radio buttons were not
|
|
||||||
initialized correctly if a client-type action was to be modified.
|
|
||||||
Author: ska67 <git17@ska67.de>
|
|
||||||
Origin: backport
|
|
||||||
Bug: https://github.com/lxde/lxqt/issues/1376
|
|
||||||
Applied-Upstream: commit:a9ec3c0
|
|
||||||
Last-Update: 2018-02-05
|
|
||||||
--- a/config/edit_action_dialog.cpp
|
|
||||||
+++ b/config/edit_action_dialog.cpp
|
|
||||||
@@ -197,6 +197,14 @@ bool EditActionDialog::load(qulonglong i
|
|
||||||
else
|
|
||||||
{
|
|
||||||
command_PTE->clear();
|
|
||||||
+
|
|
||||||
+ // To disable all radio boxes, once one has been selected, we need to turn exclusivity off temporarily
|
|
||||||
+ command_RB->setAutoExclusive(false);
|
|
||||||
+ dbus_method_RB->setAutoExclusive(false);
|
|
||||||
+ command_RB->setChecked(false);
|
|
||||||
+ dbus_method_RB->setChecked(false);
|
|
||||||
+ command_RB->setAutoExclusive(true);
|
|
||||||
+ dbus_method_RB->setAutoExclusive(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
description_LE->setEnabled(canEdit);
|
|
@ -1,3 +0,0 @@
|
|||||||
# Ubuntu-specific patches
|
|
||||||
fix-wrong-radio-buttons.patch
|
|
||||||
avoid-polluting-x11-shortcut-map.patch
|
|
Loading…
Reference in new issue