[74161] trunk/dports/x11/wmclock

jmr at macports.org jmr at macports.org
Mon Dec 6 04:30:46 PST 2010


Revision: 74161
          http://trac.macports.org/changeset/74161
Author:   jmr at macports.org
Date:     2010-12-06 04:30:40 -0800 (Mon, 06 Dec 2010)
Log Message:
-----------
wmclock: patchfile

Added Paths:
-----------
    trunk/dports/x11/wmclock/files/
    trunk/dports/x11/wmclock/files/wmclock_nopolling.patch

Added: trunk/dports/x11/wmclock/files/wmclock_nopolling.patch
===================================================================
--- trunk/dports/x11/wmclock/files/wmclock_nopolling.patch	                        (rev 0)
+++ trunk/dports/x11/wmclock/files/wmclock_nopolling.patch	2010-12-06 12:30:40 UTC (rev 74161)
@@ -0,0 +1,74 @@
+--- wmclock.c.orig	2008-09-28 17:41:49.000000000 +0200
++++ wmclock.c	2008-09-28 20:33:59.000000000 +0200
+@@ -20,6 +20,7 @@
+  * with the software or the use or other dealings in the software.
+  */
+ 
++#include <sys/select.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
+ #include <sys/time.h>
+@@ -141,7 +142,8 @@
+ Display    *dpy;
+ Window     rootWindow;
+ int        screen;
+-/* int        xFd; */
++int        xFd;
++fd_set     xFdSet;
+ int        displayDepth;
+ XSizeHints sizeHints;
+ XWMHints   wmHints;
+@@ -801,6 +803,7 @@
+    XTextProperty wmName;
+    XClassHint    classHint;
+    Pixmap        shapeMask;
++   struct timeval nextEvent;
+    
+    /* Parse command line options */
+    progName = extractProgName(argv[0]);
+@@ -849,7 +852,7 @@
+    screen       = DefaultScreen(dpy);
+    rootWindow   = RootWindow(dpy, screen);
+    displayDepth = DefaultDepth(dpy, screen);
+-   /* xFd          = XConnectionNumber(dpy); */
++   xFd          = XConnectionNumber(dpy);
+    
+    /* Icon Daten nach XImage konvertieren */
+    GetXpms();
+@@ -1049,14 +1052,29 @@
+ 	   poll((struct poll *) 0, (size_t) 0, 50);	/* 5/100 sec */
+ 	}
+ #else
+-       if (enableYearDisplay)
+-	{
+-	   usleep(200000L);	/* 1/5 sec */
+-	}
++       //We compute the date of next event, in order to avoid polling
++       if (enableBlinking)
++	 {
++	   gettimeofday(&nextEvent,NULL);
++	   nextEvent.tv_sec = 0;
++	   nextEvent.tv_usec = 1000000-nextEvent.tv_usec;
++	 }
+        else
+-	{
+-	   usleep(50000L);	/* 5/100 sec */
+-	}
++	 {
++	   if (enableYearDisplay)
++	     {
++	       nextEvent.tv_sec = 86400-actualTime%86400;
++	       nextEvent.tv_usec = 0;
++	     }
++	   else
++	     {
++	       nextEvent.tv_sec = 60-actualTime%60;
++	       nextEvent.tv_usec = 0;
++	     }
++	 }
++       FD_ZERO(&xFdSet);
++       FD_SET(xFd,&xFdSet);
++       select(FD_SETSIZE,&xFdSet,NULL,NULL,&nextEvent);
+ #endif
+     }
+    return(0);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20101206/503dad09/attachment.html>


More information about the macports-changes mailing list