mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-08-25 14:22:54 -06:00
CtrlCore: Fixed issue with Ctrl+Shift+1 in GTK
git-svn-id: svn://ultimatepp.org/upp/trunk@11732 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
b907297904
commit
c72ca7dee8
1 changed files with 19 additions and 1 deletions
|
|
@ -446,8 +446,26 @@ void Ctrl::Proc()
|
|||
Tuple2<int, int> *x = FindTuple(cv, __countof(cv), kv);
|
||||
if(x)
|
||||
kv = x->b;
|
||||
else
|
||||
else {
|
||||
if(GetCtrl() | GetAlt()) {// fix Ctrl+Shift+1 etc...
|
||||
static VectorMap<int, int> hwkv;
|
||||
ONCELOCK {
|
||||
for(int k : { GDKEY(0), GDKEY(1), GDKEY(2), GDKEY(3), GDKEY(4),
|
||||
GDKEY(5), GDKEY(6), GDKEY(7), GDKEY(8), GDKEY(9) }) {
|
||||
GdkKeymapKey *keys;
|
||||
gint n_keys;
|
||||
if(gdk_keymap_get_entries_for_keyval(NULL, k, &keys, &n_keys)) {
|
||||
for(int j = 0; j < n_keys; j++)
|
||||
if(keys[j].group == 0)
|
||||
hwkv.Add(keys[j].keycode, k);
|
||||
g_free(keys);
|
||||
}
|
||||
}
|
||||
};
|
||||
kv = hwkv.Get(hw, kv);
|
||||
}
|
||||
kv += K_DELTA;
|
||||
}
|
||||
if(GetShift() && kv != K_SHIFT_KEY)
|
||||
kv |= K_SHIFT;
|
||||
if(GetCtrl() && kv != K_CTRL_KEY)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue