rpms/xorg-x11-server/devel xserver-1.3.0-idletime.patch, NONE, 1.1 xorg-x11-server.spec, 1.237, 1.238
Adam Jackson (ajax)
fedora-extras-commits at redhat.com
Mon Jul 2 15:18:37 UTC 2007
Author: ajax
Update of /cvs/pkgs/rpms/xorg-x11-server/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv21141
Modified Files:
xorg-x11-server.spec
Added Files:
xserver-1.3.0-idletime.patch
Log Message:
* Mon Jul 02 2007 Adam Jackson <ajax at redhat.com> 1.3.0.0-13
- Add IDLETIME sync counter for great powersaving justice.
- Conditionalise default font path for F7 spec compatibility.
xserver-1.3.0-idletime.patch:
--- NEW FILE xserver-1.3.0-idletime.patch ---
commit 7e2c935920cafadbd87c351f1a3239932864fb90
Author: Fredrik Höglund <fredrik at kde.org>
Date: Fri May 18 20:06:14 2007 +0200
Add a new IDLETIME system sync counter.
This counter exposes the time in milliseconds since the last
input event. Clients such as screen savers and power managers
can set an alarm on this counter to find out when the idle time
reaches a certain value, without having to poll the server.
diff --git a/Xext/sync.c b/Xext/sync.c
index c5441a1..6fc2dcc 100644
--- a/Xext/sync.c
+++ b/Xext/sync.c
@@ -243,6 +243,11 @@ SyncInitServerTime(
void
);
+static void
+SyncInitIdleTime(
+ void
+);
+
static void
SyncResetProc(
ExtensionEntry * /* extEntry */
@@ -2400,6 +2405,7 @@ SyncExtensionInit(INITARGS)
* because there is always a servertime counter.
*/
SyncInitServerTime();
+ SyncInitIdleTime();
#ifdef DEBUG
fprintf(stderr, "Sync Extension %d.%d\n",
@@ -2520,3 +2526,116 @@ SyncInitServerTime(void)
ServertimeQueryValue, ServertimeBracketValues);
pnext_time = NULL;
}
+
+
+
+/*
+ * IDLETIME implementation
+ */
+
+static pointer IdleTimeCounter;
+static XSyncValue *pIdleTimeValueLess;
+static XSyncValue *pIdleTimeValueGreater;
+
+static void
+IdleTimeQueryValue (pointer pCounter, CARD64 *pValue_return)
+{
+ CARD32 idle = GetTimeInMillis() - lastDeviceEventTime.milliseconds;
+ XSyncIntsToValue (pValue_return, idle, 0);
+}
+
+static void
+IdleTimeBlockHandler (pointer env,
+ struct timeval **wt,
+ pointer LastSelectMask)
+{
+ XSyncValue idle;
+
+ if (!pIdleTimeValueLess && !pIdleTimeValueGreater)
+ return;
+
+ IdleTimeQueryValue (NULL, &idle);
+
+ if (pIdleTimeValueLess &&
+ XSyncValueLessOrEqual (idle, *pIdleTimeValueLess))
+ {
+ AdjustWaitForDelay (wt, 0);
+ }
+ else if (pIdleTimeValueGreater)
+ {
+ unsigned long timeout = 0;
+
+ if (XSyncValueLessThan (idle, *pIdleTimeValueGreater))
+ {
+ XSyncValue value;
+ Bool overflow;
+
+ XSyncValueSubtract (&value, *pIdleTimeValueGreater,
+ idle, &overflow);
+ timeout = XSyncValueLow32 (value);
+ }
+
+ AdjustWaitForDelay (wt, timeout);
+ }
+}
+
+static void
+IdleTimeWakeupHandler (pointer env,
+ int rc,
+ pointer LastSelectMask)
+{
+ XSyncValue idle;
+
+ if (!pIdleTimeValueLess && !pIdleTimeValueGreater)
+ return;
+
+ IdleTimeQueryValue (NULL, &idle);
+
+ if ((pIdleTimeValueGreater &&
+ XSyncValueGreaterThan (idle, *pIdleTimeValueGreater)) ||
+ (pIdleTimeValueLess && XSyncValueLessThan (idle, *pIdleTimeValueLess)))
+ {
+ SyncChangeCounter (IdleTimeCounter, idle);
+ }
+}
+
+static void
+IdleTimeBracketValues (pointer pCounter,
+ CARD64 *pbracket_less,
+ CARD64 *pbracket_greater)
+{
+ Bool registered = (pIdleTimeValueLess || pIdleTimeValueGreater);
+
+ if (registered && !pbracket_less && !pbracket_greater)
+ {
+ RemoveBlockAndWakeupHandlers(IdleTimeBlockHandler,
+ IdleTimeWakeupHandler,
+ NULL);
+ }
+ else if (!registered && (pbracket_less || pbracket_greater))
+ {
+ RegisterBlockAndWakeupHandlers(IdleTimeBlockHandler,
+ IdleTimeWakeupHandler,
+ NULL);
+ }
+
+ pIdleTimeValueGreater = pbracket_greater;
+ pIdleTimeValueLess = pbracket_less;
+}
+
+static void
+SyncInitIdleTime (void)
+{
+ CARD64 resolution;
+ XSyncValue idle;
+
+ IdleTimeQueryValue (NULL, &idle);
+ XSyncIntToValue (&resolution, 4);
+
+ IdleTimeCounter = SyncCreateSystemCounter ("IDLETIME", idle, resolution,
+ XSyncCounterUnrestricted,
+ IdleTimeQueryValue,
+ IdleTimeBracketValues);
+
+ pIdleTimeValueLess = pIdleTimeValueGreater = NULL;
+}
Index: xorg-x11-server.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-server/devel/xorg-x11-server.spec,v
retrieving revision 1.237
retrieving revision 1.238
diff -u -r1.237 -r1.238
--- xorg-x11-server.spec 27 Jun 2007 14:07:46 -0000 1.237
+++ xorg-x11-server.spec 2 Jul 2007 15:17:53 -0000 1.238
@@ -9,7 +9,7 @@
Summary: X.Org X11 X server
Name: xorg-x11-server
Version: 1.3.0.0
-Release: 12%{?dist}
+Release: 13%{?dist}
URL: http://www.x.org
License: MIT/X11
Group: User Interface/X
@@ -65,6 +65,7 @@
Patch2007: xserver-1.3.0-randr12-config-hack.patch
Patch2008: xserver-1.3.0-randrama-no-zero-screens.patch
Patch2009: xserver-1.3.0-arm-iopl.patch
+Patch2010: xserver-1.3.0-idletime.patch
# assorted PCI layer shenanigans. oh the pain.
Patch2500: xorg-x11-server-1.2.99-unbreak-domain.patch
@@ -319,6 +320,7 @@
%patch2007 -p1 -b .randrconfig
%patch2008 -p1 -b .randrama-zero-screens
%patch2009 -p1 -b .arm
+%patch2010 -p1 -b .idletime
%patch2500 -p1 -b .unbreak-domains
%patch2501 -p1 -b .pci-bus-count
@@ -329,6 +331,12 @@
%build
+%if %{fedora} == 7
+%define default_font_path "unix/:7100,catalogue:/etc/X11/fontpath.d,built-ins"
+%else
+%define default_font_path "catalogue:/etc/X11/fontpath.d,built-ins"
+%endif
+
# --with-rgb-path should be superfluous now ?
# --with-pie ?
aclocal ; automake -a ; autoconf
@@ -343,7 +351,7 @@
--enable-xcsecurity \
--enable-xevie \
--with-int10=x86emu \
- --with-default-font-path="catalogue:/etc/X11/fontpath.d,built-ins" \
+ --with-default-font-path=%{default_font_path} \
--with-module-dir=%{moduledir} \
--with-os-name="Fedora Core 7" \
--with-os-vendor="Red Hat, Inc." \
@@ -588,6 +596,10 @@
%changelog
+* Mon Jul 02 2007 Adam Jackson <ajax at redhat.com> 1.3.0.0-13
+- Add IDLETIME sync counter for great powersaving justice.
+- Conditionalise default font path for F7 spec compatibility.
+
* Wed Jun 27 2007 Adam Jackson <ajax at redhat.com> 1.3.0.0-12
- Tweak %%post Xorg slightly to not demolish ModulePath lines installed by
the nvidia driver. (#244359)
More information about the fedora-extras-commits
mailing list