- gtk_widget_add_events(m_widget, GDK_PROPERTY_CHANGE_MASK);
- g_signal_connect(m_widget, "property_notify_event",
- G_CALLBACK(property_notify_event), this);
+ // GTK processes key events at the top level first, which handles for
+ // menu accelerators and shortcuts before passing the event on to the
+ // focus child window to begin propagation. We want to propagate
+ // first, so we connect gtk_window_propagate_key_event to
+ // key_press_event.
+ g_signal_connect (m_widget, "key_press_event",
+ G_CALLBACK (gtk_window_propagate_key_event), NULL);
+
+#ifdef GDK_WINDOWING_X11
+#ifdef __WXGTK3__
+ if (GDK_IS_X11_SCREEN(gtk_window_get_screen(GTK_WINDOW(m_widget))))
+#endif
+ {
+ gtk_widget_add_events(m_widget, GDK_PROPERTY_CHANGE_MASK);
+ g_signal_connect(m_widget, "property_notify_event",
+ G_CALLBACK(property_notify_event), this);
+ }
+#endif // GDK_WINDOWING_X11