Don't use X11-only functions when not using X11 in wxGTK.

See #16688.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78161 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2014-11-19 13:29:28 +00:00
parent a6b14c2ed1
commit 17135e0a77

View File

@@ -849,28 +849,31 @@ wxTranslateGTKKeyEventToWx(wxKeyEvent& event,
} }
#ifdef GDK_WINDOWING_X11 #ifdef GDK_WINDOWING_X11
// we want to always get the same key code when the same key is if (GDK_IS_X11_DISPLAY(gdk_window_get_display(gdk_event->window)))
// pressed regardless of the state of the modifiers, i.e. on a {
// standard US keyboard pressing '5' or '%' ('5' key with // we want to always get the same key code when the same key is
// Shift) should result in the same key code in OnKeyDown(): // pressed regardless of the state of the modifiers, i.e. on a
// '5' (although OnChar() will get either '5' or '%'). // standard US keyboard pressing '5' or '%' ('5' key with
// // Shift) should result in the same key code in OnKeyDown():
// to do it we first translate keysym to keycode (== scan code) // '5' (although OnChar() will get either '5' or '%').
// and then back but always using the lower register //
Display *dpy = (Display *)wxGetDisplay(); // to do it we first translate keysym to keycode (== scan code)
KeyCode keycode = XKeysymToKeycode(dpy, keysym); // and then back but always using the lower register
Display *dpy = (Display *)wxGetDisplay();
KeyCode keycode = XKeysymToKeycode(dpy, keysym);
wxLogTrace(TRACE_KEYS, wxT("\t-> keycode %d"), keycode); wxLogTrace(TRACE_KEYS, wxT("\t-> keycode %d"), keycode);
#ifdef HAVE_X11_XKBLIB_H #ifdef HAVE_X11_XKBLIB_H
KeySym keysymNormalized = XkbKeycodeToKeysym(dpy, keycode, 0, 0); KeySym keysymNormalized = XkbKeycodeToKeysym(dpy, keycode, 0, 0);
#else #else
KeySym keysymNormalized = XKeycodeToKeysym(dpy, keycode, 0); KeySym keysymNormalized = XKeycodeToKeysym(dpy, keycode, 0);
#endif #endif
// use the normalized, i.e. lower register, keysym if we've // use the normalized, i.e. lower register, keysym if we've
// got one // got one
key_code = keysymNormalized ? keysymNormalized : keysym; key_code = keysymNormalized ? keysymNormalized : keysym;
}
#else #else
key_code = keysym; key_code = keysym;
#endif #endif