Bug#458041: Rebased patch for 1.0.2-6

Robert Wohlrab <[email protected]>
Newsgroups gmane.comp.video.tvtime.devel
Message-ID <201004141204.59058.robert.wohlrab__4236.43632461808$1271240572$gmane$org@gmx.de>
Rebased patch for tvtime 1.0.2-6
-- 
Robert Wohlrab

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev

_______________________________________________
Tvtime-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tvtime-devel
0001-Use-XScreenSaverExtension-instead-of-typing-text-via.patch (text/x-patch, 7.7 KB)
From f6abc0242df2dba902ea4d59be2af125e2492fde Mon Sep 17 00:00:00 2001
From: Resul Cetin <[email protected]>
Date: Thu, 11 Dec 2008 17:50:28 +0100
Subject: [PATCH] Use XScreenSaverExtension instead of typing text via Xtest

---
 config.h.in    |    2 +-
 configure      |   26 +++++++++++++-------------
 configure.ac   |    8 ++++----
 debian/control |    2 +-
 src/xcommon.c  |   52 ++++++++++++++++++++++++----------------------------
 5 files changed, 43 insertions(+), 47 deletions(-)

diff --git a/config.h.in b/config.h.in
index 6180c73..455e380 100644
--- a/config.h.in
+++ b/config.h.in
@@ -296,7 +296,7 @@
 #undef HAVE_XINERAMA
 
 /* XTest support */
-#undef HAVE_XTESTEXTENSION
+#undef HAVE_XSSEXTENSION
 
 /* Xv support */
 #undef HAVE_XV
diff --git a/configure b/configure
index a6c5138..6c2dd5e 100755
--- a/configure
+++ b/configure
@@ -25906,13 +25906,13 @@ _ACEOF
 fi
 
 
-	        echo "$as_me:$LINENO: checking for XTestFakeKeyEvent in -lXtst" >&5
-echo $ECHO_N "checking for XTestFakeKeyEvent in -lXtst... $ECHO_C" >&6
-if test "${ac_cv_lib_Xtst_XTestFakeKeyEvent+set}" = set; then
+	        echo "$as_me:$LINENO: checking for XScreenSaverSuspend in -lXss" >&5
+echo $ECHO_N "checking for XScreenSaverSuspend in -lXss... $ECHO_C" >&6
+if test "${ac_cv_lib_Xss_XScreenSaverSuspend+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lXtst $X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS -lXext $LIBS"
+LIBS="-lXss $X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS -lXext $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -25926,11 +25926,11 @@ extern "C"
 #endif
 /* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
-char XTestFakeKeyEvent ();
+char XScreenSaverSuspend ();
 int
 main ()
 {
-XTestFakeKeyEvent ();
+XScreenSaverSuspend ();
   ;
   return 0;
 }
@@ -25956,26 +25956,26 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_lib_Xtst_XTestFakeKeyEvent=yes
+  ac_cv_lib_Xss_XScreenSaverSuspend=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_Xtst_XTestFakeKeyEvent=no
+ac_cv_lib_Xss_XScreenSaverSuspend=no
 fi
 rm -f conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_Xtst_XTestFakeKeyEvent" >&5
-echo "${ECHO_T}$ac_cv_lib_Xtst_XTestFakeKeyEvent" >&6
-if test $ac_cv_lib_Xtst_XTestFakeKeyEvent = yes; then
+echo "$as_me:$LINENO: result: $ac_cv_lib_Xss_XScreenSaverSuspend" >&5
+echo "${ECHO_T}$ac_cv_lib_Xss_XScreenSaverSuspend" >&6
+if test $ac_cv_lib_Xss_XScreenSaverSuspend = yes; then
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_XTESTEXTENSION
+#define HAVE_XSSEXTENSION
 _ACEOF
 
-            X11_LIBS="$X11_LIBS -lXtst"
+            X11_LIBS="$X11_LIBS -lXss"
 fi
 
 
diff --git a/configure.ac b/configure.ac
index 9692b31..ee240df 100644
--- a/configure.ac
+++ b/configure.ac
@@ -118,10 +118,10 @@ if test x"$no_x" != x"yes"; then
 	    X11_LIBS="$X11_LIBS -lXinerama"],,
 	    [$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS -lXext])
 
-	dnl check for XTest
-        AC_CHECK_LIB([Xtst],[XTestFakeKeyEvent],
-            [AC_DEFINE([HAVE_XTESTEXTENSION],,[XTest support])
-            X11_LIBS="$X11_LIBS -lXtst"],,
+	dnl check for XSs
+        AC_CHECK_LIB([Xss],[XScreenSaverSuspend],
+            [AC_DEFINE([HAVE_XSSEXTENSION],,[XSs support])
+            X11_LIBS="$X11_LIBS -lXss"],,
 	    [$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS -lXext])
 
 	dnl check for Xvidmode
diff --git a/debian/control b/debian/control
index 2479259..2b38e42 100644
--- a/debian/control
+++ b/debian/control
@@ -3,7 +3,7 @@ Section: x11
 Priority: optional
 Maintainer: Debian QA Group <[email protected]>
 Build-Depends: debhelper (>= 7), zlib1g-dev, libpng-dev, libfreetype6-dev, libx11-dev, libxext-dev, libxinerama-dev,
- libxt-dev, libxtst-dev, libxv-dev, libxxf86vm-dev, libxml2-dev, fontforge
+ libxt-dev, libxss-dev, libxv-dev, libxxf86vm-dev, libxml2-dev, fontforge
 Standards-Version: 3.6.2
 Homepage: http://tvtime.net/
 
diff --git a/src/xcommon.c b/src/xcommon.c
index 8e3be4c..408f231 100644
--- a/src/xcommon.c
+++ b/src/xcommon.c
@@ -45,8 +45,8 @@
 #include <X11/keysym.h>
 #include <X11/cursorfont.h>
 #include <X11/extensions/XShm.h>
-#ifdef HAVE_XTESTEXTENSION
-#include <X11/extensions/XTest.h>
+#ifdef HAVE_XSSEXTENSION
+#include <X11/extensions/scrnsaver.h>
 #endif
 
 #include "xfullscreen.h"
@@ -67,7 +67,7 @@ static Window wm_window;
 static Window fs_window;
 static Window output_window;
 static GC gc;
-static int have_xtest;
+static int have_xss;
 static int output_width, output_height;
 static int output_aspect;
 static int output_on_root;
@@ -107,10 +107,6 @@ static Atom wm_delete_window;
 static Atom xawtv_station;
 static Atom xawtv_remote;
 
-#ifdef HAVE_XTESTEXTENSION
-static KeyCode kc_shift_l; /* Fake key to send. */
-#endif
-
 static area_t video_area;
 static area_t window_area;
 static area_t scale_area;
