Skip to content

Commit

Permalink
Don't block Alt + Shift when there is only one keyboard layout (#1756)
Browse files Browse the repository at this point in the history
  • Loading branch information
lenemter authored Sep 29, 2023
1 parent b9744dd commit 844eb95
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 1 deletion.
12 changes: 12 additions & 0 deletions data/gala.metainfo.xml.in
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,18 @@
<update_contact>contact_at_elementary.io</update_contact>

<releases>
<release version="7.1.3" date="2023-09-13" urgency="medium">
<description>
<p>Improvements:</p>
<ul>
<li>Updated translations</li>
</ul>
</description>
<issues>
<issue url="https://github.com/elementary/gala/issues/1261">Alt + Shift unnecessarily blocked when there is only one keyboard layout</issue>
</issues>
</release>

<release version="7.1.2" date="2023-08-10" urgency="medium">
<description>
<p>Improvements:</p>
Expand Down
22 changes: 21 additions & 1 deletion src/KeyboardManager.vala
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@
*/

public class Gala.KeyboardManager : Object {
private const string[] BLOCKED_OPTIONS = {
"grp:alt_caps_toggle", "grp:alt_shift_toggle", "grp:alt_space_toggle",
"grp:shifts_toggle", "grp:caps_toggle", "grp:ctrl_alt_toggle",
"grp:ctrl_shift_toggle", "grp:shift_caps_toggle"
};

private static KeyboardManager? instance;
private static VariantType sources_variant_type;
private static GLib.Settings settings;
Expand Down Expand Up @@ -90,7 +96,21 @@ public class Gala.KeyboardManager : Object {
}
}

var xkb_options = settings.get_strv ("xkb-options");
if (layouts.length == 0) {
layouts = { "us" };
variants = { "" };
}

string[] xkb_options = {};
if (layouts.length == 1) {
foreach (unowned var option in settings.get_strv ("xkb-options")) {
if (!(option in BLOCKED_OPTIONS)) {
xkb_options += option;
}
}
} else {
xkb_options = settings.get_strv ("xkb-options");
}

var layout = string.joinv (",", layouts);
var variant = string.joinv (",", variants);
Expand Down

0 comments on commit 844eb95

Please sign in to comment.