File 0005-Don-t-use-X11-only-functions-when-not-using-X11-in-w.patch of Package wxWidgets-3_0
From 17135e0a7704b55db39110c2d55b9beda00ef7ab Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Wed, 19 Nov 2014 13:29:28 +0000
Subject: [PATCH 5/5] 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
---
src/gtk/window.cpp | 37 ++++++++++++++++++++-----------------
1 file changed, 20 insertions(+), 17 deletions(-)
diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp
index 321d681..49d0626 100644
--- a/src/gtk/window.cpp
+++ b/src/gtk/window.cpp
@@ -849,28 +849,31 @@ wxTranslateGTKKeyEventToWx(wxKeyEvent& event,
}
#ifdef GDK_WINDOWING_X11
- // we want to always get the same key code when the same key is
- // pressed regardless of the state of the modifiers, i.e. on a
- // standard US keyboard pressing '5' or '%' ('5' key with
- // Shift) should result in the same key code in OnKeyDown():
- // '5' (although OnChar() will get either '5' or '%').
- //
- // to do it we first translate keysym to keycode (== scan code)
- // 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);
+ if (GDK_IS_X11_DISPLAY(gdk_window_get_display(gdk_event->window)))
+ {
+ // we want to always get the same key code when the same key is
+ // pressed regardless of the state of the modifiers, i.e. on a
+ // standard US keyboard pressing '5' or '%' ('5' key with
+ // Shift) should result in the same key code in OnKeyDown():
+ // '5' (although OnChar() will get either '5' or '%').
+ //
+ // to do it we first translate keysym to keycode (== scan code)
+ // 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);
#ifdef HAVE_X11_XKBLIB_H
- KeySym keysymNormalized = XkbKeycodeToKeysym(dpy, keycode, 0, 0);
+ KeySym keysymNormalized = XkbKeycodeToKeysym(dpy, keycode, 0, 0);
#else
- KeySym keysymNormalized = XKeycodeToKeysym(dpy, keycode, 0);
+ KeySym keysymNormalized = XKeycodeToKeysym(dpy, keycode, 0);
#endif
- // use the normalized, i.e. lower register, keysym if we've
- // got one
- key_code = keysymNormalized ? keysymNormalized : keysym;
+ // use the normalized, i.e. lower register, keysym if we've
+ // got one
+ key_code = keysymNormalized ? keysymNormalized : keysym;
+ }
#else
key_code = keysym;
#endif
--
2.7.0