diff options
Diffstat (limited to 'desktop/wmclock/wmclock_nopolling.patch')
-rw-r--r-- | desktop/wmclock/wmclock_nopolling.patch | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/desktop/wmclock/wmclock_nopolling.patch b/desktop/wmclock/wmclock_nopolling.patch deleted file mode 100644 index a5a338f784..0000000000 --- a/desktop/wmclock/wmclock_nopolling.patch +++ /dev/null @@ -1,77 +0,0 @@ ---- 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,32 @@ - 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; -+ } -+ } -+ printf("xFd %d\n", xFd); -+ FD_ZERO(&xFdSet); -+ FD_SET(xFd,&xFdSet); -+ printf("debut select %d\n", nextEvent.tv_sec); -+ select(FD_SETSIZE,&xFdSet,NULL,NULL,&nextEvent); -+ printf("fin select\n"); - #endif - } - return(0); |