* 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
|
||||
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 @@ Patch2006: xserver-1.3.0-less-randr-fakerama.patch
|
||||
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 @@ Xserver source code needed to build VNC server (Xvnc)
|
||||
%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 @@ Xserver source code needed to build VNC server (Xvnc)
|
||||
|
||||
%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 @@ aclocal ; automake -a ; autoconf
|
||||
--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 @@ rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
|
||||
%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
|
||||
- Tweak %%post Xorg slightly to not demolish ModulePath lines installed by
|
||||
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