Bug 633291 - Handle Shift-keys in X11 gdk_test_simulate_key()
If a level 1 key maps to a key value passed to gdk_test_simulate_key(), raise the GDK_SHIFT_MASK flag so the reqested key value is generated. Also add a regression test for this fix.
This commit is contained in:
@ -94,12 +94,17 @@ _gdk_x11_window_simulate_key (GdkWindow *window,
|
||||
{
|
||||
gint i;
|
||||
for (i = 0; i < n_keys; i++)
|
||||
if (keys[i].group == 0 && keys[i].level == 0)
|
||||
if (keys[i].group == 0 && (keys[i].level == 0 || keys[i].level == 1))
|
||||
{
|
||||
xev.keycode = keys[i].keycode;
|
||||
if (keys[i].level == 1)
|
||||
{
|
||||
/* Assume shift takes us to level 1 */
|
||||
xev.state |= GDK_SHIFT_MASK;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (i >= n_keys) /* no match for group==0 and level==0 */
|
||||
if (i >= n_keys) /* no match for group==0 and level==0 or 1 */
|
||||
xev.keycode = keys[0].keycode;
|
||||
}
|
||||
g_free (keys);
|
||||
|
||||
Reference in New Issue
Block a user