Enable xtest support flag

pull/2/head
Timothy Pearson 12 years ago
parent d6707f9679
commit 45fb5561be

@ -65,6 +65,7 @@ option( WITH_XRANDR "Enable xrandr support" OFF )
option( WITH_XRENDER "Enable xrender support" OFF )
option( WITH_XDAMAGE "Enable xdamage support" OFF )
option( WITH_XEXT "Enable xext support" OFF )
option( WITH_XTEST "Enable xext support" OFF )
option( WITH_LIBUSB "Enable control of some mouse models through libusb" OFF )
option( WITH_LIBRAW1394 "Enable visualization of ieee1394 devices through libraw1394" OFF )
option( WITH_SUDO_TDESU_BACKEND "Use sudo as backend for tdesu (default is su)" OFF )

@ -114,12 +114,25 @@ endif( )
# xext (twin/kompmgr)
if( WITH_XEXT )
pkg_search_module( XEXT xext )
if( NOT XEXT_FOUND )
if( XEXT_FOUND )
set( HAVE_XEXT 1 )
else( XEXT_FOUND )
tde_message_fatal( "xext is requested, but was not found on your system" )
endif( )
endif( )
# xtest (kxkb)
if( WITH_XTEST )
pkg_search_module( XTEST xtst )
if( XTEST_FOUND )
set( HAVE_XTEST 1 )
else( XTEST_FOUND )
tde_message_fatal( "xtest is requested, but was not found on your system" )
endif( )
endif( )
# GL
if( BUILD_KDESKTOP OR BUILD_KCONTROL OR BUILD_KSCREENSAVER )
check_library_exists( GL glXChooseVisual "" HAVE_GLXCHOOSEVISUAL )

@ -18,6 +18,9 @@
// konsole, kdm, kxkb
#cmakedefine HAVE_XKB 1
// kxkb
#cmakedefine HAVE_XTEST 1
// kdm, kioslave
#cmakedefine HAVE_TERMIOS_H 1

@ -22,6 +22,7 @@ include_directories(
link_directories(
${TQT_LIBRARY_DIRS}
${XTEST_LIBDIR}
)
@ -39,7 +40,7 @@ tde_add_kpart( kcm_keyboard AUTOMOC
extension.cpp x11helper.cpp rules.cpp kxkbconfig.cpp
pixmap.cpp kcmlayout.cpp kcmlayoutwidget.ui
kcmmisc.cpp kcmmiscwidget.ui
LINK kio-shared xkbfile
LINK kio-shared xkbfile ${XTEST_LIBRARIES}
DESTINATION ${PLUGIN_INSTALL_DIR}
)

@ -344,6 +344,21 @@ int xkb_set_off()
return 1;
}
int xkb_state()
{
unsigned int mask;
unsigned int numlockState;
XkbStateRec xkbState;
if( !xkb_init())
return 0;
mask = xkb_numlock_mask();
if( mask == 0 )
return 0;
XkbGetState( dpy, XkbUseCoreKbd, &xkbState);
numlockState = xkbState.locked_mods & mask;
return numlockState;
}
int xkb_toggle()
{
unsigned int mask;
@ -443,7 +458,14 @@ void numlock_toggle()
return;
#endif
#ifdef HAVE_XTEST
#ifdef HAVE_XKB
if (xkb_state())
xtest_set_on();
else
xtest_set_off();
#else // HAVE_XKB
xtest_toggle();
#endif // HAVE_XKB
#endif
}
// This code is taken from xset utility from XFree 4.3 (http://www.xfree86.org/)

Loading…
Cancel
Save