[arch-commits] Commit in xine-ui/trunk (4 files)

Eric Bélanger eric at archlinux.org
Sat Apr 9 04:40:37 UTC 2011


    Date: Saturday, April 9, 2011 @ 00:40:36
  Author: eric
Revision: 118860

upgpkg: xine-ui 0.99.6-2
Fixed disabling of screensaver (closed FS#17400)

Added:
  xine-ui/trunk/xine-ui-xdg.diff
Modified:
  xine-ui/trunk/PKGBUILD
  xine-ui/trunk/xine-ui.install
Deleted:
  xine-ui/trunk/ChangeLog

------------------+
 ChangeLog        |   27 ------
 PKGBUILD         |   30 ++++---
 xine-ui-xdg.diff |  206 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 xine-ui.install  |    1 
 4 files changed, 223 insertions(+), 41 deletions(-)

Deleted: ChangeLog
===================================================================
--- ChangeLog	2011-04-08 23:39:50 UTC (rev 118859)
+++ ChangeLog	2011-04-09 04:40:36 UTC (rev 118860)
@@ -1,27 +0,0 @@
-2010-03-23  Eric Belanger  <eric at archlinux.org>
-
-	* xine-ui 0.99.6-1
-	* Upstream update
-	* Cleaned up depends
-	* Removed optdepends
-	* Replaced lirc makedepends by lirc-utils
-	* Added shared-mime-info depends
-
-2010-01-19  Eric Belanger  <eric at archlinux.org>
-
-	* xine-ui 0.99.5-6
-	* Rebuilt for libpng 1.4 and libjpeg 8
-	* Added install scriptlet to update icon cache
-
-2009-06-18  Eric Belanger  <eric at archlinux.org>
-
-	* xine-ui 0.99.5-5
-	* Rebuilt against readline 6.0.00
-
-2008-08-19  Eric Belanger  <eric at archlinux.org>
-
-	* xine-ui 0.99.5-4
-	* Added xine and xine-remote binaries (missing in 0.99.5-3)
-	* Added missing libxt makedepends
-	* Replaced .install file by an optdepends
-	* Added ChangeLog

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2011-04-08 23:39:50 UTC (rev 118859)
+++ PKGBUILD	2011-04-09 04:40:36 UTC (rev 118860)
@@ -1,41 +1,43 @@
 # $Id$
-# Maintainer: Eric Belanger <eric at archlinux.org>
+# Maintainer: Eric Bélanger <eric at archlinux.org>
 
 pkgname=xine-ui
 pkgver=0.99.6
-pkgrel=1
+pkgrel=2
 pkgdesc="A free video player for Unix"
 arch=('i686' 'x86_64')
 license=('GPL')
 url="http://www.xine-project.org"
 depends=('xine-lib' 'curl' 'libxtst' 'libxinerama' 'libxv' 'libpng' 'libxft'
 	'libxxf86vm' 'readline' 'xdg-utils' 'shared-mime-info' 'hicolor-icon-theme'
-	'lirc-utils')
+	'desktop-file-utils' 'lirc-utils')
 makedepends=('libxt')
 options=('!emptydirs' '!strip')
-install=${pkgname}.install
+install=xine-ui.install
 source=(http://downloads.sourceforge.net/xine/${pkgname}-${pkgver}.tar.xz
-	lirc-check-a89347673097.patch lirc-makefile-a68dd15ff7ae.patch fix_lirc.diff)
+	lirc-check-a89347673097.patch lirc-makefile-a68dd15ff7ae.patch 
+        fix_lirc.diff xine-ui-xdg.diff)
 md5sums=('d468b4e7fe39ff19888261e1da9be914'
          '4f06f63f5fd55b08a648e5d63f881898'
          '9f5acaf14f3945aa2ce428631d09cd47'
-         '0174bd096756b9c6f47e9b8b5ff6e145')
+         '0174bd096756b9c6f47e9b8b5ff6e145'
+         '5972b4061acf3b553760de9ae2178d38')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  patch -p1 < "${srcdir}/lirc-check-a89347673097.patch" || return 1
-  patch -p1 < "${srcdir}/lirc-makefile-a68dd15ff7ae.patch" || return 1
-  patch -p1 < "${srcdir}/fix_lirc.diff" || return 1
-  autoconf || return 1
-
+  patch -p1 < "${srcdir}/lirc-check-a89347673097.patch"
+  patch -p1 < "${srcdir}/lirc-makefile-a68dd15ff7ae.patch"
+  patch -p1 < "${srcdir}/fix_lirc.diff"
+  patch -p1 < "${srcdir}/xine-ui-xdg.diff"
+  autoconf
   ./configure --prefix=/usr --mandir=/usr/share/man \
