diff --git a/CMakeLists.txt b/CMakeLists.txt index 31fb46c43..3da5b2f63 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,6 +68,7 @@ option( WITH_XRENDER "Enable xrender support" ${WITH_ALL_OPTIONS} ) option( WITH_XDAMAGE "Enable xdamage support" ${WITH_ALL_OPTIONS} ) option( WITH_XEXT "Enable xext support" ${WITH_ALL_OPTIONS} ) option( WITH_XTEST "Enable xext support" ${WITH_ALL_OPTIONS} ) +option( WITH_XSCREENSAVER "Enable xscreensaver support" ${WITH_ALL_OPTIONS} ) option( WITH_LIBART "Enable libart support (for SVG icons and wallpapers)" ${WITH_ALL_OPTIONS} ) option( WITH_LIBUSB "Enable control of some mouse models through libusb" ${WITH_ALL_OPTIONS} ) option( WITH_LIBRAW1394 "Enable visualization of ieee1394 devices through libraw1394" ${WITH_ALL_OPTIONS} ) diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index ded1d0025..1d9c83d71 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -144,6 +144,26 @@ if( WITH_XTEST ) endif( ) +# xscreensaver () +if( WITH_XSCREENSAVER ) + check_library_exists( Xss XScreenSaverQueryInfo "" HAVE_XSSLIB ) + if( HAVE_XSSLIB ) + pkg_search_module( XSS xscrnsaver ) + else( ) + check_library_exists( Xext XScreenSaverQueryInfo "" HAVE_XSSLIB ) + if( HAVE_XSSLIB ) + pkg_search_module( XSS xext ) + endif( ) + endif( ) + check_include_file( X11/extensions/scrnsaver.h HAVE_XSCREENSAVER_H ) + if( HAVE_XSSLIB AND HAVE_XSCREENSAVER_H ) + set( HAVE_XSCREENSAVER 1 ) + else( ) + tde_message_fatal( "xscreensaver 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 ) diff --git a/config.h.cmake b/config.h.cmake index 39d6d8528..772ca8840 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -24,6 +24,9 @@ // kxkb #cmakedefine HAVE_XTEST 1 +// xscreensaver +#cmakedefine HAVE_XSCREENSAVER 1 + // libart #cmakedefine HAVE_LIBART 1 diff --git a/doc/faq/panel.docbook b/doc/faq/panel.docbook index 5e77e0cf3..52b7ae5d8 100644 --- a/doc/faq/panel.docbook +++ b/doc/faq/panel.docbook @@ -40,7 +40,7 @@ you prefer from install it using the &kcontrolcenter;. In order to change only the &kmenu; icon you can overwrite the kmenu.png image for every size in an icon theme set. -So, for &tde; default icons this would be $TDEDIR/share/icons/default.kde/size/apps/kmenu.png, +So, for &tde; default icons this would be $TDEDIR/share/icons/default.tde/size/apps/kmenu.png, where size is one of the sizes included in the &tde; icon theme. diff --git a/kate/app/katemain.cpp b/kate/app/katemain.cpp index fedb89b7c..9dbcc3d43 100644 --- a/kate/app/katemain.cpp +++ b/kate/app/katemain.cpp @@ -231,7 +231,24 @@ extern "C" KDE_EXPORT int kdemain( int argc, char **argv ) else wRef.call("restore"); } + // The --use parameter forces Kate to use a single session window to host + // all opened files. Generally, that parameter works. Yet when a file is + // opened into Kate externally, such as from Konqueror, Kate will pop + // forward (raise) but not grab the focus (show). The following snippet + // resolves that problem. For whatever reason the hide call is needed + // before the raise and show otherwise the snippet fails. Some extra glue + // might be needed. With Kate open: + // "Right-click" on the title bar + // Select Advanced + // Select Special Application Settings (Not Special Window Settings) + // Select the Workarounds tab + // Enable the Focus stealing prevention check box + // Select the Force option + // Select the None option + + wRef.call( "hide" ); wRef.call( "raise" ); + wRef.call( "show" ); // stop startup notification KStartupInfo::appStarted( ); diff --git a/kdesktop/CMakeLists.txt b/kdesktop/CMakeLists.txt index 99d86d13a..b2e462853 100644 --- a/kdesktop/CMakeLists.txt +++ b/kdesktop/CMakeLists.txt @@ -94,6 +94,7 @@ tde_add_tdeinit_executable( ${target} AUTOMOC kdesktopsettings-static bgnd-static dmctl-static konq-shared kutils-shared ${XRENDER_LIBRARIES} ${XCURSOR_LIBRARIES} Xext dl + ${XSS_LIBRARIES} )