@@ -1393,21 +1393,21 @@ static void Wayland_UpdateKeymap(SDL_WaylandSeat *seat)
1393
1393
xkb_mod_mask_t xkb_mask ;
1394
1394
} const keymod_masks [] = {
1395
1395
{ SDL_KMOD_NONE , 0 },
1396
- { SDL_KMOD_SHIFT , seat -> keyboard .xkb .idx_shift },
1397
- { SDL_KMOD_CAPS , seat -> keyboard .xkb .idx_caps },
1398
- { SDL_KMOD_SHIFT | SDL_KMOD_CAPS , seat -> keyboard .xkb .idx_shift | seat -> keyboard .xkb .idx_caps },
1399
- { SDL_KMOD_MODE , seat -> keyboard .xkb .idx_mod5 },
1400
- { SDL_KMOD_MODE | SDL_KMOD_SHIFT , seat -> keyboard .xkb .idx_mod5 | seat -> keyboard .xkb .idx_shift },
1401
- { SDL_KMOD_MODE | SDL_KMOD_CAPS , seat -> keyboard .xkb .idx_mod5 | seat -> keyboard .xkb .idx_caps },
1402
- { SDL_KMOD_MODE | SDL_KMOD_SHIFT | SDL_KMOD_CAPS , seat -> keyboard .xkb .idx_mod5 | seat -> keyboard .xkb .idx_shift | seat -> keyboard .xkb .idx_caps },
1403
- { SDL_KMOD_LEVEL5 , seat -> keyboard .xkb .idx_mod3 },
1404
- { SDL_KMOD_LEVEL5 | SDL_KMOD_SHIFT , seat -> keyboard .xkb .idx_mod3 | seat -> keyboard .xkb .idx_shift },
1405
- { SDL_KMOD_LEVEL5 | SDL_KMOD_CAPS , seat -> keyboard .xkb .idx_mod3 | seat -> keyboard .xkb .idx_caps },
1406
- { SDL_KMOD_LEVEL5 | SDL_KMOD_SHIFT | SDL_KMOD_CAPS , seat -> keyboard .xkb .idx_mod3 | seat -> keyboard .xkb .idx_shift | seat -> keyboard .xkb .idx_caps },
1407
- { SDL_KMOD_LEVEL5 | SDL_KMOD_MODE , seat -> keyboard .xkb .idx_mod3 | seat -> keyboard .xkb .idx_mod5 },
1408
- { SDL_KMOD_LEVEL5 | SDL_KMOD_MODE | SDL_KMOD_SHIFT , seat -> keyboard .xkb .idx_mod3 | seat -> keyboard .xkb .idx_mod5 | seat -> keyboard .xkb .idx_shift },
1409
- { SDL_KMOD_LEVEL5 | SDL_KMOD_MODE | SDL_KMOD_CAPS , seat -> keyboard .xkb .idx_mod3 | seat -> keyboard .xkb .idx_mod5 | seat -> keyboard .xkb .idx_caps },
1410
- { SDL_KMOD_LEVEL5 | SDL_KMOD_MODE | SDL_KMOD_SHIFT | SDL_KMOD_CAPS , seat -> keyboard .xkb .idx_mod3 | seat -> keyboard .xkb .idx_mod5 | seat -> keyboard .xkb .idx_shift | seat -> keyboard .xkb .idx_caps },
1396
+ { SDL_KMOD_SHIFT , seat -> keyboard .xkb .shift_mask },
1397
+ { SDL_KMOD_CAPS , seat -> keyboard .xkb .caps_mask },
1398
+ { SDL_KMOD_SHIFT | SDL_KMOD_CAPS , seat -> keyboard .xkb .shift_mask | seat -> keyboard .xkb .caps_mask },
1399
+ { SDL_KMOD_MODE , seat -> keyboard .xkb .level3_mask },
1400
+ { SDL_KMOD_MODE | SDL_KMOD_SHIFT , seat -> keyboard .xkb .level3_mask | seat -> keyboard .xkb .shift_mask },
1401
+ { SDL_KMOD_MODE | SDL_KMOD_CAPS , seat -> keyboard .xkb .level3_mask | seat -> keyboard .xkb .caps_mask },
1402
+ { SDL_KMOD_MODE | SDL_KMOD_SHIFT | SDL_KMOD_CAPS , seat -> keyboard .xkb .level3_mask | seat -> keyboard .xkb .shift_mask | seat -> keyboard .xkb .caps_mask },
1403
+ { SDL_KMOD_LEVEL5 , seat -> keyboard .xkb .level5_mask },
1404
+ { SDL_KMOD_LEVEL5 | SDL_KMOD_SHIFT , seat -> keyboard .xkb .level5_mask | seat -> keyboard .xkb .shift_mask },
1405
+ { SDL_KMOD_LEVEL5 | SDL_KMOD_CAPS , seat -> keyboard .xkb .level5_mask | seat -> keyboard .xkb .caps_mask },
1406
+ { SDL_KMOD_LEVEL5 | SDL_KMOD_SHIFT | SDL_KMOD_CAPS , seat -> keyboard .xkb .level5_mask | seat -> keyboard .xkb .shift_mask | seat -> keyboard .xkb .caps_mask },
1407
+ { SDL_KMOD_LEVEL5 | SDL_KMOD_MODE , seat -> keyboard .xkb .level5_mask | seat -> keyboard .xkb .level3_mask },
1408
+ { SDL_KMOD_LEVEL5 | SDL_KMOD_MODE | SDL_KMOD_SHIFT , seat -> keyboard .xkb .level5_mask | seat -> keyboard .xkb .level3_mask | seat -> keyboard .xkb .shift_mask },
1409
+ { SDL_KMOD_LEVEL5 | SDL_KMOD_MODE | SDL_KMOD_CAPS , seat -> keyboard .xkb .level5_mask | seat -> keyboard .xkb .level3_mask | seat -> keyboard .xkb .caps_mask },
1410
+ { SDL_KMOD_LEVEL5 | SDL_KMOD_MODE | SDL_KMOD_SHIFT | SDL_KMOD_CAPS , seat -> keyboard .xkb .level5_mask | seat -> keyboard .xkb .level3_mask | seat -> keyboard .xkb .shift_mask | seat -> keyboard .xkb .caps_mask },
1411
1411
};
1412
1412
1413
1413
if (!seat -> keyboard .is_virtual ) {
@@ -1428,8 +1428,8 @@ static void Wayland_UpdateKeymap(SDL_WaylandSeat *seat)
1428
1428
for (int i = 0 ; i < SDL_arraysize (keymod_masks ); ++ i ) {
1429
1429
keymap .modstate = keymod_masks [i ].sdl_mask ;
1430
1430
WAYLAND_xkb_state_update_mask (keymap .state ,
1431
- keymod_masks [i ].xkb_mask & (seat -> keyboard .xkb .idx_shift | seat -> keyboard .xkb .idx_mod5 | seat -> keyboard .xkb .idx_mod3 ), 0 , keymod_masks [i ].xkb_mask & seat -> keyboard .xkb .idx_caps ,
1432
- 0 , 0 , seat -> keyboard .xkb .current_group );
1431
+ keymod_masks [i ].xkb_mask & (seat -> keyboard .xkb .shift_mask | seat -> keyboard .xkb .level3_mask | seat -> keyboard .xkb .level5_mask ), 0 , keymod_masks [i ].xkb_mask & seat -> keyboard .xkb .caps_mask ,
1432
+ 0 , 0 , seat -> keyboard .xkb .current_layout );
1433
1433
WAYLAND_xkb_keymap_key_for_each (seat -> keyboard .xkb .keymap ,
1434
1434
Wayland_keymap_iter ,
1435
1435
& keymap );
@@ -1490,25 +1490,26 @@ static void keyboard_handle_keymap(void *data, struct wl_keyboard *keyboard,
1490
1490
}
1491
1491
1492
1492
#if SDL_XKBCOMMON_CHECK_VERSION (1 , 10 , 0 )
1493
- seat -> keyboard .xkb .idx_shift = WAYLAND_xkb_keymap_mod_get_mask (seat -> keyboard .xkb .keymap , XKB_MOD_NAME_SHIFT );
1494
- seat -> keyboard .xkb .idx_ctrl = WAYLAND_xkb_keymap_mod_get_mask (seat -> keyboard .xkb .keymap , XKB_MOD_NAME_CTRL );
1495
- seat -> keyboard .xkb .idx_alt = WAYLAND_xkb_keymap_mod_get_mask (seat -> keyboard .xkb .keymap , XKB_VMOD_NAME_ALT );
1496
- seat -> keyboard .xkb .idx_gui = WAYLAND_xkb_keymap_mod_get_mask (seat -> keyboard .xkb .keymap , XKB_VMOD_NAME_SUPER );
1497
- seat -> keyboard .xkb .idx_mod5 = WAYLAND_xkb_keymap_mod_get_mask (seat -> keyboard .xkb .keymap , XKB_VMOD_NAME_LEVEL3 );
1498
- seat -> keyboard .xkb .idx_mod3 = WAYLAND_xkb_keymap_mod_get_mask (seat -> keyboard .xkb .keymap , XKB_VMOD_NAME_LEVEL5 );
1499
- seat -> keyboard .xkb .idx_num = WAYLAND_xkb_keymap_mod_get_mask (seat -> keyboard .xkb .keymap , XKB_VMOD_NAME_NUM );
1500
- seat -> keyboard .xkb .idx_caps = WAYLAND_xkb_keymap_mod_get_mask (seat -> keyboard .xkb .keymap , XKB_MOD_NAME_CAPS );
1493
+ seat -> keyboard .xkb .shift_mask = WAYLAND_xkb_keymap_mod_get_mask (seat -> keyboard .xkb .keymap , XKB_MOD_NAME_SHIFT );
1494
+ seat -> keyboard .xkb .ctrl_mask = WAYLAND_xkb_keymap_mod_get_mask (seat -> keyboard .xkb .keymap , XKB_MOD_NAME_CTRL );
1495
+ seat -> keyboard .xkb .alt_mask = WAYLAND_xkb_keymap_mod_get_mask (seat -> keyboard .xkb .keymap , XKB_VMOD_NAME_ALT );
1496
+ seat -> keyboard .xkb .gui_mask = WAYLAND_xkb_keymap_mod_get_mask (seat -> keyboard .xkb .keymap , XKB_VMOD_NAME_SUPER );
1497
+ seat -> keyboard .xkb .level3_mask = WAYLAND_xkb_keymap_mod_get_mask (seat -> keyboard .xkb .keymap , XKB_VMOD_NAME_LEVEL3 );
1498
+ seat -> keyboard .xkb .level5_mask = WAYLAND_xkb_keymap_mod_get_mask (seat -> keyboard .xkb .keymap , XKB_VMOD_NAME_LEVEL5 );
1499
+ seat -> keyboard .xkb .num_mask = WAYLAND_xkb_keymap_mod_get_mask (seat -> keyboard .xkb .keymap , XKB_VMOD_NAME_NUM );
1500
+ seat -> keyboard .xkb .caps_mask = WAYLAND_xkb_keymap_mod_get_mask (seat -> keyboard .xkb .keymap , XKB_MOD_NAME_CAPS );
1501
1501
#else
1502
1502
#define GET_MOD_INDEX (mod ) \
1503
1503
WAYLAND_xkb_keymap_mod_get_index(seat->keyboard.xkb.keymap, XKB_MOD_NAME_##mod)
1504
- seat -> keyboard .xkb .idx_shift = 1 << GET_MOD_INDEX (SHIFT );
1505
- seat -> keyboard .xkb .idx_ctrl = 1 << GET_MOD_INDEX (CTRL );
1506
- seat -> keyboard .xkb .idx_alt = 1 << GET_MOD_INDEX (ALT );
1507
- seat -> keyboard .xkb .idx_gui = 1 << GET_MOD_INDEX (LOGO );
1508
- seat -> keyboard .xkb .idx_mod3 = 1 << GET_MOD_INDEX (MOD3 );
1509
- seat -> keyboard .xkb .idx_mod5 = 1 << GET_MOD_INDEX (MOD5 );
1510
- seat -> keyboard .xkb .idx_num = 1 << GET_MOD_INDEX (NUM );
1511
- seat -> keyboard .xkb .idx_caps = 1 << GET_MOD_INDEX (CAPS );
1504
+ seat -> keyboard .xkb .shift_mask = 1 << GET_MOD_INDEX (SHIFT );
1505
+ seat -> keyboard .xkb .ctrl_mask = 1 << GET_MOD_INDEX (CTRL );
1506
+ seat -> keyboard .xkb .alt_mask = 1 << GET_MOD_INDEX (ALT );
1507
+ seat -> keyboard .xkb .gui_mask = 1 << GET_MOD_INDEX (LOGO );
1508
+ // Note: This is correct: Mod3 is typically level 5 shift, and Mod5 is typically level 3 shift.
1509
+ seat -> keyboard .xkb .level3_mask = 1 << GET_MOD_INDEX (MOD5 );
1510
+ seat -> keyboard .xkb .level5_mask = 1 << GET_MOD_INDEX (MOD3 );
1511
+ seat -> keyboard .xkb .num_mask = 1 << GET_MOD_INDEX (NUM );
1512
+ seat -> keyboard .xkb .caps_mask = 1 << GET_MOD_INDEX (CAPS );
1512
1513
#undef GET_MOD_INDEX
1513
1514
#endif
1514
1515
@@ -1534,7 +1535,7 @@ static void keyboard_handle_keymap(void *data, struct wl_keyboard *keyboard,
1534
1535
seat -> keyboard .is_virtual = WAYLAND_xkb_keymap_layout_get_name (seat -> keyboard .xkb .keymap , 0 ) == NULL ;
1535
1536
1536
1537
// Update the keymap if changed.
1537
- if (seat -> keyboard .xkb .current_group != XKB_GROUP_INVALID ) {
1538
+ if (seat -> keyboard .xkb .current_layout != XKB_LAYOUT_INVALID ) {
1538
1539
Wayland_UpdateKeymap (seat );
1539
1540
}
1540
1541
@@ -1590,7 +1591,7 @@ static SDL_Scancode Wayland_GetScancodeForKey(SDL_WaylandSeat *seat, uint32_t ke
1590
1591
scancode = SDL_GetScancodeFromTable (SDL_SCANCODE_TABLE_XFREE86_2 , key );
1591
1592
} else {
1592
1593
const xkb_keysym_t * syms ;
1593
- if (WAYLAND_xkb_keymap_key_get_syms_by_level (seat -> keyboard .xkb .keymap , key + 8 , seat -> keyboard .xkb .current_group , 0 , & syms ) > 0 ) {
1594
+ if (WAYLAND_xkb_keymap_key_get_syms_by_level (seat -> keyboard .xkb .keymap , key + 8 , seat -> keyboard .xkb .current_layout , 0 , & syms ) > 0 ) {
1594
1595
scancode = SDL_GetScancodeFromKeySym (syms [0 ], key );
1595
1596
}
1596
1597
}
@@ -1606,55 +1607,52 @@ static void Wayland_ReconcileModifiers(SDL_WaylandSeat *seat, bool key_pressed)
1606
1607
* pressed state via means other than pressing the physical key.
1607
1608
*/
1608
1609
if (!key_pressed ) {
1609
- if (seat -> keyboard .xkb .wl_pressed_modifiers & seat -> keyboard .xkb .idx_shift ) {
1610
+ if (seat -> keyboard .xkb .wl_pressed_modifiers & seat -> keyboard .xkb .shift_mask ) {
1610
1611
if (!(seat -> keyboard .pressed_modifiers & SDL_KMOD_SHIFT )) {
1611
1612
seat -> keyboard .pressed_modifiers |= SDL_KMOD_SHIFT ;
1612
1613
}
1613
1614
} else {
1614
1615
seat -> keyboard .pressed_modifiers &= ~SDL_KMOD_SHIFT ;
1615
1616
}
1616
1617
1617
- if (seat -> keyboard .xkb .wl_pressed_modifiers & seat -> keyboard .xkb .idx_ctrl ) {
1618
+ if (seat -> keyboard .xkb .wl_pressed_modifiers & seat -> keyboard .xkb .ctrl_mask ) {
1618
1619
if (!(seat -> keyboard .pressed_modifiers & SDL_KMOD_CTRL )) {
1619
1620
seat -> keyboard .pressed_modifiers |= SDL_KMOD_CTRL ;
1620
1621
}
1621
1622
} else {
1622
1623
seat -> keyboard .pressed_modifiers &= ~SDL_KMOD_CTRL ;
1623
1624
}
1624
1625
1625
- if (seat -> keyboard .xkb .wl_pressed_modifiers & seat -> keyboard .xkb .idx_alt ) {
1626
+ if (seat -> keyboard .xkb .wl_pressed_modifiers & seat -> keyboard .xkb .alt_mask ) {
1626
1627
if (!(seat -> keyboard .pressed_modifiers & SDL_KMOD_ALT )) {
1627
1628
seat -> keyboard .pressed_modifiers |= SDL_KMOD_ALT ;
1628
1629
}
1629
1630
} else {
1630
1631
seat -> keyboard .pressed_modifiers &= ~SDL_KMOD_ALT ;
1631
1632
}
1632
1633
1633
- if (seat -> keyboard .xkb .wl_pressed_modifiers & seat -> keyboard .xkb .idx_gui ) {
1634
+ if (seat -> keyboard .xkb .wl_pressed_modifiers & seat -> keyboard .xkb .gui_mask ) {
1634
1635
if (!(seat -> keyboard .pressed_modifiers & SDL_KMOD_GUI )) {
1635
1636
seat -> keyboard .pressed_modifiers |= SDL_KMOD_GUI ;
1636
1637
}
1637
1638
} else {
1638
1639
seat -> keyboard .pressed_modifiers &= ~SDL_KMOD_GUI ;
1639
1640
}
1640
1641
1641
- /* Note: This is not backwards: in the default keymap, Mod5 is typically
1642
- * level 3 shift, and Mod3 is typically level 5 shift.
1643
- */
1644
- if (seat -> keyboard .xkb .wl_pressed_modifiers & seat -> keyboard .xkb .idx_mod3 ) {
1645
- if (!(seat -> keyboard .pressed_modifiers & SDL_KMOD_LEVEL5 )) {
1646
- seat -> keyboard .pressed_modifiers |= SDL_KMOD_LEVEL5 ;
1642
+ if (seat -> keyboard .xkb .wl_pressed_modifiers & seat -> keyboard .xkb .level3_mask ) {
1643
+ if (!(seat -> keyboard .pressed_modifiers & SDL_KMOD_MODE )) {
1644
+ seat -> keyboard .pressed_modifiers |= SDL_KMOD_MODE ;
1647
1645
}
1648
1646
} else {
1649
- seat -> keyboard .pressed_modifiers &= ~SDL_KMOD_LEVEL5 ;
1647
+ seat -> keyboard .pressed_modifiers &= ~SDL_KMOD_MODE ;
1650
1648
}
1651
1649
1652
- if (seat -> keyboard .xkb .wl_pressed_modifiers & seat -> keyboard .xkb .idx_mod5 ) {
1653
- if (!(seat -> keyboard .pressed_modifiers & SDL_KMOD_MODE )) {
1654
- seat -> keyboard .pressed_modifiers |= SDL_KMOD_MODE ;
1650
+ if (seat -> keyboard .xkb .wl_pressed_modifiers & seat -> keyboard .xkb .level5_mask ) {
1651
+ if (!(seat -> keyboard .pressed_modifiers & SDL_KMOD_LEVEL5 )) {
1652
+ seat -> keyboard .pressed_modifiers |= SDL_KMOD_LEVEL5 ;
1655
1653
}
1656
1654
} else {
1657
- seat -> keyboard .pressed_modifiers &= ~SDL_KMOD_MODE ;
1655
+ seat -> keyboard .pressed_modifiers &= ~SDL_KMOD_LEVEL5 ;
1658
1656
}
1659
1657
}
1660
1658
@@ -1665,7 +1663,7 @@ static void Wayland_ReconcileModifiers(SDL_WaylandSeat *seat, bool key_pressed)
1665
1663
* The modifier will remain active until the latch/lock is released by
1666
1664
* the system.
1667
1665
*/
1668
- if (seat -> keyboard .xkb .wl_locked_modifiers & seat -> keyboard .xkb .idx_shift ) {
1666
+ if (seat -> keyboard .xkb .wl_locked_modifiers & seat -> keyboard .xkb .shift_mask ) {
1669
1667
if (seat -> keyboard .pressed_modifiers & SDL_KMOD_SHIFT ) {
1670
1668
seat -> keyboard .locked_modifiers &= ~SDL_KMOD_SHIFT ;
1671
1669
seat -> keyboard .locked_modifiers |= (seat -> keyboard .pressed_modifiers & SDL_KMOD_SHIFT );
@@ -1676,7 +1674,7 @@ static void Wayland_ReconcileModifiers(SDL_WaylandSeat *seat, bool key_pressed)
1676
1674
seat -> keyboard .locked_modifiers &= ~SDL_KMOD_SHIFT ;
1677
1675
}
1678
1676
1679
- if (seat -> keyboard .xkb .wl_locked_modifiers & seat -> keyboard .xkb .idx_ctrl ) {
1677
+ if (seat -> keyboard .xkb .wl_locked_modifiers & seat -> keyboard .xkb .ctrl_mask ) {
1680
1678
if (seat -> keyboard .pressed_modifiers & SDL_KMOD_CTRL ) {
1681
1679
seat -> keyboard .locked_modifiers &= ~SDL_KMOD_CTRL ;
1682
1680
seat -> keyboard .locked_modifiers |= (seat -> keyboard .pressed_modifiers & SDL_KMOD_CTRL );
@@ -1687,7 +1685,7 @@ static void Wayland_ReconcileModifiers(SDL_WaylandSeat *seat, bool key_pressed)
1687
1685
seat -> keyboard .locked_modifiers &= ~SDL_KMOD_CTRL ;
1688
1686
}
1689
1687
1690
- if (seat -> keyboard .xkb .wl_locked_modifiers & seat -> keyboard .xkb .idx_alt ) {
1688
+ if (seat -> keyboard .xkb .wl_locked_modifiers & seat -> keyboard .xkb .alt_mask ) {
1691
1689
if (seat -> keyboard .pressed_modifiers & SDL_KMOD_ALT ) {
1692
1690
seat -> keyboard .locked_modifiers &= ~SDL_KMOD_ALT ;
1693
1691
seat -> keyboard .locked_modifiers |= (seat -> keyboard .pressed_modifiers & SDL_KMOD_ALT );
@@ -1698,7 +1696,7 @@ static void Wayland_ReconcileModifiers(SDL_WaylandSeat *seat, bool key_pressed)
1698
1696
seat -> keyboard .locked_modifiers &= ~SDL_KMOD_ALT ;
1699
1697
}
1700
1698
1701
- if (seat -> keyboard .xkb .wl_locked_modifiers & seat -> keyboard .xkb .idx_gui ) {
1699
+ if (seat -> keyboard .xkb .wl_locked_modifiers & seat -> keyboard .xkb .gui_mask ) {
1702
1700
if (seat -> keyboard .pressed_modifiers & SDL_KMOD_GUI ) {
1703
1701
seat -> keyboard .locked_modifiers &= ~SDL_KMOD_GUI ;
1704
1702
seat -> keyboard .locked_modifiers |= (seat -> keyboard .pressed_modifiers & SDL_KMOD_GUI );
@@ -1709,27 +1707,26 @@ static void Wayland_ReconcileModifiers(SDL_WaylandSeat *seat, bool key_pressed)
1709
1707
seat -> keyboard .locked_modifiers &= ~SDL_KMOD_GUI ;
1710
1708
}
1711
1709
1712
- // As above, this is correct: Mod3 is typically level 5 shift, and Mod5 is typically level 3 shift.
1713
- if (seat -> keyboard .xkb .wl_locked_modifiers & seat -> keyboard .xkb .idx_mod3 ) {
1714
- seat -> keyboard .locked_modifiers |= SDL_KMOD_LEVEL5 ;
1710
+ if (seat -> keyboard .xkb .wl_locked_modifiers & seat -> keyboard .xkb .level3_mask ) {
1711
+ seat -> keyboard .locked_modifiers |= SDL_KMOD_MODE ;
1715
1712
} else {
1716
- seat -> keyboard .locked_modifiers &= ~SDL_KMOD_LEVEL5 ;
1713
+ seat -> keyboard .locked_modifiers &= ~SDL_KMOD_MODE ;
1717
1714
}
1718
1715
1719
- if (seat -> keyboard .xkb .wl_locked_modifiers & seat -> keyboard .xkb .idx_mod5 ) {
1720
- seat -> keyboard .locked_modifiers |= SDL_KMOD_MODE ;
1716
+ if (seat -> keyboard .xkb .wl_locked_modifiers & seat -> keyboard .xkb .level5_mask ) {
1717
+ seat -> keyboard .locked_modifiers |= SDL_KMOD_LEVEL5 ;
1721
1718
} else {
1722
- seat -> keyboard .locked_modifiers &= ~SDL_KMOD_MODE ;
1719
+ seat -> keyboard .locked_modifiers &= ~SDL_KMOD_LEVEL5 ;
1723
1720
}
1724
1721
1725
1722
// Capslock and Numlock can only be locked, not pressed.
1726
- if (seat -> keyboard .xkb .wl_locked_modifiers & seat -> keyboard .xkb .idx_caps ) {
1723
+ if (seat -> keyboard .xkb .wl_locked_modifiers & seat -> keyboard .xkb .caps_mask ) {
1727
1724
seat -> keyboard .locked_modifiers |= SDL_KMOD_CAPS ;
1728
1725
} else {
1729
1726
seat -> keyboard .locked_modifiers &= ~SDL_KMOD_CAPS ;
1730
1727
}
1731
1728
1732
- if (seat -> keyboard .xkb .wl_locked_modifiers & seat -> keyboard .xkb .idx_num ) {
1729
+ if (seat -> keyboard .xkb .wl_locked_modifiers & seat -> keyboard .xkb .num_mask ) {
1733
1730
seat -> keyboard .locked_modifiers |= SDL_KMOD_NUM ;
1734
1731
} else {
1735
1732
seat -> keyboard .locked_modifiers &= ~SDL_KMOD_NUM ;
@@ -2055,12 +2052,12 @@ static void keyboard_handle_modifiers(void *data, struct wl_keyboard *keyboard,
2055
2052
}
2056
2053
}
2057
2054
2058
- if (group == seat -> keyboard .xkb .current_group ) {
2055
+ if (group == seat -> keyboard .xkb .current_layout ) {
2059
2056
return ;
2060
2057
}
2061
2058
2062
2059
// The layout changed, remap and fire an event. Virtual keyboards use the default keymap.
2063
- seat -> keyboard .xkb .current_group = group ;
2060
+ seat -> keyboard .xkb .current_layout = group ;
2064
2061
Wayland_UpdateKeymap (seat );
2065
2062
}
2066
2063
@@ -3368,7 +3365,7 @@ void Wayland_DisplayCreateSeat(SDL_VideoData *display, struct wl_seat *wl_seat,
3368
3365
seat -> wl_seat = wl_seat ;
3369
3366
seat -> display = display ;
3370
3367
seat -> registry_id = id ;
3371
- seat -> keyboard .xkb .current_group = XKB_GROUP_INVALID ;
3368
+ seat -> keyboard .xkb .current_layout = XKB_LAYOUT_INVALID ;
3372
3369
3373
3370
Wayland_SeatCreateDataDevice (seat );
3374
3371
Wayland_SeatCreatePrimarySelectionDevice (seat );
0 commit comments