Define wxSetDetectableAutoRepeat() for X11-based ports only.
This function is not needed in wxGTK2 as GTK+ sets detectable auto-repeat on its own in gdk_display_open() anyhow, so move its implementation to src/x11/utilsx.cpp where it can be used by wxX11 and wxMotif which do need it. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -923,12 +923,15 @@ void wxQsort(void *const pbase, size_t total_elems,
|
|||||||
|
|
||||||
#if wxUSE_GUI
|
#if wxUSE_GUI
|
||||||
|
|
||||||
#ifndef __WXGTK__
|
// this function is only really implemented for X11-based ports, including GTK1
|
||||||
|
// (GTK2 sets detectable auto-repeat automatically anyhow)
|
||||||
|
#if !(defined(__WXX11__) || defined(__WXMOTIF__) || \
|
||||||
|
(defined(__WXGTK__) && !defined(__WXGTK20__)))
|
||||||
bool wxSetDetectableAutoRepeat( bool WXUNUSED(flag) )
|
bool wxSetDetectableAutoRepeat( bool WXUNUSED(flag) )
|
||||||
{
|
{
|
||||||
return true; // detectable auto-repeat is the only mode MSW supports
|
return true;
|
||||||
}
|
}
|
||||||
#endif // !wxGTK
|
#endif // !X11-based port
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// Launch default browser
|
// Launch default browser
|
||||||
|
@@ -438,8 +438,6 @@ bool wxApp::Initialize(int& argc_, wxChar **argv_)
|
|||||||
// we can not enter threads before gtk_init is done
|
// we can not enter threads before gtk_init is done
|
||||||
gdk_threads_enter();
|
gdk_threads_enter();
|
||||||
|
|
||||||
wxSetDetectableAutoRepeat( true );
|
|
||||||
|
|
||||||
#if wxUSE_INTL
|
#if wxUSE_INTL
|
||||||
wxFont::SetDefaultEncoding(wxLocale::GetSystemEncoding());
|
wxFont::SetDefaultEncoding(wxLocale::GetSystemEncoding());
|
||||||
#endif
|
#endif
|
||||||
|
@@ -45,18 +45,6 @@
|
|||||||
#include "gtk/gtk.h"
|
#include "gtk/gtk.h"
|
||||||
#include "gdk/gdkx.h"
|
#include "gdk/gdkx.h"
|
||||||
|
|
||||||
#ifdef HAVE_X11_XKBLIB_H
|
|
||||||
/* under HP-UX and Solaris 2.6, at least, XKBlib.h defines structures with
|
|
||||||
* field named "explicit" - which is, of course, an error for a C++
|
|
||||||
* compiler. To be on the safe side, just redefine it everywhere. */
|
|
||||||
#define explicit __wx_explicit
|
|
||||||
|
|
||||||
#include "X11/XKBlib.h"
|
|
||||||
|
|
||||||
#undef explicit
|
|
||||||
#endif // HAVE_X11_XKBLIB_H
|
|
||||||
|
|
||||||
|
|
||||||
#if wxUSE_DETECT_SM
|
#if wxUSE_DETECT_SM
|
||||||
#include "X11/Xlib.h"
|
#include "X11/Xlib.h"
|
||||||
#include "X11/SM/SMlib.h"
|
#include "X11/SM/SMlib.h"
|
||||||
@@ -80,22 +68,6 @@ void wxBell()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Don't synthesize KeyUp events holding down a key and producing
|
|
||||||
KeyDown events with autorepeat. */
|
|
||||||
#ifdef HAVE_X11_XKBLIB_H
|
|
||||||
bool wxSetDetectableAutoRepeat( bool flag )
|
|
||||||
{
|
|
||||||
Bool result;
|
|
||||||
XkbSetDetectableAutoRepeat( GDK_DISPLAY(), flag, &result );
|
|
||||||
return result; /* true if keyboard hardware supports this mode */
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
bool wxSetDetectableAutoRepeat( bool WXUNUSED(flag) )
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// display characterstics
|
// display characterstics
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -35,6 +35,18 @@
|
|||||||
#include "wx/dcmemory.h"
|
#include "wx/dcmemory.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_X11_XKBLIB_H
|
||||||
|
/* under HP-UX and Solaris 2.6, at least, XKBlib.h defines structures with
|
||||||
|
* field named "explicit" - which is, of course, an error for a C++
|
||||||
|
* compiler. To be on the safe side, just redefine it everywhere. */
|
||||||
|
#define explicit __wx_explicit
|
||||||
|
|
||||||
|
#include "X11/XKBlib.h"
|
||||||
|
|
||||||
|
#undef explicit
|
||||||
|
#endif // HAVE_X11_XKBLIB_H
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// XShape code
|
// XShape code
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -236,3 +248,18 @@ void wxXVisualInfo::Init( Display* dpy, XVisualInfo* vi )
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif // !wxUSE_NANOX
|
#endif // !wxUSE_NANOX
|
||||||
|
|
||||||
|
/* Don't synthesize KeyUp events holding down a key and producing
|
||||||
|
KeyDown events with autorepeat. */
|
||||||
|
bool wxSetDetectableAutoRepeat( bool flag )
|
||||||
|
{
|
||||||
|
#ifdef HAVE_X11_XKBLIB_H
|
||||||
|
Bool result;
|
||||||
|
XkbSetDetectableAutoRepeat( (Display *)wxGetDisplay(), flag, &result );
|
||||||
|
return result; /* true if keyboard hardware supports this mode */
|
||||||
|
#else
|
||||||
|
wxUnusedVar(flag);
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user