@@ -248,12 +244,12 @@ static void x11_wait_mapped( Display *dpy, Window win )
     } while ( (event.type != MapNotify) || (event.xmap.event != win) );
 }
 
-static int have_xtestextention( void )
+static int have_xssextention( void )
 {  
-#ifdef HAVE_XTESTEXTENSION
-    int dummy1, dummy2, dummy3, dummy4;
+#ifdef HAVE_XSSEXTENSION
+    int dummy1, dummy2;
   
-    return (XTestQueryExtension( display, &dummy1, &dummy2, &dummy3, &dummy4 ) == True);
+    return (XScreenSaverQueryExtension( display, &dummy1, &dummy2 ) == True);
 #endif
     return 0;
 }
@@ -843,7 +839,7 @@ int xcommon_open_display( const char *user_geometry, int aspect, int verbose )
     output_aspect = aspect;
     output_height = 576;
 
-    have_xtest = 0;
+    have_xss = 0;
     output_on_root = 0;
     has_ewmh_state_fullscreen = 0;
     has_ewmh_state_above = 0;
@@ -927,13 +923,16 @@ int xcommon_open_display( const char *user_geometry, int aspect, int verbose )
         xfullscreen_print_summary( xf );
     }
 
-#ifdef HAVE_XTESTEXTENSION
-    kc_shift_l = XKeysymToKeycode( display, XK_Shift_L );
-#endif
-    have_xtest = have_xtestextention();
-    if( have_xtest && xcommon_verbose ) {
-        fprintf( stderr, "xcommon: Have XTest, will use it to ping the screensaver.\n" );
+    have_xss = have_xssextention();
+    if( have_xss && xcommon_verbose ) {
+        fprintf( stderr, "xcommon: Have XSS, will use it to disable the screensaver.\n" );
+    }
+
+#ifdef HAVE_XSSEXTENSION
+    if ( have_xss ) {
+        XScreenSaverSuspend( display, True );
     }
+#endif
 
     /* Initially, get the best width for our height. */
     output_width = xv_get_width_for_height( output_height );
@@ -1110,17 +1109,9 @@ void xcommon_ping_screensaver( void )
     }
 
     gettimeofday( &curtime, 0 );
-    if( timediff( &curtime, &last_ping_time ) > SCREENSAVER_PING_TIME ) { 
+    if( timediff( &curtime, &last_ping_time ) > SCREENSAVER_PING_TIME ) {
         last_ping_time = curtime;
-#ifdef HAVE_XTESTEXTENSION
-        if( have_xtest ) {
-            XTestFakeKeyEvent( display, kc_shift_l, True, CurrentTime );
-            XTestFakeKeyEvent( display, kc_shift_l, False, CurrentTime );
-        } else 
-#endif
-        {
-            XResetScreenSaver( display );
-        }
+        XResetScreenSaver( display );
     }
 }
 
@@ -1715,6 +1706,11 @@ void xcommon_poll_events( input_t *in )
 
 void xcommon_close_display( void )
 {
+#ifdef HAVE_XSSEXTENSION
+    if ( have_xss ) {
+        XScreenSaverSuspend( display, False );
+    }
+#endif
     XDestroyWindow( display, output_window );
     XDestroyWindow( display, wm_window );
     XDestroyWindow( display, fs_window );
-- 
1.6.0.6
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.