* Mon Jul 02 2007 Adam Jackson <ajax@redhat.com> 1.3.0.0-13
- Add IDLETIME sync counter for great powersaving justice. - Conditionalise default font path for F7 spec compatibility.
This commit is contained in:
parent
3e0fc774a0
commit
fed3940100
@ -9,7 +9,7 @@
|
|||||||
Summary: X.Org X11 X server
|
Summary: X.Org X11 X server
|
||||||
Name: xorg-x11-server
|
Name: xorg-x11-server
|
||||||
Version: 1.3.0.0
|
Version: 1.3.0.0
|
||||||
Release: 12%{?dist}
|
Release: 13%{?dist}
|
||||||
URL: http://www.x.org
|
URL: http://www.x.org
|
||||||
License: MIT/X11
|
License: MIT/X11
|
||||||
Group: User Interface/X
|
Group: User Interface/X
|
||||||
@ -65,6 +65,7 @@ Patch2006: xserver-1.3.0-less-randr-fakerama.patch
|
|||||||
Patch2007: xserver-1.3.0-randr12-config-hack.patch
|
Patch2007: xserver-1.3.0-randr12-config-hack.patch
|
||||||
Patch2008: xserver-1.3.0-randrama-no-zero-screens.patch
|
Patch2008: xserver-1.3.0-randrama-no-zero-screens.patch
|
||||||
Patch2009: xserver-1.3.0-arm-iopl.patch
|
Patch2009: xserver-1.3.0-arm-iopl.patch
|
||||||
|
Patch2010: xserver-1.3.0-idletime.patch
|
||||||
|
|
||||||
# assorted PCI layer shenanigans. oh the pain.
|
# assorted PCI layer shenanigans. oh the pain.
|
||||||
Patch2500: xorg-x11-server-1.2.99-unbreak-domain.patch
|
Patch2500: xorg-x11-server-1.2.99-unbreak-domain.patch
|
||||||
@ -319,6 +320,7 @@ Xserver source code needed to build VNC server (Xvnc)
|
|||||||
%patch2007 -p1 -b .randrconfig
|
%patch2007 -p1 -b .randrconfig
|
||||||
%patch2008 -p1 -b .randrama-zero-screens
|
%patch2008 -p1 -b .randrama-zero-screens
|
||||||
%patch2009 -p1 -b .arm
|
%patch2009 -p1 -b .arm
|
||||||
|
%patch2010 -p1 -b .idletime
|
||||||
|
|
||||||
%patch2500 -p1 -b .unbreak-domains
|
%patch2500 -p1 -b .unbreak-domains
|
||||||
%patch2501 -p1 -b .pci-bus-count
|
%patch2501 -p1 -b .pci-bus-count
|
||||||
@ -329,6 +331,12 @@ Xserver source code needed to build VNC server (Xvnc)
|
|||||||
|
|
||||||
%build
|
%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-rgb-path should be superfluous now ?
|
||||||
# --with-pie ?
|
# --with-pie ?
|
||||||
aclocal ; automake -a ; autoconf
|
aclocal ; automake -a ; autoconf
|
||||||
@ -343,7 +351,7 @@ aclocal ; automake -a ; autoconf
|
|||||||
--enable-xcsecurity \
|
--enable-xcsecurity \
|
||||||
--enable-xevie \
|
--enable-xevie \
|
||||||
--with-int10=x86emu \
|
--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-module-dir=%{moduledir} \
|
||||||
--with-os-name="Fedora Core 7" \
|
--with-os-name="Fedora Core 7" \
|
||||||
--with-os-vendor="Red Hat, Inc." \
|
--with-os-vendor="Red Hat, Inc." \
|
||||||
@ -588,6 +596,10 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jul 02 2007 Adam Jackson <ajax@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@redhat.com> 1.3.0.0-12
|
* Wed Jun 27 2007 Adam Jackson <ajax@redhat.com> 1.3.0.0-12
|
||||||
- Tweak %%post Xorg slightly to not demolish ModulePath lines installed by
|
- Tweak %%post Xorg slightly to not demolish ModulePath lines installed by
|
||||||
the nvidia driver. (#244359)
|
the nvidia driver. (#244359)
|
||||||
|
152
xserver-1.3.0-idletime.patch
Normal file
152
xserver-1.3.0-idletime.patch
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
commit 7e2c935920cafadbd87c351f1a3239932864fb90
|
||||||
|
Author: Fredrik Höglund <fredrik@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;
|
||||||
|
+}
|
Loading…
Reference in New Issue
Block a user