-    --with-x --enable-lirc --without-aalib --enable-debug || return 1
-  make || return 1
+    --with-x --enable-lirc --without-aalib --enable-debug
+  make
 }
 
 package() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  make DESTDIR="${pkgdir}" install || return 1
+  make DESTDIR="${pkgdir}" install
   install -d "${pkgdir}/usr/share/applications"
   mv "${pkgdir}/usr/share/xine/desktop/xine.desktop" "${pkgdir}/usr/share/applications"
 }

Added: xine-ui-xdg.diff
===================================================================
--- xine-ui-xdg.diff	                        (rev 0)
+++ xine-ui-xdg.diff	2011-04-09 04:40:36 UTC (rev 118860)
@@ -0,0 +1,206 @@
+--- xine-ui-0.99.6.orig/src/xitk/common.h
++++ xine-ui-0.99.6/src/xitk/common.h
+@@ -331,6 +331,5 @@ typedef struct {
+   int                       use_root_window;
+ 
+   int                       ssaver_enabled;
+-  int                       ssaver_timeout;
+ 
+   int                       skip_by_chapter;
+--- xine-ui-0.99.6.orig/src/xitk/main.c
++++ xine-ui-0.99.6/src/xitk/main.c
+@@ -1383,6 +1383,8 @@ int main(int argc, char *argv[]) {
+   if (sigprocmask (SIG_BLOCK,  &vo_mask, NULL))
+     fprintf (stderr, "sigprocmask() failed.\n");
+ 
++  signal(SIGCHLD, SIG_IGN);
++
+   gGui = (gGui_t *) calloc(1, sizeof(gGui_t));
+   
+   gGui->stream                 = NULL;
+--- xine-ui-0.99.6.orig/src/xitk/panel.c
++++ xine-ui-0.99.6/src/xitk/panel.c
+@@ -356,7 +356,6 @@ void panel_update_runtime_display(void)
+  * Update slider thread.
+  */
+ static void *slider_loop(void *dummy) {
+-  int screensaver_timer = 0;
+   int status, speed;
+   int pos, secs;
+   int i = 0;
+@@ -441,20 +440,7 @@ static void *slider_loop(void *dummy) {
+ 	else
+ 	  video_window_set_mrl((char *)gGui->mmk.mrl);
+ 	
+-	if(!xitk_is_window_iconified(gGui->video_display, gGui->video_window)) {
+-	  
+-	  if(gGui->ssaver_timeout) {
+-	    
+-	    if(!(i % 2))
+-	      screensaver_timer++;
+-	    
+-	    if(screensaver_timer >= gGui->ssaver_timeout) {
+-	      screensaver_timer = 0;
+-	      video_window_reset_ssaver();
+-	      
+-	    }
+-	  }  
+-	}
++       video_window_suspend_ssaver(!xitk_is_window_iconified(gGui->video_display, gGui->video_window));
+ 
+ 	if(gGui->logo_mode == 0) {
+ 	  
+@@ -494,6 +480,8 @@ static void *slider_loop(void *dummy) {
+ 	    stream_infos_update_infos();
+ 
+ 	}
++      } else {
++       video_window_suspend_ssaver(0);
+       }
+     }
+     
+--- xine-ui-0.99.6.orig/src/xitk/videowin.c
++++ xine-ui-0.99.6/src/xitk/videowin.c
+@@ -1087,6 +1087,9 @@ static void video_window_adapt_size (voi
+ 
+   /* The old window should be destroyed now */
+   if(old_video_window != None) {
++    /* Screensaver control is tied to our window id */
++    video_window_suspend_ssaver(0);
++
+     XDestroyWindow(gGui->video_display, old_video_window);
+      
+     if(gGui->cursor_grabbed)
+@@ -2261,69 +2264,34 @@ static void video_window_handle_event (X
+ 
+ }
+ 
+-void video_window_reset_ssaver(void) {
++void video_window_suspend_ssaver(int do_suspend) {
++  static int was_suspended;
+ 
+-  if(gGui->ssaver_enabled && (xitk_get_last_keypressed_time() >= (long int) gGui->ssaver_timeout)) {
++  do_suspend = do_suspend && gGui->ssaver_enabled;
+ 
+-#ifdef HAVE_XTESTEXTENSION
+-    if(gVw.have_xtest == True) {
+-      
+-      gVw.fake_key_cur++;
+-      
+-      if(gVw.fake_key_cur >= 2)
+-	gVw.fake_key_cur = 0;
+-
+-      XLockDisplay(gGui->video_display);
+-      XTestFakeKeyEvent(gGui->video_display, gVw.fake_keys[gVw.fake_key_cur], True, CurrentTime);
+-      XTestFakeKeyEvent(gGui->video_display, gVw.fake_keys[gVw.fake_key_cur], False, CurrentTime);
+-      XSync(gGui->video_display, False);
+-      XUnlockDisplay(gGui->video_display);
++  if(was_suspended != do_suspend) {
++    if(fork() == 0) {
++      char window_id[30];
++      char *args[] = { "xdg-screensaver", NULL, window_id, NULL };
++      int fd;
++
++      for(fd = 3; fd < 256; fd++)
++	close(fd);
++
++      args[1] = do_suspend ? "suspend" : "resume";
++      sprintf(window_id, "%lu", (unsigned long)gGui->video_window);
++      execvp(args[0], args);
++      _exit(0);
+     }
+-    else 
+-#endif
+-    {
+-      /* Reset the gnome screensaver. Look up the command in PATH only once to save time, */
+-      /* assuming its location and permission will not change during run time of xine-ui. */
+-      {
+-	static char *const gssaver_args[] = { "gnome-screensaver-command", "--poke", NULL };
+-	static char *gssaver_path   = NULL;
+-
+-	if(!gssaver_path) {
+-	  char *path = getenv("PATH");
+-
+-	  if(!path)
+-	    path = "/usr/local/bin:/usr/bin";
+-	  do {
+-	    char *p, *pbuf;
+-	    int   plen;
+-
+-	    for(p = path; *path && *path != ':'; path++)
+-	      ;
+-	    if(p == path)
+-	      plen = 1, p = ".";
+-	    else
+-	      plen = path - p;
+-	    asprintf(&pbuf, "%.*s/%s", plen, p, gssaver_args[0]);
+-	    if ( access(pbuf, X_OK) ) {
+-	      free(pbuf);
+-	      gssaver_path = "";
+-	    } else
+-	      gssaver_path = pbuf;
+-	  } while(!gssaver_path[0] && *path++);
+-	}
+-	if(gssaver_path[0] && (fork() == 0)) {
+-	  execv(gssaver_path, gssaver_args);
+-	  exit(0);
+-	}
+-      }
+ 
+-      XLockDisplay(gGui->video_display);
+-      XResetScreenSaver(gGui->video_display);
+-      XUnlockDisplay(gGui->video_display);
+-    }
++    was_suspended = do_suspend;
+   }
+ }
+ 
++void video_window_reset_ssaver(void) {
++  video_window_suspend_ssaver(1);
++}
++
+ void video_window_get_frame_size(int *w, int *h) {
+   if(w)
+     *w = gVw.frame_width;
+--- xine-ui-0.99.6.orig/src/xitk/videowin.h
++++ xine-ui-0.99.6/src/xitk/videowin.h
+@@ -81,6 +81,7 @@ void video_window_get_mag (float *xmag,
+ void video_window_update_logo(void);
+ void video_window_change_skins(int);
+ 
++void video_window_suspend_ssaver(int do_suspend);
+ void video_window_reset_ssaver(void);
+ 
+ void video_window_get_frame_size(int *w, int *h);
+--- xine-ui-0.99.6.orig/src/xitk/event.c
++++ xine-ui-0.99.6/src/xitk/event.c
+@@ -135,9 +135,6 @@ static void skip_by_chapter_cb(void *dat
+   gGui->skip_by_chapter = cfg->num_value;
+   panel_update_nextprev_tips();
+ }
+-static void ssaver_timeout_cb(void *data, xine_cfg_entry_t *cfg) {
+-  gGui->ssaver_timeout = cfg->num_value;
+-}
+ 
+ static void visual_anim_cb(void *data, xine_cfg_entry_t *cfg) {
+   
+@@ -1614,14 +1611,6 @@ void gui_init (int nfiles, char *filenam
+ 					 snapshot_loc_cb,
+ 					 CONFIG_NO_DATA);
+   
+-  gGui->ssaver_timeout =
+-    xine_config_register_num (__xineui_global_xine_instance, "gui.screensaver_timeout", 10,
+-			      _("Screensaver reset interval (s)"),
+-			      _("Time, in seconds, between two faked events to keep a screensaver quiet, 0 to disable."),
+-			      CONFIG_LEVEL_ADV,
+-			      ssaver_timeout_cb,
+-			      CONFIG_NO_DATA);
+-  
+   gGui->skip_by_chapter = 
+     xine_config_register_bool (__xineui_global_xine_instance, "gui.skip_by_chapter", 1,
+ 			       _("Chapter hopping"),
+
+
+
+
+ 

Modified: xine-ui.install
===================================================================
--- xine-ui.install	2011-04-08 23:39:50 UTC (rev 118859)
+++ xine-ui.install	2011-04-09 04:40:36 UTC (rev 118860)
@@ -1,6 +1,7 @@
 post_install() {
   xdg-icon-resource forceupdate --theme hicolor &> /dev/null
   update-mime-database usr/share/mime &> /dev/null
+  update-desktop-database -q
 }
 
 post_upgrade() {




More information about the arch-commits mailing list