@@ -65,10 +65,6 @@ Time KeymapWrapper::sLastRepeatableKeyTime = 0;
65
65
KeymapWrapper::RepeatState KeymapWrapper::sRepeatState =
66
66
KeymapWrapper::NOT_PRESSED;
67
67
68
- #ifdef MOZ_WAYLAND
69
- uint32_t KeymapWrapper::sLastRepeatableSerial = 0 ;
70
- #endif
71
-
72
68
static const char * GetBoolName (bool aBool) { return aBool ? " TRUE" : " FALSE" ; }
73
69
74
70
static const char * GetStatusName (nsEventStatus aStatus) {
@@ -669,8 +665,6 @@ void KeymapWrapper::SetModifierMasks(xkb_keymap* aKeymap) {
669
665
keymapWrapper->SetModifierMask (aKeymap, INDEX_LEVEL3, " Level3" );
670
666
keymapWrapper->SetModifierMask (aKeymap, INDEX_LEVEL5, " Level5" );
671
667
672
- keymapWrapper->SetKeymap (aKeymap);
673
-
674
668
MOZ_LOG (gKeyLog , LogLevel::Info,
675
669
(" %p KeymapWrapper::SetModifierMasks, CapsLock=0x%X, NumLock=0x%X, "
676
670
" ScrollLock=0x%X, Level3=0x%X, Level5=0x%X, "
@@ -713,13 +707,6 @@ void KeymapWrapper::HandleKeymap(uint32_t format, int fd, uint32_t size) {
713
707
}
714
708
715
709
struct xkb_context * xkb_context = xkb_context_new (XKB_CONTEXT_NO_FLAGS);
716
- if (!xkb_context) {
717
- MOZ_LOG (gKeyLog , LogLevel::Info,
718
- (" KeymapWrapper::HandleKeymap(): failed to get xkb_context!" ));
719
- close (fd);
720
- return ;
721
- }
722
-
723
710
struct xkb_keymap * keymap = xkb_keymap_new_from_string (
724
711
xkb_context, mapString, XKB_KEYMAP_FORMAT_TEXT_V1,
725
712
XKB_KEYMAP_COMPILE_NO_FLAGS);
@@ -730,7 +717,6 @@ void KeymapWrapper::HandleKeymap(uint32_t format, int fd, uint32_t size) {
730
717
if (!keymap) {
731
718
MOZ_LOG (gKeyLog , LogLevel::Info,
732
719
(" KeymapWrapper::HandleKeymap(): Failed to compile keymap!" ));
733
- xkb_context_unref (xkb_context);
734
720
return ;
735
721
}
736
722
@@ -745,11 +731,6 @@ void KeymapWrapper::HandleKeymap(uint32_t format, int fd, uint32_t size) {
745
731
KeymapWrapper::~KeymapWrapper () {
746
732
#ifdef MOZ_X11
747
733
gdk_window_remove_filter (nullptr , FilterEvents, this );
748
- #endif
749
- #ifdef MOZ_WAYLAND
750
- if (mXkbKeymap ) {
751
- xkb_keymap_unref (mXkbKeymap );
752
- }
753
734
#endif
754
735
if (mOnKeysChangedSignalHandle ) {
755
736
g_signal_handler_disconnect (mGdkKeymap , mOnKeysChangedSignalHandle );
@@ -877,87 +858,6 @@ GdkFilterReturn KeymapWrapper::FilterEvents(GdkXEvent* aXEvent,
877
858
}
878
859
#endif
879
860
880
- #ifdef MOZ_WAYLAND
881
- // static
882
- void KeymapWrapper::KeyboardHandlerForWayland (uint32_t aSerial,
883
- uint32_t aHardwareKeycode,
884
- uint32_t aState) {
885
- KeymapWrapper* keymapWrapper = GetInstance ();
886
- if (!keymapWrapper->IsAutoRepeatableKey (aHardwareKeycode)) {
887
- MOZ_LOG (gKeyLog , LogLevel::Info,
888
- (" KeyboardHandlerForWayland(aSerial=%u, aHardwareKeycode=0x%08X, "
889
- " aState=%s), no repeat key" ,
890
- aSerial, aHardwareKeycode,
891
- aState == WL_KEYBOARD_KEY_STATE_PRESSED
892
- ? " WL_KEYBOARD_KEY_STATE_PRESSED"
893
- : " WL_KEYBOARD_KEY_STATE_RELEASED" ));
894
- return ;
895
- }
896
-
897
- if (aState == WL_KEYBOARD_KEY_STATE_PRESSED) {
898
- MOZ_LOG (gKeyLog , LogLevel::Info,
899
- (" KeyboardHandlerForWayland(aSerial=%u, aHardwareKeycode=0x%08X, "
900
- " aState=WL_KEYBOARD_KEY_STATE_PRESSED), first key pressed" ,
901
- aSerial, aHardwareKeycode));
902
-
903
- sLastRepeatableSerial = aSerial;
904
- sLastRepeatableHardwareKeyCode = aHardwareKeycode;
905
- sRepeatState = FIRST_PRESS;
906
-
907
- // This runnable will be run after GDK's key event.
908
- //
909
- // Next key press of GDK will be after repeat's delay ms.
910
- // But event time in next key press wonn't updated.
911
- //
912
- // The delay's default is 400ms in GTK/wayland. Even if we can get this
913
- // information from repeat_info, if we wait for this time, it is too late.
914
- // We guess that 10ms will be enough durration to set repeat state.
915
-
916
- NS_DelayedDispatchToCurrentThread (
917
- NS_NewRunnableFunction (
918
- __func__,
919
- [aSerial] {
920
- if (sLastRepeatableSerial != aSerial) {
921
- // We already receive newer key event. Don't set repeat state.
922
- return ;
923
- }
924
-
925
- MOZ_LOG (gKeyLog , LogLevel::Info,
926
- (" KeyboardHandlerForWayland(aSerial=%u, "
927
- " aState=WL_KEYBOARD_KEY_STATE_PRESSED), repeating" ,
928
- aSerial));
929
- sRepeatState = REPEATING;
930
- }),
931
- 10);
932
- return ;
933
- }
934
-
935
- if (sLastRepeatableHardwareKeyCode != aHardwareKeycode) {
936
- MOZ_LOG (gKeyLog , LogLevel::Info,
937
- (" KeyboardHandlerForWayland(aSerial=%u, aHardwareKeycode=0x%08X "
938
- " aState=WL_KEYBOARD_KEY_STATE_RELEASED), released key isn't "
939
- " matched" ,
940
- aSerial, aHardwareKeycode));
941
- return ;
942
- }
943
-
944
- MOZ_LOG (gKeyLog , LogLevel::Info,
945
- (" KeyboardHandlerForWayland(aSerial=%u, aHardwareKeycode=0x%08X"
946
- " aState=WL_KEYBOARD_KEY_STATE_RELEASED), not pressed" ,
947
- aSerial, aHardwareKeycode));
948
-
949
- sLastRepeatableSerial = aSerial;
950
- sRepeatState = NOT_PRESSED;
951
- }
952
-
953
- void KeymapWrapper::SetKeymap (xkb_keymap* aKeymap) {
954
- if (mXkbKeymap ) {
955
- xkb_keymap_unref (mXkbKeymap );
956
- }
957
- mXkbKeymap = xkb_keymap_ref (aKeymap);
958
- }
959
- #endif
960
-
961
861
static void ResetBidiKeyboard () {
962
862
// Reset the bidi keyboard settings for the new GdkKeymap
963
863
nsCOMPtr<nsIBidiKeyboard> bidiKeyboard = nsContentUtils::GetBidiKeyboard ();
@@ -2133,28 +2033,15 @@ bool KeymapWrapper::IsLatinGroup(guint8 aGroup) {
2133
2033
}
2134
2034
2135
2035
bool KeymapWrapper::IsAutoRepeatableKey (guint aHardwareKeyCode) {
2136
- GdkDisplay* gdkDisplay = gdk_display_get_default ();
2137
2036
#ifdef MOZ_X11
2138
- if (GdkIsX11Display (gdkDisplay)) {
2139
- uint8_t indexOfArray = aHardwareKeyCode / 8 ;
2140
- MOZ_ASSERT (indexOfArray < std::size (mKeyboardState .auto_repeats ),
2141
- " invalid index" );
2142
- char bitMask = 1 << (aHardwareKeyCode % 8 );
2143
- return (mKeyboardState .auto_repeats [indexOfArray] & bitMask) != 0 ;
2144
- }
2145
- #endif
2146
- #ifdef MOZ_WAYLAND
2147
- if (GdkIsWaylandDisplay (gdkDisplay)) {
2148
- if (MOZ_UNLIKELY (!mXkbKeymap )) {
2149
- static bool sWarned = false ;
2150
- NS_WARNING_ASSERTION (sWarned , " no keymap!" );
2151
- sWarned = true ;
2152
- return false ;
2153
- }
2154
- return !!xkb_keymap_key_repeats (mXkbKeymap , aHardwareKeyCode);
2155
- }
2156
- #endif
2037
+ uint8_t indexOfArray = aHardwareKeyCode / 8 ;
2038
+ MOZ_ASSERT (indexOfArray < std::size (mKeyboardState .auto_repeats ),
2039
+ " invalid index" );
2040
+ char bitMask = 1 << (aHardwareKeyCode % 8 );
2041
+ return (mKeyboardState .auto_repeats [indexOfArray] & bitMask) != 0 ;
2042
+ #else
2157
2043
return false ;
2044
+ #endif
2158
2045
}
2159
2046
2160
2047
/* static */
@@ -2759,8 +2646,6 @@ void KeymapWrapper::SetFocusOut(wl_surface* aFocusSurface) {
2759
2646
2760
2647
keymapWrapper->mFocusSurface = nullptr ;
2761
2648
keymapWrapper->mFocusSerial = 0 ;
2762
-
2763
- sRepeatState = NOT_PRESSED;
2764
2649
}
2765
2650
2766
2651
void KeymapWrapper::GetFocusInfo (wl_surface** aFocusSurface,
@@ -2769,14 +2654,6 @@ void KeymapWrapper::GetFocusInfo(wl_surface** aFocusSurface,
2769
2654
*aFocusSurface = keymapWrapper->mFocusSurface ;
2770
2655
*aFocusSerial = keymapWrapper->mFocusSerial ;
2771
2656
}
2772
-
2773
- void KeymapWrapper::ClearKeymap () {
2774
- KeymapWrapper* keymapWrapper = KeymapWrapper::GetInstance ();
2775
- if (keymapWrapper->mXkbKeymap ) {
2776
- xkb_keymap_unref (keymapWrapper->mXkbKeymap );
2777
- keymapWrapper->mXkbKeymap = nullptr ;
2778
- }
2779
- }
2780
2657
#endif
2781
2658
2782
2659
} // namespace widget
0 commit comments