Update to xserver 1.19.7. Tested by jca@ and stsp@.
This commit is contained in:
parent
eb23d5beb3
commit
e7e87a2ccb
@ -1,3 +1,547 @@
|
|||||||
|
commit 937391523eef6459d1f8b1ae25fe7e1f77b8a12a
|
||||||
|
Author: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
Date: Sat Mar 2 14:13:20 2019 -0800
|
||||||
|
|
||||||
|
xserver 1.19.7
|
||||||
|
|
||||||
|
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
|
||||||
|
commit a93f8f74b54accfb94a8c56357e566db76c24b22
|
||||||
|
Author: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
Date: Sat Mar 2 14:10:41 2019 -0800
|
||||||
|
|
||||||
|
Update configure.ac bug URL for gitlab migration
|
||||||
|
|
||||||
|
It is based on Alan Coopersmith's commit for various fd.o projects.
|
||||||
|
|
||||||
|
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
|
||||||
|
commit af63efe470417cde8a64068b1e6965b2677d92d9
|
||||||
|
Author: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
Date: Thu Dec 13 22:32:27 2018 -0600
|
||||||
|
|
||||||
|
Add 24-bit color support to exaGetPixmapFirstPixel
|
||||||
|
|
||||||
|
It appears that people who developed EXA forgot that there used to be
|
||||||
|
graphics devices that used 24-bits (3 bytes) instead of 32-bits (4 bytes)
|
||||||
|
in order to display one pixel. The lack of 24-bit color support inside
|
||||||
|
exaGetPixmapFirstPixel causes SiS 6326 to crash when running Xfce since
|
||||||
|
SiS 6326 does not support 32-bit color.
|
||||||
|
|
||||||
|
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
|
||||||
|
commit 56547b196660e246e37132960723819972b99c8c
|
||||||
|
Author: Mario Kleiner <mario.kleiner.de@gmail.com>
|
||||||
|
Date: Mon Feb 5 11:20:41 2018 +0100
|
||||||
|
|
||||||
|
glx: Only assign 8 bpc fbconfigs for composite visuals.
|
||||||
|
|
||||||
|
Commit 91c42093b248 ("glx: Duplicate relevant fbconfigs for
|
||||||
|
compositing visuals") adds many new depth 32 fbconfigs as
|
||||||
|
composite visuals. On a X-Screen running at depth 24, this
|
||||||
|
also adds bgra 10-10-10-2 fbconigs, as they also have
|
||||||
|
config.rgbBits == 32, but these are not displayable on a
|
||||||
|
depth 24 screen, leading to visually corrupted desktops
|
||||||
|
under some compositors, e.g., fdo bug 104597 "Compton
|
||||||
|
weird colors" when running compton with
|
||||||
|
"compton --backend glx".
|
||||||
|
|
||||||
|
Be more conservative for now and only select fbconfigs with
|
||||||
|
8 bpc red, green, blue components for composite visuals.
|
||||||
|
|
||||||
|
Fixes: 91c42093b248 ("glx: Duplicate relevant fbconfigs for
|
||||||
|
compositing visuals")
|
||||||
|
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104597
|
||||||
|
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
|
||||||
|
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
|
||||||
|
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
(cherry picked from commit bebcc8477c8070ade9dd4be7299c718baeab3d7a)
|
||||||
|
|
||||||
|
commit e96bd477395af3c2c3157ebda0f55ea4b672a114
|
||||||
|
Author: Lyude Paul <lyude@redhat.com>
|
||||||
|
Date: Tue Feb 6 12:41:47 2018 -0500
|
||||||
|
|
||||||
|
xwayland: Don't process cursor warping without an xwl_seat
|
||||||
|
|
||||||
|
Unfortunately, on my machine Xwayland immediately crashes when I try to
|
||||||
|
start it. gdb backtrace:
|
||||||
|
|
||||||
|
#0 0x00007ffff74f0e79 in wl_proxy_marshal () from target:/lib64/libwayland-client.so.0
|
||||||
|
#1 0x0000000000413172 in zwp_confined_pointer_v1_destroy (zwp_confined_pointer_v1=0x700000000)
|
||||||
|
at hw/xwayland/Xwayland@exe/pointer-constraints-unstable-v1-client-protocol.h:612
|
||||||
|
#2 0x0000000000418bc0 in xwl_seat_destroy_confined_pointer (xwl_seat=0x8ba2a0)
|
||||||
|
at /home/lyudess/Projects/xserver/hw/xwayland/xwayland-input.c:2839
|
||||||
|
#3 0x0000000000418c09 in xwl_seat_unconfine_pointer (xwl_seat=0x8ba2a0)
|
||||||
|
at /home/lyudess/Projects/xserver/hw/xwayland/xwayland-input.c:2849
|
||||||
|
#4 0x0000000000410d97 in xwl_cursor_confined_to (device=0xa5a000, screen=0x8b9d80, window=0x9bdb70)
|
||||||
|
at /home/lyudess/Projects/xserver/hw/xwayland/xwayland.c:328
|
||||||
|
#5 0x00000000004a8571 in ConfineCursorToWindow (pDev=0xa5a000, pWin=0x9bdb70, generateEvents=1,
|
||||||
|
confineToScreen=0) at /home/lyudess/Projects/xserver/dix/events.c:900
|
||||||
|
#6 0x00000000004a94b7 in ScreenRestructured (pScreen=0x8b9d80)
|
||||||
|
at /home/lyudess/Projects/xserver/dix/events.c:1387
|
||||||
|
#7 0x0000000000502386 in RRScreenSizeNotify (pScreen=0x8b9d80)
|
||||||
|
at /home/lyudess/Projects/xserver/randr/rrscreen.c:160
|
||||||
|
#8 0x000000000041a83c in update_screen_size (xwl_output=0x8e7670, width=3840, height=2160)
|
||||||
|
at /home/lyudess/Projects/xserver/hw/xwayland/xwayland-output.c:203
|
||||||
|
#9 0x000000000041a9f0 in apply_output_change (xwl_output=0x8e7670)
|
||||||
|
at /home/lyudess/Projects/xserver/hw/xwayland/xwayland-output.c:252
|
||||||
|
#10 0x000000000041aaeb in xdg_output_handle_done (data=0x8e7670, xdg_output=0x8e7580)
|
||||||
|
at /home/lyudess/Projects/xserver/hw/xwayland/xwayland-output.c:307
|
||||||
|
#11 0x00007ffff50e9d1e in ffi_call_unix64 () at ../src/x86/unix64.S:76
|
||||||
|
#12 0x00007ffff50e968f in ffi_call (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>,
|
||||||
|
avalue=<optimized out>) at ../src/x86/ffi64.c:525
|
||||||
|
#13 0x00007ffff74f3d8b in wl_closure_invoke () from target:/lib64/libwayland-client.so.0
|
||||||
|
#14 0x00007ffff74f0928 in dispatch_event.isra () from target:/lib64/libwayland-client.so.0
|
||||||
|
#15 0x00007ffff74f1be4 in wl_display_dispatch_queue_pending () from target:/lib64/libwayland-client.so.0
|
||||||
|
#16 0x00007ffff74f200b in wl_display_roundtrip_queue () from target:/lib64/libwayland-client.so.0
|
||||||
|
#17 0x0000000000418cad in InitInput (argc=12, argv=0x7fffffffd9c8)
|
||||||
|
at /home/lyudess/Projects/xserver/hw/xwayland/xwayland-input.c:2867
|
||||||
|
#18 0x00000000004a20e3 in dix_main (argc=12, argv=0x7fffffffd9c8, envp=0x7fffffffda30)
|
||||||
|
at /home/lyudess/Projects/xserver/dix/main.c:250
|
||||||
|
#19 0x0000000000420cb2 in main (argc=12, argv=0x7fffffffd9c8, envp=0x7fffffffda30)
|
||||||
|
at /home/lyudess/Projects/xserver/dix/stubmain.c:34
|
||||||
|
|
||||||
|
This appears to be the result of xwl_cursor_confined_to() and
|
||||||
|
xwl_screen_get_default_seat(). While not against protocol, mutter ends
|
||||||
|
up sending xdg_output before wl_seat. xwl_screen_get_default_seat()
|
||||||
|
makes the naïve assumption that we always have a valid seat, we end up
|
||||||
|
returning a pointer to the empty list itself instead of an actual seat
|
||||||
|
and causing ourselves to segfault.
|
||||||
|
|
||||||
|
So, actually return NULL in xwl_screen_get_default_seat() if the seat
|
||||||
|
list is empty, and skip any pointer confinement processing in
|
||||||
|
xwl_cursor_confined_to() when we don't have a seat setup yet.
|
||||||
|
|
||||||
|
Signed-off-by: Lyude Paul <lyude@redhat.com>
|
||||||
|
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
(cherry picked from commit 98edb9a35e2cdd61355656b82975d7f2b6a9f0e6)
|
||||||
|
|
||||||
|
commit 61d3f56877b23241757490efcdb759b905caca1d
|
||||||
|
Author: Alex Goins <agoins@nvidia.com>
|
||||||
|
Date: Mon Jan 8 18:44:25 2018 -0800
|
||||||
|
|
||||||
|
randr: Fix rotation check in ProcRRSetScreenSize()
|
||||||
|
|
||||||
|
ProcRRSetScreenSize() does bounds checking to ensure that none of the CRTCs have
|
||||||
|
a viewport that extends beyond the new screen size. In doing so, it accounts for
|
||||||
|
if the CRTC is rotated 90 or 270 degrees, swapping width and height.
|
||||||
|
|
||||||
|
However, it does so by testing if crtc->rotation is equal to RR_Rotate_90 or
|
||||||
|
RR_Rotate_270. crtc->rotation is a bit mask, and it includes reflection as well
|
||||||
|
as rotation. If a CRTC is reflected as well as rotated, it will incorrectly fail
|
||||||
|
this test, resulting in incorrect dimensions being used to verify the validity
|
||||||
|
of the new screen size. In some cases, this can cause valid uses of
|
||||||
|
ProcRRSetScreenSize() to fail with BadMatch.
|
||||||
|
|
||||||
|
This patch fixes the issue by testing that the bits RR_Rotate_90 or
|
||||||
|
RR_Rotate_270 are set, rather than testing for equality.
|
||||||
|
|
||||||
|
Signed-off-by: Alex Goins <agoins@nvidia.com>
|
||||||
|
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
|
||||||
|
(cherry picked from commit 6b26a7bda9efa93440734ede0382a3e9a6761365)
|
||||||
|
|
||||||
|
commit cb908a7840487e4b81aa16c5b3a4b609ff1153fc
|
||||||
|
Author: Jeff Smith <whydoubt@gmail.com>
|
||||||
|
Date: Fri Jan 26 06:25:22 2018 -0600
|
||||||
|
|
||||||
|
glamor: tidy up some gradient color formulas
|
||||||
|
|
||||||
|
- Avoid some needlessly complex equations for calculating the color at a
|
||||||
|
point in a gradient field.
|
||||||
|
- Avoid calculating certain values multiple times.
|
||||||
|
- Use similar variable names across the two versions of the get_color
|
||||||
|
function where practical.
|
||||||
|
|
||||||
|
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
|
||||||
|
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
(cherry picked from commit ff410c56bfd6dcdf5d252ef0ba3f4c6fde91774b)
|
||||||
|
|
||||||
|
commit b41bb8147e706cb8e615842e08a548b7e8afd279
|
||||||
|
Author: Jeff Smith <whydoubt@gmail.com>
|
||||||
|
Date: Fri Jan 26 06:25:21 2018 -0600
|
||||||
|
|
||||||
|
glamor: remove unused variables in linear gradient shader
|
||||||
|
|
||||||
|
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
|
||||||
|
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
(cherry picked from commit 3bd17dff1ac5a4685a5da92a9982f621effee658)
|
||||||
|
|
||||||
|
commit c715645c14ec00cd49e6bb86340351fa97ab6ea0
|
||||||
|
Author: Jeff Smith <whydoubt@gmail.com>
|
||||||
|
Date: Fri Jan 26 06:25:20 2018 -0600
|
||||||
|
|
||||||
|
glamor: fix no-reflect case for gradients
|
||||||
|
|
||||||
|
When compositing a no-reflect gradient, 'before' the gradient is empty,
|
||||||
|
but 'after' the gradient is padded with the final color. Both sides are
|
||||||
|
supposed to be empty.
|
||||||
|
|
||||||
|
This is fixed by moving the virtual stops to match the first and last
|
||||||
|
client-supplied stops for no-reflect gradients, then causing everything
|
||||||
|
'before' the initial virtual stop and 'after' the final virtual stop to
|
||||||
|
emit rgba(0,0,0,0). This does not impact gradients using the other
|
||||||
|
reflect modes.
|
||||||
|
|
||||||
|
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
|
||||||
|
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
(cherry picked from commit 5815c7b5951fd46d69e5c40144b64e516c7afdbf)
|
||||||
|
|
||||||
|
commit 38e6fb757386e2cb2c51a27e52346473d4ffb9a1
|
||||||
|
Author: Jeff Smith <whydoubt@gmail.com>
|
||||||
|
Date: Fri Jan 26 06:25:19 2018 -0600
|
||||||
|
|
||||||
|
glamor: fix repeat-reflect case in linear gradient shader
|
||||||
|
|
||||||
|
If _pt_distance is negative, it causes the final distance to be negative
|
||||||
|
in the repeat-reflect case. Moving the scaling by _pt_distance earlier
|
||||||
|
avoids this problem, and simplifies some equations as a bonus.
|
||||||
|
|
||||||
|
Bugzilla: https://bugs.freedesktop.org/98508
|
||||||
|
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
|
||||||
|
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
(cherry picked from commit 3e377e238f7257fd01e56a4a25dfd77e033673e4)
|
||||||
|
|
||||||
|
commit f6cd99ed79c17e3aa04b8821d10ca95939bd8675
|
||||||
|
Author: Olivier Fourdan <ofourdan@redhat.com>
|
||||||
|
Date: Wed Jan 24 17:45:37 2018 +0100
|
||||||
|
|
||||||
|
xwayland: remove dirty window unconditionally on unrealize
|
||||||
|
|
||||||
|
This is a rare occurrence of a crash in Xwayland for which I don't have
|
||||||
|
the reproducing steps, just a core file.
|
||||||
|
|
||||||
|
The backtrace looks as follow:
|
||||||
|
|
||||||
|
#0 raise () from /usr/lib64/libc.so.6
|
||||||
|
#1 abort () from /usr/lib64/libc.so.6
|
||||||
|
#2 OsAbort () at utils.c:1361
|
||||||
|
#3 AbortServer () at log.c:877
|
||||||
|
#4 FatalError () at log.c:1015
|
||||||
|
#5 OsSigHandler () at osinit.c:154
|
||||||
|
#6 <signal handler called>
|
||||||
|
#7 xwl_glamor_pixmap_get_wl_buffer () at xwayland-glamor.c:162
|
||||||
|
#8 xwl_screen_post_damage () at xwayland.c:514
|
||||||
|
#9 block_handler () at xwayland.c:665
|
||||||
|
#10 BlockHandler () at dixutils.c:388
|
||||||
|
#11 WaitForSomething () at WaitFor.c:219
|
||||||
|
#12 Dispatch () at dispatch.c:422
|
||||||
|
#13 dix_main () at main.c:287
|
||||||
|
|
||||||
|
The crash is caused by dereferencing “xwl_pixmap->buffer” in
|
||||||
|
xwl_glamor_pixmap_get_wl_buffer() because “xwl_pixmap” is NULL.
|
||||||
|
|
||||||
|
Reason for this is because the corresponding pixmap is from the root
|
||||||
|
window and xwayland is rootless by default.
|
||||||
|
|
||||||
|
This can happen if the window was mapped, redirected, damaged and
|
||||||
|
unredirected immediately, before the damage is processed by Xwayland.
|
||||||
|
|
||||||
|
Make sure to remove the dirty window from the damage list on unrealize
|
||||||
|
to prevent this from happening.
|
||||||
|
|
||||||
|
Credit goes to Adam Jackson <ajax@nwnk.net> and Daniel Stone
|
||||||
|
<daniel@fooishbar.org> for finding the root cause the issue.
|
||||||
|
|
||||||
|
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||||
|
Reviewed-by: Daniel Stone <daniels@collabora.com>
|
||||||
|
(cherry picked from commit 3362422e8413dd9f231cfac50ce0a0862525b1bf)
|
||||||
|
|
||||||
|
commit 9cd243f75dc52e1c649178963ab22583db52cd54
|
||||||
|
Author: Michal Srb <msrb@suse.com>
|
||||||
|
Date: Mon Nov 27 09:59:01 2017 +0100
|
||||||
|
|
||||||
|
os/inputthread: Force unlock when stopping thread.
|
||||||
|
|
||||||
|
The inputthread is kept locked all the time while X server's VT is not active.
|
||||||
|
If the X server is terminated while not active, it will be stuck forever in
|
||||||
|
InputThreadFini waiting for the thread to join, but it wouldn't because it is
|
||||||
|
locked.
|
||||||
|
|
||||||
|
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=103782
|
||||||
|
Signed-off-by: Michal Srb <msrb@suse.com>
|
||||||
|
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
(cherry picked from commit 71348e99a8e6a95542e483b93839168ca8f51f81)
|
||||||
|
|
||||||
|
commit 5c456b6e2a9a579e67ba577f9147642406f2ce99
|
||||||
|
Author: Peter Harris <pharris@opentext.com>
|
||||||
|
Date: Thu Dec 14 12:21:19 2017 -0500
|
||||||
|
|
||||||
|
composite: Propagate damagedDescendants when reparented
|
||||||
|
|
||||||
|
If a window that is fully covered by an automatic-redirected descendant
|
||||||
|
(even implicitly, eg. via BackingStores) is reparented, the automatic
|
||||||
|
updates could be broken if the new parent is not marked as having
|
||||||
|
damaged descendants.
|
||||||
|
|
||||||
|
Fix this issue by propagating the damagedDescendants flag whenever a
|
||||||
|
window is reparented.
|
||||||
|
|
||||||
|
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
Signed-off-by: Peter Harris <pharris@opentext.com>
|
||||||
|
(cherry picked from commit d5c23b29487d5ff440abf5ed0beb22c00f21e387)
|
||||||
|
|
||||||
|
commit df319f889ddc952dd065bbb3252d045b90baaf8e
|
||||||
|
Author: Michel Dänzer <michel.daenzer@amd.com>
|
||||||
|
Date: Wed Jan 24 12:28:38 2018 +0100
|
||||||
|
|
||||||
|
xf86XvMCScreenInit: Clear pScreenPriv->dixinfo when freeing pAdapt
|
||||||
|
|
||||||
|
Fixes double-free later in xf86XvMCCloseScreen, which would generally
|
||||||
|
cause fireworks.
|
||||||
|
|
||||||
|
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
|
||||||
|
(cherry picked from commit 75408f53d4e203e462b2f13ea4b06264f0e59ad2)
|
||||||
|
|
||||||
|
commit d0d1a694f967af770fba0d36043fd5218ff20984
|
||||||
|
Author: Michel Dänzer <michel.daenzer@amd.com>
|
||||||
|
Date: Wed Jan 24 11:40:50 2018 +0100
|
||||||
|
|
||||||
|
Revert "present: Only send PresentCompleteNotify events to the presenting client"
|
||||||
|
|
||||||
|
This reverts commit 5c00e693631475679c1c2504e03177652ec7de28.
|
||||||
|
|
||||||
|
It broke the Gallium nine state tracker, which makes PresentPixmap
|
||||||
|
requests on one display connection and processes the corresponding
|
||||||
|
events on another one.
|
||||||
|
|
||||||
|
The issue that motivated this change is prevented on the client side by
|
||||||
|
https://cgit.freedesktop.org/mesa/mesa/commit/?id=7b0e8264dd21ae05521d08d41fecd84139401fef
|
||||||
|
|
||||||
|
Bugzilla: https://bugs.freedesktop.org/104678
|
||||||
|
(cherry picked from commit 76732f498f1e73fb081841a04faf068660f3d5c7)
|
||||||
|
|
||||||
|
commit 8be1dbeacf5f29c0b538414e87d47c9d5af08d9d
|
||||||
|
Author: Martin Wilck <mwilck@suse.com>
|
||||||
|
Date: Tue Jan 9 20:33:09 2018 +0100
|
||||||
|
|
||||||
|
xfree86: add default modes for 16:9 and 16:10
|
||||||
|
|
||||||
|
Improve the user experience for users with wide screens by adding standard
|
||||||
|
16:9 and 16:10 modes to extramodes, as suggested previously
|
||||||
|
(https://lists.x.org/archives/xorg-devel/2016-February/048866.html).
|
||||||
|
Tested successfully on my laptop. Feedback welcome.
|
||||||
|
|
||||||
|
See also https://bugs.freedesktop.org/show_bug.cgi?id=37858.
|
||||||
|
|
||||||
|
Signed-off-by: Martin Wilck <mwilck@suse.com>
|
||||||
|
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
(cherry picked from commit a5e9bcad7ad0887f804905b482894b85751519fb)
|
||||||
|
|
||||||
|
commit 71269c6e57cec82bbf81b1c99c8019098303d6a3
|
||||||
|
Author: Adam Jackson <ajax@redhat.com>
|
||||||
|
Date: Wed Dec 13 14:53:56 2017 -0500
|
||||||
|
|
||||||
|
os: Fix a type error in the IPv6 XDMCP code
|
||||||
|
|
||||||
|
Building with strict-aliasing rightly chirps here:
|
||||||
|
|
||||||
|
../os/xdmcp.c: In function ‘XdmcpRegisterConnection’:
|
||||||
|
../os/xdmcp.c:489:31: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
|
||||||
|
&((struct sockaddr_in6 *) &address)->sin6_addr.s6_addr[12];
|
||||||
|
^~~~~~~~~~~~
|
||||||
|
|
||||||
|
We have "const char *address", so &address here is a char ** (i.e., it
|
||||||
|
points to the slot on the stack containing the pointer to the character
|
||||||
|
array passed in as an argument). Casting that to a struct sockaddr_in6 *
|
||||||
|
is wrong, because it means that area of the stack will be reinterpreted
|
||||||
|
as a struct sockaddr_in6.
|
||||||
|
|
||||||
|
Instead, cast address, not &address.
|
||||||
|
|
||||||
|
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
(cherry picked from commit 652913cd9474946bcb29271602bacfd98f46ad0b)
|
||||||
|
|
||||||
|
commit 8f11ab2b475623d5c00e146a7d6108f356a16b52
|
||||||
|
Author: Helmut Grohne <helmut@subdivi.de>
|
||||||
|
Date: Thu Dec 21 11:48:15 2017 +0100
|
||||||
|
|
||||||
|
build: guess availability of monotonic clock for cross compilation
|
||||||
|
|
||||||
|
When cross compiling, the value of MONOTONIC_CLOCK would be "cross
|
||||||
|
compiling", because AC_RUN_IFELSE doesn't work. However when enabling
|
||||||
|
wayland, a monotonic clock is required and configure aborts.
|
||||||
|
|
||||||
|
We change detection of CLOCK_MONOTONIC to degrade it gracefully from a
|
||||||
|
run check to a declaration check in case of cross compilation based on
|
||||||
|
the assumption that most systems will have a monotonic clock and those
|
||||||
|
that don't won't be able to run Xwayland anyway. The trade-off
|
||||||
|
essentially is either "always fail cross compilation" or "produce an
|
||||||
|
unusable Xwayland for unusual platform" and this commit switches to the
|
||||||
|
latter.
|
||||||
|
|
||||||
|
Signed-off-by: Helmut Grohne <helmut@subdivi.de>
|
||||||
|
Bug-Debian: https://bugs.debian.org/882531
|
||||||
|
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
(cherry picked from commit c601c8faf54ff9e3bcbc653421828d71042deef7)
|
||||||
|
|
||||||
|
commit 7cec7fb7bc34ea857e2d40ad32ead8a328dbe1a1
|
||||||
|
Author: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
Date: Fri Jan 5 11:58:42 2018 +1000
|
||||||
|
|
||||||
|
config: fix NULL value detection for ID_INPUT being unset
|
||||||
|
|
||||||
|
Erroneous condition caused us to keep going with all devices that didn't have
|
||||||
|
ID_INPUT set.
|
||||||
|
|
||||||
|
Fixes: 5aad81445c8c3d6
|
||||||
|
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104382
|
||||||
|
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
(cherry picked from commit a309323328d9d6e0bf5d9ea1d75920e53b9beef3)
|
||||||
|
|
||||||
|
commit 16896d05a6a2a91fd53cf6af56ce5e79f6abb500
|
||||||
|
Author: Corentin Rossignon <corentin.rossignon@gmail.com>
|
||||||
|
Date: Thu Jan 4 08:34:01 2018 +0100
|
||||||
|
|
||||||
|
glamor: Specify GLSL version for xv shader
|
||||||
|
|
||||||
|
SAMPLE is a GLSL keyword in newer OpenGL version.
|
||||||
|
This fix issue with gnome-shell and playing video using xv
|
||||||
|
|
||||||
|
Signed-off-by: Corentin Rossignon <corentin.rossignon@gmail.com>
|
||||||
|
Bugzilla: https://bugs.freedesktop.org/104405
|
||||||
|
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
(cherry picked from commit dbfbe58b94ec07a45fd6170f96bffec55051724e)
|
||||||
|
|
||||||
|
commit 5e83ebd76738455c443a66024b0b5eb92930b36c
|
||||||
|
Author: Adam Jackson <ajax@redhat.com>
|
||||||
|
Date: Tue Jan 9 10:54:05 2018 -0500
|
||||||
|
|
||||||
|
animcur: Fix transitions between animated cursors
|
||||||
|
|
||||||
|
We weren't cancelling the old timer when changing cursors, making things
|
||||||
|
go all crashy. Logically we could always cancel the timer first, but
|
||||||
|
then we'd have to call TimerSet to re-arm ourselves, and GetTimeInMillis
|
||||||
|
is potentially expensive.
|
||||||
|
|
||||||
|
Reported-by: https://devtalk.nvidia.com/default/topic/1028172/linux/titan-v-ubuntu-16-04lts-and-387-34-driver-crashes-badly/post/5230967/#5230967
|
||||||
|
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
|
||||||
|
Tested-by: Aaron Plattner <aplattner@nvidia.com>
|
||||||
|
(cherry picked from commit de60245e05c0d2528d4ff42557a044387e53315c)
|
||||||
|
|
||||||
|
commit 693f0e21d55d6e9fe792d91e76e4168aa813db71
|
||||||
|
Author: Adam Jackson <ajax@redhat.com>
|
||||||
|
Date: Thu Oct 26 15:24:39 2017 -0400
|
||||||
|
|
||||||
|
animcur: Run the timer from the device, not the screen
|
||||||
|
|
||||||
|
This is very slightly more efficient since the callback now doesn't need
|
||||||
|
to walk every input device, instead we know exactly which device's
|
||||||
|
cursor is being updated. AnimCurTimerNotify() gets outdented nicely as a
|
||||||
|
result. A more important side effect is that we can stop using the
|
||||||
|
TimerAbsolute mode and just pass in the relative delay.
|
||||||
|
|
||||||
|
In AnimCurSetCursorPosition, we no longer need to rearm the timer with
|
||||||
|
the new screen; it is enough to update the device's state. In
|
||||||
|
AnimCurDisplayCursor we need to notice when we're switching from
|
||||||
|
animated cursor to regular and cancel the existing timer.
|
||||||
|
|
||||||
|
Reviewed-by: Robert Morell <rmorell@nvidia.com>
|
||||||
|
Tested-by: Robert Morell <rmorell@nvidia.com>
|
||||||
|
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
(cherry picked from commit 094a63d56fbfb9e23210cc9ac538fb198af37cee)
|
||||||
|
|
||||||
|
commit 354c48304d27f75b7c33c03a0adb050c37788ccf
|
||||||
|
Author: Adam Jackson <ajax@redhat.com>
|
||||||
|
Date: Thu Oct 26 13:53:06 2017 -0400
|
||||||
|
|
||||||
|
animcur: Return the next interval directly from the timer callback
|
||||||
|
|
||||||
|
If the return value is non-zero here, DoTimer() will automatically rearm
|
||||||
|
the timer for the new (relative) delay. 'soonest' is in absolute time,
|
||||||
|
so subtract off 'now' and return that.
|
||||||
|
|
||||||
|
Reviewed-by: Robert Morell <rmorell@nvidia.com>
|
||||||
|
Tested-by: Robert Morell <rmorell@nvidia.com>
|
||||||
|
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
(cherry picked from commit cc3241a712684f8c7147f5688e9ee3ecb5a93b87)
|
||||||
|
|
||||||
|
commit 26841b2c9ea03fda8b2d0da254e0344fd2a3afce
|
||||||
|
Author: Adam Jackson <ajax@redhat.com>
|
||||||
|
Date: Thu Oct 26 13:40:57 2017 -0400
|
||||||
|
|
||||||
|
animcur: Use fixed-size screen private
|
||||||
|
|
||||||
|
Reviewed-by: Robert Morell <rmorell@nvidia.com>
|
||||||
|
Tested-by: Robert Morell <rmorell@nvidia.com>
|
||||||
|
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
(cherry picked from commit 3abbdb7318018584a27220737bd92081ce8ee67c)
|
||||||
|
|
||||||
|
commit 725b4b46ff59a8db84d8c12fec02c6b1d94b27ce
|
||||||
|
Author: Lukáš Krejčí <lskrejci@gmail.com>
|
||||||
|
Date: Sat Dec 30 23:46:45 2017 +0100
|
||||||
|
|
||||||
|
Xorg.wrap: Ensure correct ordering of post-install hook
|
||||||
|
|
||||||
|
The install rule of Xorg.wrap is currently a dependency of the
|
||||||
|
install-data target instead of the install-exec target. The build also
|
||||||
|
uses install-exec-hook to change the ownership and set the SUID bit on
|
||||||
|
the Xorg.wrap binary. The problem is that install-exec-hook is only
|
||||||
|
ordered respective to the install-exec target, the rules of install-data
|
||||||
|
may or may not have been executed.
|
||||||
|
|
||||||
|
If install-exec-hook runs before the Xorg.wrap binary is in place,
|
||||||
|
a message similar to the following will be present in the build log:
|
||||||
|
|
||||||
|
chown: cannot access '/pkgdir/usr/lib/xorg-server/Xorg.wrap': No such file or directory
|
||||||
|
make[6]: [Makefile:1151: install-exec-hook] Error 1 (ignored)
|
||||||
|
|
||||||
|
All that needs to be done is to change the name of the program variable
|
||||||
|
to contain 'exec' for the install rule to depend on the install-exec
|
||||||
|
target.
|
||||||
|
|
||||||
|
Excerpt from the Automake manual, chapter 12.2 The Two Parts of Install:
|
||||||
|
"Any variable using a user-defined directory prefix with ‘exec’ in the
|
||||||
|
name (e.g., myexecbin_PROGRAMS) is installed by install-exec. All other
|
||||||
|
user-defined prefixes are installed by install-data."
|
||||||
|
|
||||||
|
https://bugs.freedesktop.org/show_bug.cgi?id=104419
|
||||||
|
|
||||||
|
Signed-off-by: Lukáš Krejčí <lskrejci@gmail.com>
|
||||||
|
Acked-by: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
(cherry picked from commit f615cb62d47cb24ea31718e8226df53ce6651c91)
|
||||||
|
|
||||||
|
commit 16fd18479d2f617adf0e6de922586441be3808eb
|
||||||
|
Author: Olivier Fourdan <ofourdan@redhat.com>
|
||||||
|
Date: Fri Dec 15 16:43:47 2017 +0100
|
||||||
|
|
||||||
|
xwayland: avoid race condition on new keymap
|
||||||
|
|
||||||
|
When the Wayland compositor notifies of a new keymap, for the first X11
|
||||||
|
client using the keyboard, the last slave keyboard used might still not
|
||||||
|
be set (i.e. “lastSlave” is still NULL).
|
||||||
|
|
||||||
|
As a result, the new keymap is not applied, and the first X11 window
|
||||||
|
will have the wrong keymap set initially.
|
||||||
|
|
||||||
|
Apply the new keymap to the master keyboard as long as there's one.
|
||||||
|
|
||||||
|
Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=791383
|
||||||
|
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||||
|
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
(cherry picked from commit 170c95978530f6373bdf4488116902b273f3abf4)
|
||||||
|
|
||||||
|
commit a13271f2feb6e480b2e698d4efa3b94150a6808b
|
||||||
|
Author: Tapani Pälli <tapani.palli@intel.com>
|
||||||
|
Date: Tue Nov 28 09:23:29 2017 +0200
|
||||||
|
|
||||||
|
glx: do not pick sRGB config for 32-bit RGBA visual
|
||||||
|
|
||||||
|
This fixes blending issues seen with kwin and gnome-shell when
|
||||||
|
32bit visual has sRGB capability set.
|
||||||
|
|
||||||
|
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
|
||||||
|
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103699
|
||||||
|
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103646
|
||||||
|
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103655
|
||||||
|
(cherry picked from commit c2954b16c8730c7ed8441fd8dba25900f3aed265)
|
||||||
|
|
||||||
commit ebfb06b11955a6c32500b7086be912ab96b753a7
|
commit ebfb06b11955a6c32500b7086be912ab96b753a7
|
||||||
Author: Adam Jackson <ajax@redhat.com>
|
Author: Adam Jackson <ajax@redhat.com>
|
||||||
Date: Wed Dec 20 14:23:57 2017 -0500
|
Date: Wed Dec 20 14:23:57 2017 -0500
|
||||||
|
@ -55,7 +55,7 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
|||||||
$(srcdir)/Makefile.in $(srcdir)/xorg-server.pc.in \
|
$(srcdir)/Makefile.in $(srcdir)/xorg-server.pc.in \
|
||||||
$(srcdir)/xserver.ent.in $(top_srcdir)/configure COPYING \
|
$(srcdir)/xserver.ent.in $(top_srcdir)/configure COPYING \
|
||||||
ChangeLog INSTALL config.guess config.sub depcomp install-sh \
|
ChangeLog INSTALL config.guess config.sub depcomp install-sh \
|
||||||
ltmain.sh missing ylwrap
|
ltmain.sh missing
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/m4/ac_define_dir.m4 \
|
am__aclocal_m4_deps = $(top_srcdir)/m4/ac_define_dir.m4 \
|
||||||
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
|
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
|
||||||
|
278
xserver/aclocal.m4
vendored
278
xserver/aclocal.m4
vendored
@ -19,32 +19,63 @@ You have another version of autoconf. It may work, but is not guaranteed to.
|
|||||||
If you have problems, you may need to regenerate the build system entirely.
|
If you have problems, you may need to regenerate the build system entirely.
|
||||||
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
|
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
|
||||||
|
|
||||||
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
||||||
# serial 1 (pkg-config-0.24)
|
dnl serial 11 (pkg-config-0.29.1)
|
||||||
#
|
dnl
|
||||||
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
||||||
#
|
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
|
||||||
# This program is free software; you can redistribute it and/or modify
|
dnl
|
||||||
# it under the terms of the GNU General Public License as published by
|
dnl This program is free software; you can redistribute it and/or modify
|
||||||
# the Free Software Foundation; either version 2 of the License, or
|
dnl it under the terms of the GNU General Public License as published by
|
||||||
# (at your option) any later version.
|
dnl the Free Software Foundation; either version 2 of the License, or
|
||||||
#
|
dnl (at your option) any later version.
|
||||||
# This program is distributed in the hope that it will be useful, but
|
dnl
|
||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
dnl This program is distributed in the hope that it will be useful, but
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
dnl WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# General Public License for more details.
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
#
|
dnl General Public License for more details.
|
||||||
# You should have received a copy of the GNU General Public License
|
dnl
|
||||||
# along with this program; if not, write to the Free Software
|
dnl You should have received a copy of the GNU General Public License
|
||||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
dnl along with this program; if not, write to the Free Software
|
||||||
#
|
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||||
# As a special exception to the GNU General Public License, if you
|
dnl 02111-1307, USA.
|
||||||
# distribute this file as part of a program that contains a
|
dnl
|
||||||
# configuration script generated by Autoconf, you may include it under
|
dnl As a special exception to the GNU General Public License, if you
|
||||||
# the same distribution terms that you use for the rest of that program.
|
dnl distribute this file as part of a program that contains a
|
||||||
|
dnl configuration script generated by Autoconf, you may include it under
|
||||||
|
dnl the same distribution terms that you use for the rest of that
|
||||||
|
dnl program.
|
||||||
|
|
||||||
# PKG_PROG_PKG_CONFIG([MIN-VERSION])
|
dnl PKG_PREREQ(MIN-VERSION)
|
||||||
# ----------------------------------
|
dnl -----------------------
|
||||||
|
dnl Since: 0.29
|
||||||
|
dnl
|
||||||
|
dnl Verify that the version of the pkg-config macros are at least
|
||||||
|
dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
|
||||||
|
dnl installed version of pkg-config, this checks the developer's version
|
||||||
|
dnl of pkg.m4 when generating configure.
|
||||||
|
dnl
|
||||||
|
dnl To ensure that this macro is defined, also add:
|
||||||
|
dnl m4_ifndef([PKG_PREREQ],
|
||||||
|
dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
|
||||||
|
dnl
|
||||||
|
dnl See the "Since" comment for each macro you use to see what version
|
||||||
|
dnl of the macros you require.
|
||||||
|
m4_defun([PKG_PREREQ],
|
||||||
|
[m4_define([PKG_MACROS_VERSION], [0.29.1])
|
||||||
|
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
|
||||||
|
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
|
||||||
|
])dnl PKG_PREREQ
|
||||||
|
|
||||||
|
dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
|
||||||
|
dnl ----------------------------------
|
||||||
|
dnl Since: 0.16
|
||||||
|
dnl
|
||||||
|
dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
|
||||||
|
dnl first found in the path. Checks that the version of pkg-config found
|
||||||
|
dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
|
||||||
|
dnl used since that's the first version where most current features of
|
||||||
|
dnl pkg-config existed.
|
||||||
AC_DEFUN([PKG_PROG_PKG_CONFIG],
|
AC_DEFUN([PKG_PROG_PKG_CONFIG],
|
||||||
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
|
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
|
||||||
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
|
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
|
||||||
@ -66,18 +97,19 @@ if test -n "$PKG_CONFIG"; then
|
|||||||
PKG_CONFIG=""
|
PKG_CONFIG=""
|
||||||
fi
|
fi
|
||||||
fi[]dnl
|
fi[]dnl
|
||||||
])# PKG_PROG_PKG_CONFIG
|
])dnl PKG_PROG_PKG_CONFIG
|
||||||
|
|
||||||
# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||||
#
|
dnl -------------------------------------------------------------------
|
||||||
# Check to see whether a particular set of modules exists. Similar
|
dnl Since: 0.18
|
||||||
# to PKG_CHECK_MODULES(), but does not set variables or print errors.
|
dnl
|
||||||
#
|
dnl Check to see whether a particular set of modules exists. Similar to
|
||||||
# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
|
||||||
# only at the first occurence in configure.ac, so if the first place
|
dnl
|
||||||
# it's called might be skipped (such as if it is within an "if", you
|
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||||
# have to call PKG_CHECK_EXISTS manually
|
dnl only at the first occurence in configure.ac, so if the first place
|
||||||
# --------------------------------------------------------------
|
dnl it's called might be skipped (such as if it is within an "if", you
|
||||||
|
dnl have to call PKG_CHECK_EXISTS manually
|
||||||
AC_DEFUN([PKG_CHECK_EXISTS],
|
AC_DEFUN([PKG_CHECK_EXISTS],
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||||
if test -n "$PKG_CONFIG" && \
|
if test -n "$PKG_CONFIG" && \
|
||||||
@ -87,8 +119,10 @@ m4_ifvaln([$3], [else
|
|||||||
$3])dnl
|
$3])dnl
|
||||||
fi])
|
fi])
|
||||||
|
|
||||||
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
|
dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
|
||||||
# ---------------------------------------------
|
dnl ---------------------------------------------
|
||||||
|
dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
|
||||||
|
dnl pkg_failed based on the result.
|
||||||
m4_define([_PKG_CONFIG],
|
m4_define([_PKG_CONFIG],
|
||||||
[if test -n "$$1"; then
|
[if test -n "$$1"; then
|
||||||
pkg_cv_[]$1="$$1"
|
pkg_cv_[]$1="$$1"
|
||||||
@ -100,10 +134,11 @@ m4_define([_PKG_CONFIG],
|
|||||||
else
|
else
|
||||||
pkg_failed=untried
|
pkg_failed=untried
|
||||||
fi[]dnl
|
fi[]dnl
|
||||||
])# _PKG_CONFIG
|
])dnl _PKG_CONFIG
|
||||||
|
|
||||||
# _PKG_SHORT_ERRORS_SUPPORTED
|
dnl _PKG_SHORT_ERRORS_SUPPORTED
|
||||||
# -----------------------------
|
dnl ---------------------------
|
||||||
|
dnl Internal check to see if pkg-config supports short errors.
|
||||||
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
|
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||||
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
||||||
@ -111,19 +146,17 @@ if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
|||||||
else
|
else
|
||||||
_pkg_short_errors_supported=no
|
_pkg_short_errors_supported=no
|
||||||
fi[]dnl
|
fi[]dnl
|
||||||
])# _PKG_SHORT_ERRORS_SUPPORTED
|
])dnl _PKG_SHORT_ERRORS_SUPPORTED
|
||||||
|
|
||||||
|
|
||||||
# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
||||||
# [ACTION-IF-NOT-FOUND])
|
dnl [ACTION-IF-NOT-FOUND])
|
||||||
#
|
dnl --------------------------------------------------------------
|
||||||
#
|
dnl Since: 0.4.0
|
||||||
# Note that if there is a possibility the first call to
|
dnl
|
||||||
# PKG_CHECK_MODULES might not happen, you should be sure to include an
|
dnl Note that if there is a possibility the first call to
|
||||||
# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
|
dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
|
||||||
#
|
dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
|
||||||
#
|
|
||||||
# --------------------------------------------------------------
|
|
||||||
AC_DEFUN([PKG_CHECK_MODULES],
|
AC_DEFUN([PKG_CHECK_MODULES],
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||||
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
|
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
|
||||||
@ -177,16 +210,40 @@ else
|
|||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
$3
|
$3
|
||||||
fi[]dnl
|
fi[]dnl
|
||||||
])# PKG_CHECK_MODULES
|
])dnl PKG_CHECK_MODULES
|
||||||
|
|
||||||
|
|
||||||
# PKG_INSTALLDIR(DIRECTORY)
|
dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
||||||
# -------------------------
|
dnl [ACTION-IF-NOT-FOUND])
|
||||||
# Substitutes the variable pkgconfigdir as the location where a module
|
dnl ---------------------------------------------------------------------
|
||||||
# should install pkg-config .pc files. By default the directory is
|
dnl Since: 0.29
|
||||||
# $libdir/pkgconfig, but the default can be changed by passing
|
dnl
|
||||||
# DIRECTORY. The user can override through the --with-pkgconfigdir
|
dnl Checks for existence of MODULES and gathers its build flags with
|
||||||
# parameter.
|
dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
|
||||||
|
dnl and VARIABLE-PREFIX_LIBS from --libs.
|
||||||
|
dnl
|
||||||
|
dnl Note that if there is a possibility the first call to
|
||||||
|
dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
|
||||||
|
dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
|
||||||
|
dnl configure.ac.
|
||||||
|
AC_DEFUN([PKG_CHECK_MODULES_STATIC],
|
||||||
|
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||||
|
_save_PKG_CONFIG=$PKG_CONFIG
|
||||||
|
PKG_CONFIG="$PKG_CONFIG --static"
|
||||||
|
PKG_CHECK_MODULES($@)
|
||||||
|
PKG_CONFIG=$_save_PKG_CONFIG[]dnl
|
||||||
|
])dnl PKG_CHECK_MODULES_STATIC
|
||||||
|
|
||||||
|
|
||||||
|
dnl PKG_INSTALLDIR([DIRECTORY])
|
||||||
|
dnl -------------------------
|
||||||
|
dnl Since: 0.27
|
||||||
|
dnl
|
||||||
|
dnl Substitutes the variable pkgconfigdir as the location where a module
|
||||||
|
dnl should install pkg-config .pc files. By default the directory is
|
||||||
|
dnl $libdir/pkgconfig, but the default can be changed by passing
|
||||||
|
dnl DIRECTORY. The user can override through the --with-pkgconfigdir
|
||||||
|
dnl parameter.
|
||||||
AC_DEFUN([PKG_INSTALLDIR],
|
AC_DEFUN([PKG_INSTALLDIR],
|
||||||
[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
|
[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
|
||||||
m4_pushdef([pkg_description],
|
m4_pushdef([pkg_description],
|
||||||
@ -197,16 +254,18 @@ AC_ARG_WITH([pkgconfigdir],
|
|||||||
AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
|
AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
|
||||||
m4_popdef([pkg_default])
|
m4_popdef([pkg_default])
|
||||||
m4_popdef([pkg_description])
|
m4_popdef([pkg_description])
|
||||||
]) dnl PKG_INSTALLDIR
|
])dnl PKG_INSTALLDIR
|
||||||
|
|
||||||
|
|
||||||
# PKG_NOARCH_INSTALLDIR(DIRECTORY)
|
dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
|
||||||
# -------------------------
|
dnl --------------------------------
|
||||||
# Substitutes the variable noarch_pkgconfigdir as the location where a
|
dnl Since: 0.27
|
||||||
# module should install arch-independent pkg-config .pc files. By
|
dnl
|
||||||
# default the directory is $datadir/pkgconfig, but the default can be
|
dnl Substitutes the variable noarch_pkgconfigdir as the location where a
|
||||||
# changed by passing DIRECTORY. The user can override through the
|
dnl module should install arch-independent pkg-config .pc files. By
|
||||||
# --with-noarch-pkgconfigdir parameter.
|
dnl default the directory is $datadir/pkgconfig, but the default can be
|
||||||
|
dnl changed by passing DIRECTORY. The user can override through the
|
||||||
|
dnl --with-noarch-pkgconfigdir parameter.
|
||||||
AC_DEFUN([PKG_NOARCH_INSTALLDIR],
|
AC_DEFUN([PKG_NOARCH_INSTALLDIR],
|
||||||
[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
|
[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
|
||||||
m4_pushdef([pkg_description],
|
m4_pushdef([pkg_description],
|
||||||
@ -217,7 +276,24 @@ AC_ARG_WITH([noarch-pkgconfigdir],
|
|||||||
AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
|
AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
|
||||||
m4_popdef([pkg_default])
|
m4_popdef([pkg_default])
|
||||||
m4_popdef([pkg_description])
|
m4_popdef([pkg_description])
|
||||||
]) dnl PKG_NOARCH_INSTALLDIR
|
])dnl PKG_NOARCH_INSTALLDIR
|
||||||
|
|
||||||
|
|
||||||
|
dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
|
||||||
|
dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||||
|
dnl -------------------------------------------
|
||||||
|
dnl Since: 0.28
|
||||||
|
dnl
|
||||||
|
dnl Retrieves the value of the pkg-config variable for the given module.
|
||||||
|
AC_DEFUN([PKG_CHECK_VAR],
|
||||||
|
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||||
|
AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
|
||||||
|
|
||||||
|
_PKG_CONFIG([$1], [variable="][$3]["], [$2])
|
||||||
|
AS_VAR_COPY([$1], [pkg_cv_][$1])
|
||||||
|
|
||||||
|
AS_VAR_IF([$1], [""], [$5], [$4])dnl
|
||||||
|
])dnl PKG_CHECK_VAR
|
||||||
|
|
||||||
# Copyright (C) 2002-2012 Free Software Foundation, Inc.
|
# Copyright (C) 2002-2012 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
@ -1659,7 +1735,7 @@ AC_DEFUN([XORG_FONTDIR],[XORG_FONTSUBDIR([FONTDIR], [fontdir], [$1])])
|
|||||||
|
|
||||||
dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure.
|
dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure.
|
||||||
dnl
|
dnl
|
||||||
dnl Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
|
dnl Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
dnl
|
dnl
|
||||||
dnl Permission is hereby granted, free of charge, to any person obtaining a
|
dnl Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
dnl copy of this software and associated documentation files (the "Software"),
|
dnl copy of this software and associated documentation files (the "Software"),
|
||||||
@ -1696,7 +1772,7 @@ dnl DEALINGS IN THE SOFTWARE.
|
|||||||
# See the "minimum version" comment for each macro you use to see what
|
# See the "minimum version" comment for each macro you use to see what
|
||||||
# version you require.
|
# version you require.
|
||||||
m4_defun([XORG_MACROS_VERSION],[
|
m4_defun([XORG_MACROS_VERSION],[
|
||||||
m4_define([vers_have], [1.19.0])
|
m4_define([vers_have], [1.19.2])
|
||||||
m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
|
m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
|
||||||
m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
|
m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
|
||||||
m4_if(m4_cmp(maj_have, maj_needed), 0,,
|
m4_if(m4_cmp(maj_have, maj_needed), 0,,
|
||||||
@ -1774,6 +1850,17 @@ AC_DEFUN([XORG_MANPAGE_SECTIONS],[
|
|||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||||
AC_REQUIRE([AC_PROG_SED])
|
AC_REQUIRE([AC_PROG_SED])
|
||||||
|
|
||||||
|
case $host_os in
|
||||||
|
solaris*)
|
||||||
|
# Solaris 2.0 - 11.3 use SysV man page section numbers, so we
|
||||||
|
# check for a man page file found in later versions that use
|
||||||
|
# traditional section numbers instead
|
||||||
|
AC_CHECK_FILE([/usr/share/man/man7/attributes.7],
|
||||||
|
[SYSV_MAN_SECTIONS=false], [SYSV_MAN_SECTIONS=true])
|
||||||
|
;;
|
||||||
|
*) SYSV_MAN_SECTIONS=false ;;
|
||||||
|
esac
|
||||||
|
|
||||||
if test x$APP_MAN_SUFFIX = x ; then
|
if test x$APP_MAN_SUFFIX = x ; then
|
||||||
APP_MAN_SUFFIX=1
|
APP_MAN_SUFFIX=1
|
||||||
fi
|
fi
|
||||||
@ -1789,9 +1876,9 @@ if test x$LIB_MAN_DIR = x ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$FILE_MAN_SUFFIX = x ; then
|
if test x$FILE_MAN_SUFFIX = x ; then
|
||||||
case $host_os in
|
case $SYSV_MAN_SECTIONS in
|
||||||
solaris*) FILE_MAN_SUFFIX=4 ;;
|
true) FILE_MAN_SUFFIX=4 ;;
|
||||||
*) FILE_MAN_SUFFIX=5 ;;
|
*) FILE_MAN_SUFFIX=5 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
if test x$FILE_MAN_DIR = x ; then
|
if test x$FILE_MAN_DIR = x ; then
|
||||||
@ -1799,9 +1886,9 @@ if test x$FILE_MAN_DIR = x ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$MISC_MAN_SUFFIX = x ; then
|
if test x$MISC_MAN_SUFFIX = x ; then
|
||||||
case $host_os in
|
case $SYSV_MAN_SECTIONS in
|
||||||
solaris*) MISC_MAN_SUFFIX=5 ;;
|
true) MISC_MAN_SUFFIX=5 ;;
|
||||||
*) MISC_MAN_SUFFIX=7 ;;
|
*) MISC_MAN_SUFFIX=7 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
if test x$MISC_MAN_DIR = x ; then
|
if test x$MISC_MAN_DIR = x ; then
|
||||||
@ -1809,9 +1896,9 @@ if test x$MISC_MAN_DIR = x ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$DRIVER_MAN_SUFFIX = x ; then
|
if test x$DRIVER_MAN_SUFFIX = x ; then
|
||||||
case $host_os in
|
case $SYSV_MAN_SECTIONS in
|
||||||
solaris*) DRIVER_MAN_SUFFIX=7 ;;
|
true) DRIVER_MAN_SUFFIX=7 ;;
|
||||||
*) DRIVER_MAN_SUFFIX=4 ;;
|
*) DRIVER_MAN_SUFFIX=4 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
if test x$DRIVER_MAN_DIR = x ; then
|
if test x$DRIVER_MAN_DIR = x ; then
|
||||||
@ -1819,9 +1906,9 @@ if test x$DRIVER_MAN_DIR = x ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$ADMIN_MAN_SUFFIX = x ; then
|
if test x$ADMIN_MAN_SUFFIX = x ; then
|
||||||
case $host_os in
|
case $SYSV_MAN_SECTIONS in
|
||||||
solaris*) ADMIN_MAN_SUFFIX=1m ;;
|
true) ADMIN_MAN_SUFFIX=1m ;;
|
||||||
*) ADMIN_MAN_SUFFIX=8 ;;
|
*) ADMIN_MAN_SUFFIX=8 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
if test x$ADMIN_MAN_DIR = x ; then
|
if test x$ADMIN_MAN_DIR = x ; then
|
||||||
@ -2082,13 +2169,24 @@ m4_ifval([$1],
|
|||||||
fi])
|
fi])
|
||||||
|
|
||||||
# Test for the ability of xmlto to generate a text target
|
# Test for the ability of xmlto to generate a text target
|
||||||
|
#
|
||||||
|
# NOTE: xmlto 0.0.27 or higher return a non-zero return code in the
|
||||||
|
# following test for empty XML docbook files.
|
||||||
|
# For compatibility reasons use the following empty XML docbook file and if
|
||||||
|
# it fails try it again with a non-empty XML file.
|
||||||
have_xmlto_text=no
|
have_xmlto_text=no
|
||||||
cat > conftest.xml << "EOF"
|
cat > conftest.xml << "EOF"
|
||||||
EOF
|
EOF
|
||||||
AS_IF([test "$have_xmlto" = yes],
|
AS_IF([test "$have_xmlto" = yes],
|
||||||
[AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1],
|
[AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1],
|
||||||
[have_xmlto_text=yes],
|
[have_xmlto_text=yes],
|
||||||
[AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])])
|
[# Try it again with a non-empty XML file.
|
||||||
|
cat > conftest.xml << "EOF"
|
||||||
|
<x></x>
|
||||||
|
EOF
|
||||||
|
AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1],
|
||||||
|
[have_xmlto_text=yes],
|
||||||
|
[AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])])])
|
||||||
rm -f conftest.xml
|
rm -f conftest.xml
|
||||||
AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes])
|
AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes])
|
||||||
AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes])
|
AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes])
|
||||||
@ -3484,8 +3582,9 @@ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
|||||||
macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
|
macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
|
||||||
INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
|
INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
|
||||||
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
|
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
|
||||||
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \
|
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \
|
||||||
echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)"
|
touch \$(top_srcdir)/INSTALL; \
|
||||||
|
echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))"
|
||||||
AC_SUBST([INSTALL_CMD])
|
AC_SUBST([INSTALL_CMD])
|
||||||
]) # XORG_INSTALL
|
]) # XORG_INSTALL
|
||||||
dnl Copyright 2005 Red Hat, Inc
|
dnl Copyright 2005 Red Hat, Inc
|
||||||
@ -3546,10 +3645,11 @@ AC_DEFUN([XORG_RELEASE_VERSION],[
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
AC_DEFUN([XORG_CHANGELOG], [
|
AC_DEFUN([XORG_CHANGELOG], [
|
||||||
CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \
|
CHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp) 2>/dev/null && \
|
||||||
mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
|
mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
|
||||||
|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \
|
|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \
|
||||||
echo 'git directory not found: installing possibly empty changelog.' >&2)"
|
touch \$(top_srcdir)/ChangeLog; \
|
||||||
|
echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))"
|
||||||
AC_SUBST([CHANGELOG_CMD])
|
AC_SUBST([CHANGELOG_CMD])
|
||||||
]) # XORG_CHANGELOG
|
]) # XORG_CHANGELOG
|
||||||
|
|
||||||
|
@ -67,6 +67,18 @@ compBlockHandler(ScreenPtr pScreen, void *pTimeout)
|
|||||||
cs->BlockHandler = NULL;
|
cs->BlockHandler = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
compMarkAncestors(WindowPtr pWin)
|
||||||
|
{
|
||||||
|
pWin = pWin->parent;
|
||||||
|
while (pWin) {
|
||||||
|
if (pWin->damagedDescendants)
|
||||||
|
return;
|
||||||
|
pWin->damagedDescendants = TRUE;
|
||||||
|
pWin = pWin->parent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
compReportDamage(DamagePtr pDamage, RegionPtr pRegion, void *closure)
|
compReportDamage(DamagePtr pDamage, RegionPtr pRegion, void *closure)
|
||||||
{
|
{
|
||||||
@ -81,14 +93,7 @@ compReportDamage(DamagePtr pDamage, RegionPtr pRegion, void *closure)
|
|||||||
}
|
}
|
||||||
cw->damaged = TRUE;
|
cw->damaged = TRUE;
|
||||||
|
|
||||||
/* Mark the ancestors */
|
compMarkAncestors(pWin);
|
||||||
pWin = pWin->parent;
|
|
||||||
while (pWin) {
|
|
||||||
if (pWin->damagedDescendants)
|
|
||||||
break;
|
|
||||||
pWin->damagedDescendants = TRUE;
|
|
||||||
pWin = pWin->parent;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -236,6 +236,8 @@ Bool
|
|||||||
compReallocPixmap(WindowPtr pWin, int x, int y,
|
compReallocPixmap(WindowPtr pWin, int x, int y,
|
||||||
unsigned int w, unsigned int h, int bw);
|
unsigned int w, unsigned int h, int bw);
|
||||||
|
|
||||||
|
void compMarkAncestors(WindowPtr pWin);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* compinit.c
|
* compinit.c
|
||||||
*/
|
*/
|
||||||
|
@ -432,6 +432,7 @@ compReparentWindow(WindowPtr pWin, WindowPtr pPriorParent)
|
|||||||
{
|
{
|
||||||
ScreenPtr pScreen = pWin->drawable.pScreen;
|
ScreenPtr pScreen = pWin->drawable.pScreen;
|
||||||
CompScreenPtr cs = GetCompScreen(pScreen);
|
CompScreenPtr cs = GetCompScreen(pScreen);
|
||||||
|
CompWindowPtr cw = GetCompWindow(pWin);
|
||||||
|
|
||||||
pScreen->ReparentWindow = cs->ReparentWindow;
|
pScreen->ReparentWindow = cs->ReparentWindow;
|
||||||
/*
|
/*
|
||||||
@ -469,6 +470,10 @@ compReparentWindow(WindowPtr pWin, WindowPtr pPriorParent)
|
|||||||
(*pScreen->ReparentWindow) (pWin, pPriorParent);
|
(*pScreen->ReparentWindow) (pWin, pPriorParent);
|
||||||
cs->ReparentWindow = pScreen->ReparentWindow;
|
cs->ReparentWindow = pScreen->ReparentWindow;
|
||||||
pScreen->ReparentWindow = compReparentWindow;
|
pScreen->ReparentWindow = compReparentWindow;
|
||||||
|
|
||||||
|
if (pWin->damagedDescendants || (cw && cw->damaged))
|
||||||
|
compMarkAncestors(pWin);
|
||||||
|
|
||||||
compCheckTree(pWin->drawable.pScreen);
|
compCheckTree(pWin->drawable.pScreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,7 +135,7 @@ device_added(struct udev_device *udev_device)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
value = udev_device_get_property_value(udev_device, "ID_INPUT");
|
value = udev_device_get_property_value(udev_device, "ID_INPUT");
|
||||||
if (value && !strcmp(value, "0")) {
|
if (!value || !strcmp(value, "0")) {
|
||||||
LogMessageVerb(X_INFO, 10,
|
LogMessageVerb(X_INFO, 10,
|
||||||
"config/udev: ignoring device %s without "
|
"config/udev: ignoring device %s without "
|
||||||
"property ID_INPUT set\n", path);
|
"property ID_INPUT set\n", path);
|
||||||
|
139
xserver/configure
vendored
139
xserver/configure
vendored
@ -1,8 +1,8 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.69 for xorg-server 1.19.6.
|
# Generated by GNU Autoconf 2.69 for xorg-server 1.19.7.
|
||||||
#
|
#
|
||||||
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
|
# Report bugs to <https://gitlab.freedesktop.org/xorg/xserver/issues>.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||||
@ -275,7 +275,7 @@ fi
|
|||||||
$as_echo "$0: be upgraded to zsh 4.3.4 or later."
|
$as_echo "$0: be upgraded to zsh 4.3.4 or later."
|
||||||
else
|
else
|
||||||
$as_echo "$0: Please tell bug-autoconf@gnu.org and
|
$as_echo "$0: Please tell bug-autoconf@gnu.org and
|
||||||
$0: https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
|
$0: https://gitlab.freedesktop.org/xorg/xserver/issues
|
||||||
$0: about your system, including any error possibly output
|
$0: about your system, including any error possibly output
|
||||||
$0: before this message. Then install a modern shell, or
|
$0: before this message. Then install a modern shell, or
|
||||||
$0: manually run the script under such a shell if you do
|
$0: manually run the script under such a shell if you do
|
||||||
@ -651,9 +651,9 @@ MAKEFLAGS=
|
|||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='xorg-server'
|
PACKAGE_NAME='xorg-server'
|
||||||
PACKAGE_TARNAME='xorg-server'
|
PACKAGE_TARNAME='xorg-server'
|
||||||
PACKAGE_VERSION='1.19.6'
|
PACKAGE_VERSION='1.19.7'
|
||||||
PACKAGE_STRING='xorg-server 1.19.6'
|
PACKAGE_STRING='xorg-server 1.19.7'
|
||||||
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
|
PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/xserver/issues'
|
||||||
PACKAGE_URL=''
|
PACKAGE_URL=''
|
||||||
|
|
||||||
ac_unique_file="Makefile.am"
|
ac_unique_file="Makefile.am"
|
||||||
@ -2071,7 +2071,7 @@ if test "$ac_init_help" = "long"; then
|
|||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures xorg-server 1.19.6 to adapt to many kinds of systems.
|
\`configure' configures xorg-server 1.19.7 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
@ -2141,7 +2141,7 @@ fi
|
|||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of xorg-server 1.19.6:";;
|
short | recursive ) echo "Configuration of xorg-server 1.19.7:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
@ -2342,10 +2342,10 @@ Optional Packages:
|
|||||||
org.x)
|
org.x)
|
||||||
--with-bundle-version=VERSION
|
--with-bundle-version=VERSION
|
||||||
Version to use for X11.app's CFBundleVersion
|
Version to use for X11.app's CFBundleVersion
|
||||||
(default: 1.19.6)
|
(default: 1.19.7)
|
||||||
--with-bundle-version-string=VERSION
|
--with-bundle-version-string=VERSION
|
||||||
Version to use for X11.app's
|
Version to use for X11.app's
|
||||||
CFBundleShortVersionString (default: 1.19.6)
|
CFBundleShortVersionString (default: 1.19.7)
|
||||||
--with-sparkle-feed-url=URL
|
--with-sparkle-feed-url=URL
|
||||||
URL for the Sparkle feed (default:
|
URL for the Sparkle feed (default:
|
||||||
https://www.xquartz.org/releases/sparkle/release.xml)
|
https://www.xquartz.org/releases/sparkle/release.xml)
|
||||||
@ -2537,7 +2537,7 @@ Some influential environment variables:
|
|||||||
Use these variables to override the choices made by `configure' or to help
|
Use these variables to override the choices made by `configure' or to help
|
||||||
it to find libraries and programs with nonstandard names/locations.
|
it to find libraries and programs with nonstandard names/locations.
|
||||||
|
|
||||||
Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
|
Report bugs to <https://gitlab.freedesktop.org/xorg/xserver/issues>.
|
||||||
_ACEOF
|
_ACEOF
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
fi
|
fi
|
||||||
@ -2600,7 +2600,7 @@ fi
|
|||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
xorg-server configure 1.19.6
|
xorg-server configure 1.19.7
|
||||||
generated by GNU Autoconf 2.69
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
@ -2759,9 +2759,9 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
|
|||||||
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
|
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
|
||||||
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
|
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
|
||||||
( $as_echo "## ---------------------------------------------------------------------- ##
|
( $as_echo "## ----------------------------------------------------------------- ##
|
||||||
## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=xorg ##
|
## Report this to https://gitlab.freedesktop.org/xorg/xserver/issues ##
|
||||||
## ---------------------------------------------------------------------- ##"
|
## ----------------------------------------------------------------- ##"
|
||||||
) | sed "s/^/$as_me: WARNING: /" >&2
|
) | sed "s/^/$as_me: WARNING: /" >&2
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -3309,7 +3309,7 @@ cat >config.log <<_ACEOF
|
|||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by xorg-server $as_me 1.19.6, which was
|
It was created by xorg-server $as_me 1.19.7, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
@ -3657,8 +3657,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
|
|||||||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||||
|
|
||||||
|
|
||||||
RELEASE_DATE="2017-12-20"
|
RELEASE_DATE="2019-03-02"
|
||||||
RELEASE_NAME="Lousiana Gumbo"
|
RELEASE_NAME="Clemson Hamberder"
|
||||||
|
|
||||||
|
|
||||||
am__api_version='1.12'
|
am__api_version='1.12'
|
||||||
@ -4137,7 +4137,7 @@ fi
|
|||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='xorg-server'
|
PACKAGE='xorg-server'
|
||||||
VERSION='1.19.6'
|
VERSION='1.19.7'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
@ -11842,10 +11842,11 @@ _ACEOF
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \
|
CHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp) 2>/dev/null && \
|
||||||
mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
|
mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
|
||||||
|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \
|
|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \
|
||||||
echo 'git directory not found: installing possibly empty changelog.' >&2)"
|
touch \$(top_srcdir)/ChangeLog; \
|
||||||
|
echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -11853,14 +11854,45 @@ echo 'git directory not found: installing possibly empty changelog.' >&2)"
|
|||||||
macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
|
macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
|
||||||
INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
|
INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
|
||||||
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
|
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
|
||||||
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \
|
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \
|
||||||
echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)"
|
touch \$(top_srcdir)/INSTALL; \
|
||||||
|
echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
case $host_os in
|
||||||
|
solaris*)
|
||||||
|
# Solaris 2.0 - 11.3 use SysV man page section numbers, so we
|
||||||
|
# check for a man page file found in later versions that use
|
||||||
|
# traditional section numbers instead
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/share/man/man7/attributes.7" >&5
|
||||||
|
$as_echo_n "checking for /usr/share/man/man7/attributes.7... " >&6; }
|
||||||
|
if ${ac_cv_file__usr_share_man_man7_attributes_7+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
test "$cross_compiling" = yes &&
|
||||||
|
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
|
||||||
|
if test -r "/usr/share/man/man7/attributes.7"; then
|
||||||
|
ac_cv_file__usr_share_man_man7_attributes_7=yes
|
||||||
|
else
|
||||||
|
ac_cv_file__usr_share_man_man7_attributes_7=no
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__usr_share_man_man7_attributes_7" >&5
|
||||||
|
$as_echo "$ac_cv_file__usr_share_man_man7_attributes_7" >&6; }
|
||||||
|
if test "x$ac_cv_file__usr_share_man_man7_attributes_7" = xyes; then :
|
||||||
|
SYSV_MAN_SECTIONS=false
|
||||||
|
else
|
||||||
|
SYSV_MAN_SECTIONS=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
;;
|
||||||
|
*) SYSV_MAN_SECTIONS=false ;;
|
||||||
|
esac
|
||||||
|
|
||||||
if test x$APP_MAN_SUFFIX = x ; then
|
if test x$APP_MAN_SUFFIX = x ; then
|
||||||
APP_MAN_SUFFIX=1
|
APP_MAN_SUFFIX=1
|
||||||
fi
|
fi
|
||||||
@ -11876,9 +11908,9 @@ if test x$LIB_MAN_DIR = x ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$FILE_MAN_SUFFIX = x ; then
|
if test x$FILE_MAN_SUFFIX = x ; then
|
||||||
case $host_os in
|
case $SYSV_MAN_SECTIONS in
|
||||||
solaris*) FILE_MAN_SUFFIX=4 ;;
|
true) FILE_MAN_SUFFIX=4 ;;
|
||||||
*) FILE_MAN_SUFFIX=5 ;;
|
*) FILE_MAN_SUFFIX=5 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
if test x$FILE_MAN_DIR = x ; then
|
if test x$FILE_MAN_DIR = x ; then
|
||||||
@ -11886,9 +11918,9 @@ if test x$FILE_MAN_DIR = x ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$MISC_MAN_SUFFIX = x ; then
|
if test x$MISC_MAN_SUFFIX = x ; then
|
||||||
case $host_os in
|
case $SYSV_MAN_SECTIONS in
|
||||||
solaris*) MISC_MAN_SUFFIX=5 ;;
|
true) MISC_MAN_SUFFIX=5 ;;
|
||||||
*) MISC_MAN_SUFFIX=7 ;;
|
*) MISC_MAN_SUFFIX=7 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
if test x$MISC_MAN_DIR = x ; then
|
if test x$MISC_MAN_DIR = x ; then
|
||||||
@ -11896,9 +11928,9 @@ if test x$MISC_MAN_DIR = x ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$DRIVER_MAN_SUFFIX = x ; then
|
if test x$DRIVER_MAN_SUFFIX = x ; then
|
||||||
case $host_os in
|
case $SYSV_MAN_SECTIONS in
|
||||||
solaris*) DRIVER_MAN_SUFFIX=7 ;;
|
true) DRIVER_MAN_SUFFIX=7 ;;
|
||||||
*) DRIVER_MAN_SUFFIX=4 ;;
|
*) DRIVER_MAN_SUFFIX=4 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
if test x$DRIVER_MAN_DIR = x ; then
|
if test x$DRIVER_MAN_DIR = x ; then
|
||||||
@ -11906,9 +11938,9 @@ if test x$DRIVER_MAN_DIR = x ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$ADMIN_MAN_SUFFIX = x ; then
|
if test x$ADMIN_MAN_SUFFIX = x ; then
|
||||||
case $host_os in
|
case $SYSV_MAN_SECTIONS in
|
||||||
solaris*) ADMIN_MAN_SUFFIX=1m ;;
|
true) ADMIN_MAN_SUFFIX=1m ;;
|
||||||
*) ADMIN_MAN_SUFFIX=8 ;;
|
*) ADMIN_MAN_SUFFIX=8 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
if test x$ADMIN_MAN_DIR = x ; then
|
if test x$ADMIN_MAN_DIR = x ; then
|
||||||
@ -12428,17 +12460,30 @@ esac
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Test for the ability of xmlto to generate a text target
|
# Test for the ability of xmlto to generate a text target
|
||||||
|
#
|
||||||
|
# NOTE: xmlto 0.0.27 or higher return a non-zero return code in the
|
||||||
|
# following test for empty XML docbook files.
|
||||||
|
# For compatibility reasons use the following empty XML docbook file and if
|
||||||
|
# it fails try it again with a non-empty XML file.
|
||||||
have_xmlto_text=no
|
have_xmlto_text=no
|
||||||
cat > conftest.xml << "EOF"
|
cat > conftest.xml << "EOF"
|
||||||
EOF
|
EOF
|
||||||
if test "$have_xmlto" = yes; then :
|
if test "$have_xmlto" = yes; then :
|
||||||
if $XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1; then :
|
if $XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1; then :
|
||||||
have_xmlto_text=yes
|
have_xmlto_text=yes
|
||||||
|
else
|
||||||
|
# Try it again with a non-empty XML file.
|
||||||
|
cat > conftest.xml << "EOF"
|
||||||
|
<x></x>
|
||||||
|
EOF
|
||||||
|
if $XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1; then :
|
||||||
|
have_xmlto_text=yes
|
||||||
else
|
else
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: xmlto cannot generate text format, this format skipped" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: xmlto cannot generate text format, this format skipped" >&5
|
||||||
$as_echo "$as_me: WARNING: xmlto cannot generate text format, this format skipped" >&2;}
|
$as_echo "$as_me: WARNING: xmlto cannot generate text format, this format skipped" >&2;}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
rm -f conftest.xml
|
rm -f conftest.xml
|
||||||
if test $have_xmlto_text = yes; then
|
if test $have_xmlto_text = yes; then
|
||||||
HAVE_XMLTO_TEXT_TRUE=
|
HAVE_XMLTO_TEXT_TRUE=
|
||||||
@ -23161,7 +23206,7 @@ _ACEOF
|
|||||||
if test "${with_bundle_version+set}" = set; then :
|
if test "${with_bundle_version+set}" = set; then :
|
||||||
withval=$with_bundle_version; BUNDLE_VERSION="${withval}"
|
withval=$with_bundle_version; BUNDLE_VERSION="${withval}"
|
||||||
else
|
else
|
||||||
BUNDLE_VERSION="1.19.6"
|
BUNDLE_VERSION="1.19.7"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@ -25707,6 +25752,17 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if test "$MONOTONIC_CLOCK" = "cross compiling"; then
|
||||||
|
ac_fn_c_check_decl "$LINENO" "CLOCK_MONOTONIC" "ac_cv_have_decl_CLOCK_MONOTONIC" "#include <time.h>
|
||||||
|
"
|
||||||
|
if test "x$ac_cv_have_decl_CLOCK_MONOTONIC" = xyes; then :
|
||||||
|
MONOTONIC_CLOCK="guessing yes"
|
||||||
|
else
|
||||||
|
MONOTONIC_CLOCK=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
LIBS="$LIBS_SAVE"
|
LIBS="$LIBS_SAVE"
|
||||||
CPPFLAGS="$CPPFLAGS_SAVE"
|
CPPFLAGS="$CPPFLAGS_SAVE"
|
||||||
else
|
else
|
||||||
@ -25715,6 +25771,9 @@ fi
|
|||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MONOTONIC_CLOCK" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MONOTONIC_CLOCK" >&5
|
||||||
$as_echo "$MONOTONIC_CLOCK" >&6; }
|
$as_echo "$MONOTONIC_CLOCK" >&6; }
|
||||||
|
if test "$MONOTONIC_CLOCK" = "guessing yes"; then
|
||||||
|
MONOTONIC_CLOCK=yes
|
||||||
|
fi
|
||||||
|
|
||||||
if test "x$MONOTONIC_CLOCK" = xyes; then
|
if test "x$MONOTONIC_CLOCK" = xyes; then
|
||||||
|
|
||||||
@ -33262,7 +33321,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by xorg-server $as_me 1.19.6, which was
|
This file was extended by xorg-server $as_me 1.19.7, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
@ -33322,13 +33381,13 @@ $config_headers
|
|||||||
Configuration commands:
|
Configuration commands:
|
||||||
$config_commands
|
$config_commands
|
||||||
|
|
||||||
Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>."
|
Report bugs to <https://gitlab.freedesktop.org/xorg/xserver/issues>."
|
||||||
|
|
||||||
_ACEOF
|
_ACEOF
|
||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
xorg-server config.status 1.19.6
|
xorg-server config.status 1.19.7
|
||||||
configured by $0, generated by GNU Autoconf 2.69,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
@ -26,9 +26,9 @@ dnl
|
|||||||
dnl Process this file with autoconf to create configure.
|
dnl Process this file with autoconf to create configure.
|
||||||
|
|
||||||
AC_PREREQ(2.60)
|
AC_PREREQ(2.60)
|
||||||
AC_INIT([xorg-server], 1.19.6, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
|
AC_INIT([xorg-server], 1.19.7, [https://gitlab.freedesktop.org/xorg/xserver/issues], xorg-server)
|
||||||
RELEASE_DATE="2017-12-20"
|
RELEASE_DATE="2019-03-02"
|
||||||
RELEASE_NAME="Lousiana Gumbo"
|
RELEASE_NAME="Clemson Hamberder"
|
||||||
AC_CONFIG_SRCDIR([Makefile.am])
|
AC_CONFIG_SRCDIR([Makefile.am])
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
AM_INIT_AUTOMAKE([foreign dist-bzip2])
|
AM_INIT_AUTOMAKE([foreign dist-bzip2])
|
||||||
@ -1107,6 +1107,10 @@ int main(int argc, char *argv[[]]) {
|
|||||||
])], [MONOTONIC_CLOCK=yes], [MONOTONIC_CLOCK=no],
|
])], [MONOTONIC_CLOCK=yes], [MONOTONIC_CLOCK=no],
|
||||||
[MONOTONIC_CLOCK="cross compiling"])
|
[MONOTONIC_CLOCK="cross compiling"])
|
||||||
|
|
||||||
|
if test "$MONOTONIC_CLOCK" = "cross compiling"; then
|
||||||
|
AC_CHECK_DECL([CLOCK_MONOTONIC],[MONOTONIC_CLOCK="guessing yes"],[MONOTONIC_CLOCK=no],[#include <time.h>])
|
||||||
|
fi
|
||||||
|
|
||||||
LIBS="$LIBS_SAVE"
|
LIBS="$LIBS_SAVE"
|
||||||
CPPFLAGS="$CPPFLAGS_SAVE"
|
CPPFLAGS="$CPPFLAGS_SAVE"
|
||||||
else
|
else
|
||||||
@ -1114,6 +1118,9 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
AC_MSG_RESULT([$MONOTONIC_CLOCK])
|
AC_MSG_RESULT([$MONOTONIC_CLOCK])
|
||||||
|
if test "$MONOTONIC_CLOCK" = "guessing yes"; then
|
||||||
|
MONOTONIC_CLOCK=yes
|
||||||
|
fi
|
||||||
|
|
||||||
if test "x$MONOTONIC_CLOCK" = xyes; then
|
if test "x$MONOTONIC_CLOCK" = xyes; then
|
||||||
AC_DEFINE(MONOTONIC_CLOCK, 1, [Have monotonic clock from clock_gettime()])
|
AC_DEFINE(MONOTONIC_CLOCK, 1, [Have monotonic clock from clock_gettime()])
|
||||||
|
@ -703,6 +703,7 @@ exaGetPixmapFirstPixel(PixmapPtr pPixmap)
|
|||||||
{
|
{
|
||||||
switch (pPixmap->drawable.bitsPerPixel) {
|
switch (pPixmap->drawable.bitsPerPixel) {
|
||||||
case 32:
|
case 32:
|
||||||
|
case 24:
|
||||||
{
|
{
|
||||||
CARD32 pixel;
|
CARD32 pixel;
|
||||||
|
|
||||||
|
@ -54,27 +54,33 @@ _glamor_create_getcolor_fs_source(ScreenPtr screen, int stops_count,
|
|||||||
"vec4 get_color(float stop_len)\n"\
|
"vec4 get_color(float stop_len)\n"\
|
||||||
"{\n"\
|
"{\n"\
|
||||||
" int i = 0;\n"\
|
" int i = 0;\n"\
|
||||||
" float new_alpha; \n"\
|
" vec4 stop_color_before;\n"\
|
||||||
" vec4 gradient_color;\n"\
|
" vec4 gradient_color;\n"\
|
||||||
|
" float stop_delta;\n"\
|
||||||
" float percentage; \n"\
|
" float percentage; \n"\
|
||||||
" for(i = 0; i < n_stop - 1; i++) {\n"\
|
" \n"\
|
||||||
|
" if(stop_len < stops[0])\n"\
|
||||||
|
" return vec4(0.0, 0.0, 0.0, 0.0); \n"\
|
||||||
|
" for(i = 1; i < n_stop; i++) {\n"\
|
||||||
" if(stop_len < stops[i])\n"\
|
" if(stop_len < stops[i])\n"\
|
||||||
" break; \n"\
|
" break; \n"\
|
||||||
" }\n"\
|
" }\n"\
|
||||||
|
" if(i == n_stop)\n"\
|
||||||
|
" return vec4(0.0, 0.0, 0.0, 0.0); \n"\
|
||||||
" \n"\
|
" \n"\
|
||||||
" if(stops[i] - stops[i-1] > 2.0)\n"\
|
" stop_color_before = stop_colors[i-1];\n"\
|
||||||
|
" stop_delta = stops[i] - stops[i-1];\n"\
|
||||||
|
" if(stop_delta > 2.0)\n"\
|
||||||
" percentage = 0.0;\n" /*For comply with pixman, walker->stepper overflow.*/\
|
" percentage = 0.0;\n" /*For comply with pixman, walker->stepper overflow.*/\
|
||||||
" else if(stops[i] - stops[i-1] < 0.000001)\n"\
|
" else if(stop_delta < 0.000001)\n"\
|
||||||
" percentage = 0.0;\n"\
|
" percentage = 0.0;\n"\
|
||||||
" else \n"\
|
" else \n"\
|
||||||
" percentage = (stop_len - stops[i-1])/(stops[i] - stops[i-1]);\n"\
|
" percentage = (stop_len - stops[i-1])/stop_delta;\n"\
|
||||||
" new_alpha = percentage * stop_colors[i].a + \n"\
|
|
||||||
" (1.0-percentage) * stop_colors[i-1].a; \n"\
|
|
||||||
" gradient_color = vec4((percentage * stop_colors[i].rgb \n"\
|
|
||||||
" + (1.0-percentage) * stop_colors[i-1].rgb)*new_alpha, \n"\
|
|
||||||
" new_alpha);\n"\
|
|
||||||
" \n"\
|
" \n"\
|
||||||
" return gradient_color;\n"\
|
" gradient_color = stop_color_before;\n"\
|
||||||
|
" if(percentage != 0.0)\n"\
|
||||||
|
" gradient_color += (stop_colors[i] - gradient_color)*percentage;\n"\
|
||||||
|
" return vec4(gradient_color.rgb * gradient_color.a, gradient_color.a);\n"\
|
||||||
"}\n"
|
"}\n"
|
||||||
|
|
||||||
/* Because the array access for shader is very slow, the performance is very low
|
/* Because the array access for shader is very slow, the performance is very low
|
||||||
@ -101,73 +107,66 @@ _glamor_create_getcolor_fs_source(ScreenPtr screen, int stops_count,
|
|||||||
"\n"
|
"\n"
|
||||||
"vec4 get_color(float stop_len)\n"
|
"vec4 get_color(float stop_len)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" float stop_after;\n"
|
|
||||||
" float stop_before;\n"
|
|
||||||
" vec4 stop_color_before;\n"
|
" vec4 stop_color_before;\n"
|
||||||
" vec4 stop_color_after;\n"
|
" vec4 stop_color_after;\n"
|
||||||
" float new_alpha; \n"
|
|
||||||
" vec4 gradient_color;\n"
|
" vec4 gradient_color;\n"
|
||||||
|
" float stop_before;\n"
|
||||||
|
" float stop_delta;\n"
|
||||||
" float percentage; \n"
|
" float percentage; \n"
|
||||||
" \n"
|
" \n"
|
||||||
" if((stop_len < stop0) && (n_stop >= 1)) {\n"
|
" if((stop_len < stop0) && (n_stop >= 1)) {\n"
|
||||||
" stop_color_before = stop_color0;\n"
|
" stop_color_before = vec4(0.0, 0.0, 0.0, 0.0);\n"
|
||||||
" stop_color_after = stop_color0;\n"
|
" stop_delta = 0.0;\n"
|
||||||
" stop_after = stop0;\n"
|
|
||||||
" stop_before = stop0;\n"
|
|
||||||
" } else if((stop_len < stop1) && (n_stop >= 2)) {\n"
|
" } else if((stop_len < stop1) && (n_stop >= 2)) {\n"
|
||||||
" stop_color_before = stop_color0;\n"
|
" stop_color_before = stop_color0;\n"
|
||||||
" stop_color_after = stop_color1;\n"
|
" stop_color_after = stop_color1;\n"
|
||||||
" stop_after = stop1;\n"
|
|
||||||
" stop_before = stop0;\n"
|
" stop_before = stop0;\n"
|
||||||
|
" stop_delta = stop1 - stop0;\n"
|
||||||
" } else if((stop_len < stop2) && (n_stop >= 3)) {\n"
|
" } else if((stop_len < stop2) && (n_stop >= 3)) {\n"
|
||||||
" stop_color_before = stop_color1;\n"
|
" stop_color_before = stop_color1;\n"
|
||||||
" stop_color_after = stop_color2;\n"
|
" stop_color_after = stop_color2;\n"
|
||||||
" stop_after = stop2;\n"
|
|
||||||
" stop_before = stop1;\n"
|
" stop_before = stop1;\n"
|
||||||
|
" stop_delta = stop2 - stop1;\n"
|
||||||
" } else if((stop_len < stop3) && (n_stop >= 4)){\n"
|
" } else if((stop_len < stop3) && (n_stop >= 4)){\n"
|
||||||
" stop_color_before = stop_color2;\n"
|
" stop_color_before = stop_color2;\n"
|
||||||
" stop_color_after = stop_color3;\n"
|
" stop_color_after = stop_color3;\n"
|
||||||
" stop_after = stop3;\n"
|
|
||||||
" stop_before = stop2;\n"
|
" stop_before = stop2;\n"
|
||||||
|
" stop_delta = stop3 - stop2;\n"
|
||||||
" } else if((stop_len < stop4) && (n_stop >= 5)){\n"
|
" } else if((stop_len < stop4) && (n_stop >= 5)){\n"
|
||||||
" stop_color_before = stop_color3;\n"
|
" stop_color_before = stop_color3;\n"
|
||||||
" stop_color_after = stop_color4;\n"
|
" stop_color_after = stop_color4;\n"
|
||||||
" stop_after = stop4;\n"
|
|
||||||
" stop_before = stop3;\n"
|
" stop_before = stop3;\n"
|
||||||
|
" stop_delta = stop4 - stop3;\n"
|
||||||
" } else if((stop_len < stop5) && (n_stop >= 6)){\n"
|
" } else if((stop_len < stop5) && (n_stop >= 6)){\n"
|
||||||
" stop_color_before = stop_color4;\n"
|
" stop_color_before = stop_color4;\n"
|
||||||
" stop_color_after = stop_color5;\n"
|
" stop_color_after = stop_color5;\n"
|
||||||
" stop_after = stop5;\n"
|
|
||||||
" stop_before = stop4;\n"
|
" stop_before = stop4;\n"
|
||||||
|
" stop_delta = stop5 - stop4;\n"
|
||||||
" } else if((stop_len < stop6) && (n_stop >= 7)){\n"
|
" } else if((stop_len < stop6) && (n_stop >= 7)){\n"
|
||||||
" stop_color_before = stop_color5;\n"
|
" stop_color_before = stop_color5;\n"
|
||||||
" stop_color_after = stop_color6;\n"
|
" stop_color_after = stop_color6;\n"
|
||||||
" stop_after = stop6;\n"
|
|
||||||
" stop_before = stop5;\n"
|
" stop_before = stop5;\n"
|
||||||
|
" stop_delta = stop6 - stop5;\n"
|
||||||
" } else if((stop_len < stop7) && (n_stop >= 8)){\n"
|
" } else if((stop_len < stop7) && (n_stop >= 8)){\n"
|
||||||
" stop_color_before = stop_color6;\n"
|
" stop_color_before = stop_color6;\n"
|
||||||
" stop_color_after = stop_color7;\n"
|
" stop_color_after = stop_color7;\n"
|
||||||
" stop_after = stop7;\n"
|
|
||||||
" stop_before = stop6;\n"
|
" stop_before = stop6;\n"
|
||||||
|
" stop_delta = stop7 - stop6;\n"
|
||||||
" } else {\n"
|
" } else {\n"
|
||||||
" stop_color_before = stop_color7;\n"
|
" stop_color_before = vec4(0.0, 0.0, 0.0, 0.0);\n"
|
||||||
" stop_color_after = stop_color7;\n"
|
" stop_delta = 0.0;\n"
|
||||||
" stop_after = stop7;\n"
|
|
||||||
" stop_before = stop7;\n"
|
|
||||||
" }\n"
|
" }\n"
|
||||||
" if(stop_after - stop_before > 2.0)\n"
|
" if(stop_delta > 2.0)\n"
|
||||||
" percentage = 0.0;\n" //For comply with pixman, walker->stepper overflow.
|
" percentage = 0.0;\n" //For comply with pixman, walker->stepper overflow.
|
||||||
" else if(stop_after - stop_before < 0.000001)\n"
|
" else if(stop_delta < 0.000001)\n"
|
||||||
" percentage = 0.0;\n"
|
" percentage = 0.0;\n"
|
||||||
" else \n"
|
" else\n"
|
||||||
" percentage = (stop_len - stop_before)/(stop_after - stop_before);\n"
|
" percentage = (stop_len - stop_before)/stop_delta;\n"
|
||||||
" new_alpha = percentage * stop_color_after.a + \n"
|
|
||||||
" (1.0-percentage) * stop_color_before.a; \n"
|
|
||||||
" gradient_color = vec4((percentage * stop_color_after.rgb \n"
|
|
||||||
" + (1.0-percentage) * stop_color_before.rgb)*new_alpha, \n"
|
|
||||||
" new_alpha);\n"
|
|
||||||
" \n"
|
" \n"
|
||||||
" return gradient_color;\n"
|
" gradient_color = stop_color_before;\n"
|
||||||
|
" if(percentage != 0.0)\n"
|
||||||
|
" gradient_color += (stop_color_after - gradient_color)*percentage;\n"
|
||||||
|
" return vec4(gradient_color.rgb * gradient_color.a, gradient_color.a);\n"
|
||||||
"}\n";
|
"}\n";
|
||||||
|
|
||||||
if (use_array) {
|
if (use_array) {
|
||||||
@ -458,18 +457,10 @@ _glamor_create_linear_gradient_program(ScreenPtr screen, int stops_count,
|
|||||||
"float get_stop_len()\n"\
|
"float get_stop_len()\n"\
|
||||||
"{\n"\
|
"{\n"\
|
||||||
" vec3 tmp = vec3(source_texture.x, source_texture.y, 1.0);\n"\
|
" vec3 tmp = vec3(source_texture.x, source_texture.y, 1.0);\n"\
|
||||||
" float len_percentage;\n"\
|
|
||||||
" float distance;\n"\
|
" float distance;\n"\
|
||||||
" float _p1_distance;\n"\
|
" float _p1_distance;\n"\
|
||||||
" float _pt_distance;\n"\
|
" float _pt_distance;\n"\
|
||||||
" float y_dist;\n"\
|
" float y_dist;\n"\
|
||||||
" float stop_after;\n"\
|
|
||||||
" float stop_before;\n"\
|
|
||||||
" vec4 stop_color_before;\n"\
|
|
||||||
" vec4 stop_color_after;\n"\
|
|
||||||
" float new_alpha; \n"\
|
|
||||||
" vec4 gradient_color;\n"\
|
|
||||||
" float percentage; \n"\
|
|
||||||
" vec3 source_texture_trans = transform_mat * tmp;\n"\
|
" vec3 source_texture_trans = transform_mat * tmp;\n"\
|
||||||
" \n"\
|
" \n"\
|
||||||
" if(hor_ver == 0) { \n" /*Normal case.*/\
|
" if(hor_ver == 0) { \n" /*Normal case.*/\
|
||||||
@ -484,19 +475,17 @@ _glamor_create_linear_gradient_program(ScreenPtr screen, int stops_count,
|
|||||||
" _pt_distance = pt_distance * source_texture_trans.z;\n"\
|
" _pt_distance = pt_distance * source_texture_trans.z;\n"\
|
||||||
" } \n"\
|
" } \n"\
|
||||||
" \n"\
|
" \n"\
|
||||||
" distance = distance - _p1_distance; \n"\
|
" distance = (distance - _p1_distance) / _pt_distance;\n"\
|
||||||
" \n"\
|
" \n"\
|
||||||
" if(repeat_type == %d){\n" /* repeat normal*/\
|
" if(repeat_type == %d){\n" /* repeat normal*/\
|
||||||
" distance = mod(distance, _pt_distance);\n"\
|
" distance = fract(distance);\n"\
|
||||||
" }\n"\
|
" }\n"\
|
||||||
" \n"\
|
" \n"\
|
||||||
" if(repeat_type == %d) {\n" /* repeat reflect*/\
|
" if(repeat_type == %d) {\n" /* repeat reflect*/\
|
||||||
" distance = abs(mod(distance + _pt_distance, 2.0 * _pt_distance) - _pt_distance);\n"\
|
" distance = abs(fract(distance * 0.5 + 0.5) * 2.0 - 1.0);\n"\
|
||||||
" }\n"\
|
" }\n"\
|
||||||
" \n"\
|
" \n"\
|
||||||
" len_percentage = distance/(_pt_distance);\n"\
|
" return distance;\n"\
|
||||||
" \n"\
|
|
||||||
" return len_percentage;\n"\
|
|
||||||
"}\n"\
|
"}\n"\
|
||||||
"\n"\
|
"\n"\
|
||||||
"void main()\n"\
|
"void main()\n"\
|
||||||
@ -761,13 +750,13 @@ _glamor_gradient_set_stops(PicturePtr src_picture, PictGradient *pgradient,
|
|||||||
stop_colors[1] = 0.0; //G
|
stop_colors[1] = 0.0; //G
|
||||||
stop_colors[2] = 0.0; //B
|
stop_colors[2] = 0.0; //B
|
||||||
stop_colors[3] = 0.0; //Alpha
|
stop_colors[3] = 0.0; //Alpha
|
||||||
n_stops[0] = -(float) INT_MAX; //should be small enough.
|
n_stops[0] = n_stops[1];
|
||||||
|
|
||||||
stop_colors[0 + (count - 1) * 4] = 0.0; //R
|
stop_colors[0 + (count - 1) * 4] = 0.0; //R
|
||||||
stop_colors[1 + (count - 1) * 4] = 0.0; //G
|
stop_colors[1 + (count - 1) * 4] = 0.0; //G
|
||||||
stop_colors[2 + (count - 1) * 4] = 0.0; //B
|
stop_colors[2 + (count - 1) * 4] = 0.0; //B
|
||||||
stop_colors[3 + (count - 1) * 4] = 0.0; //Alpha
|
stop_colors[3 + (count - 1) * 4] = 0.0; //Alpha
|
||||||
n_stops[count - 1] = (float) INT_MAX; //should be large enough.
|
n_stops[count - 1] = n_stops[count - 2];
|
||||||
break;
|
break;
|
||||||
case PIXMAN_REPEAT_NORMAL:
|
case PIXMAN_REPEAT_NORMAL:
|
||||||
REPEAT_FILL_STOPS(0, count - 2);
|
REPEAT_FILL_STOPS(0, count - 2);
|
||||||
|
@ -62,6 +62,8 @@ typedef struct tagREF_TRANSFORM {
|
|||||||
static const glamor_facet glamor_facet_xv_planar = {
|
static const glamor_facet glamor_facet_xv_planar = {
|
||||||
.name = "xv_planar",
|
.name = "xv_planar",
|
||||||
|
|
||||||
|
.version = 120,
|
||||||
|
|
||||||
.source_name = "v_texcoord0",
|
.source_name = "v_texcoord0",
|
||||||
.vs_vars = ("attribute vec2 position;\n"
|
.vs_vars = ("attribute vec2 position;\n"
|
||||||
"attribute vec2 v_texcoord0;\n"
|
"attribute vec2 v_texcoord0;\n"
|
||||||
|
@ -218,6 +218,9 @@ createModeFromConfig(const __DRIcoreExtension * core,
|
|||||||
if (duplicateForComp &&
|
if (duplicateForComp &&
|
||||||
(render_type_is_pbuffer_only(renderType) ||
|
(render_type_is_pbuffer_only(renderType) ||
|
||||||
config->config.rgbBits != 32 ||
|
config->config.rgbBits != 32 ||
|
||||||
|
config->config.redBits != 8 ||
|
||||||
|
config->config.greenBits != 8 ||
|
||||||
|
config->config.blueBits != 8 ||
|
||||||
config->config.visualRating != GLX_NONE ||
|
config->config.visualRating != GLX_NONE ||
|
||||||
config->config.sampleBuffers != 0)) {
|
config->config.sampleBuffers != 0)) {
|
||||||
free(config);
|
free(config);
|
||||||
|
@ -275,6 +275,11 @@ pickFBConfig(__GLXscreen * pGlxScreen, VisualPtr visual)
|
|||||||
/* If it's the 32-bit RGBA visual, demand a 32-bit fbconfig. */
|
/* If it's the 32-bit RGBA visual, demand a 32-bit fbconfig. */
|
||||||
if (visual->nplanes == 32 && config->rgbBits != 32)
|
if (visual->nplanes == 32 && config->rgbBits != 32)
|
||||||
continue;
|
continue;
|
||||||
|
/* If it's the 32-bit RGBA visual, do not pick sRGB capable config.
|
||||||
|
* This can cause issues with compositors that are not sRGB aware.
|
||||||
|
*/
|
||||||
|
if (visual->nplanes == 32 && config->sRGBCapable == GL_TRUE)
|
||||||
|
continue;
|
||||||
/* Can't use the same FBconfig for multiple X visuals. I think. */
|
/* Can't use the same FBconfig for multiple X visuals. I think. */
|
||||||
if (config->visualID != 0)
|
if (config->visualID != 0)
|
||||||
continue;
|
continue;
|
||||||
|
@ -84,8 +84,8 @@ Xorg_DEPENDENCIES = $(LOCAL_LIBS)
|
|||||||
Xorg_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
|
Xorg_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
|
||||||
|
|
||||||
if SUID_WRAPPER
|
if SUID_WRAPPER
|
||||||
wrapdir = $(SUID_WRAPPER_DIR)
|
wrapexecdir = $(SUID_WRAPPER_DIR)
|
||||||
wrap_PROGRAMS = Xorg.wrap
|
wrapexec_PROGRAMS = Xorg.wrap
|
||||||
Xorg_wrap_SOURCES = xorg-wrapper.c
|
Xorg_wrap_SOURCES = xorg-wrapper.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ POST_UNINSTALL = :
|
|||||||
build_triplet = @build@
|
build_triplet = @build@
|
||||||
host_triplet = @host@
|
host_triplet = @host@
|
||||||
bin_PROGRAMS = Xorg$(EXEEXT)
|
bin_PROGRAMS = Xorg$(EXEEXT)
|
||||||
@SUID_WRAPPER_TRUE@wrap_PROGRAMS = Xorg.wrap$(EXEEXT)
|
@SUID_WRAPPER_TRUE@wrapexec_PROGRAMS = Xorg.wrap$(EXEEXT)
|
||||||
subdir = hw/xfree86
|
subdir = hw/xfree86
|
||||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||||
$(srcdir)/Xorg.sh.in $(top_srcdir)/depcomp
|
$(srcdir)/Xorg.sh.in $(top_srcdir)/depcomp
|
||||||
@ -74,8 +74,8 @@ CONFIG_HEADER = $(top_builddir)/include/do-not-use-config.h \
|
|||||||
$(top_builddir)/include/version-config.h
|
$(top_builddir)/include/version-config.h
|
||||||
CONFIG_CLEAN_FILES = Xorg.sh
|
CONFIG_CLEAN_FILES = Xorg.sh
|
||||||
CONFIG_CLEAN_VPATH_FILES =
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(wrapdir)"
|
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(wrapexecdir)"
|
||||||
PROGRAMS = $(bin_PROGRAMS) $(wrap_PROGRAMS)
|
PROGRAMS = $(bin_PROGRAMS) $(wrapexec_PROGRAMS)
|
||||||
nodist_Xorg_OBJECTS = sdksyms.$(OBJEXT)
|
nodist_Xorg_OBJECTS = sdksyms.$(OBJEXT)
|
||||||
Xorg_OBJECTS = $(nodist_Xorg_OBJECTS)
|
Xorg_OBJECTS = $(nodist_Xorg_OBJECTS)
|
||||||
am__DEPENDENCIES_1 =
|
am__DEPENDENCIES_1 =
|
||||||
@ -591,7 +591,7 @@ Xorg_LDADD = \
|
|||||||
|
|
||||||
Xorg_DEPENDENCIES = $(LOCAL_LIBS)
|
Xorg_DEPENDENCIES = $(LOCAL_LIBS)
|
||||||
Xorg_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
|
Xorg_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
|
||||||
@SUID_WRAPPER_TRUE@wrapdir = $(SUID_WRAPPER_DIR)
|
@SUID_WRAPPER_TRUE@wrapexecdir = $(SUID_WRAPPER_DIR)
|
||||||
@SUID_WRAPPER_TRUE@Xorg_wrap_SOURCES = xorg-wrapper.c
|
@SUID_WRAPPER_TRUE@Xorg_wrap_SOURCES = xorg-wrapper.c
|
||||||
BUILT_SOURCES = xorg.conf.example
|
BUILT_SOURCES = xorg.conf.example
|
||||||
DISTCLEANFILES = xorg.conf.example
|
DISTCLEANFILES = xorg.conf.example
|
||||||
@ -688,12 +688,12 @@ clean-binPROGRAMS:
|
|||||||
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||||
echo " rm -f" $$list; \
|
echo " rm -f" $$list; \
|
||||||
rm -f $$list
|
rm -f $$list
|
||||||
install-wrapPROGRAMS: $(wrap_PROGRAMS)
|
install-wrapexecPROGRAMS: $(wrapexec_PROGRAMS)
|
||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
@list='$(wrap_PROGRAMS)'; test -n "$(wrapdir)" || list=; \
|
@list='$(wrapexec_PROGRAMS)'; test -n "$(wrapexecdir)" || list=; \
|
||||||
if test -n "$$list"; then \
|
if test -n "$$list"; then \
|
||||||
echo " $(MKDIR_P) '$(DESTDIR)$(wrapdir)'"; \
|
echo " $(MKDIR_P) '$(DESTDIR)$(wrapexecdir)'"; \
|
||||||
$(MKDIR_P) "$(DESTDIR)$(wrapdir)" || exit 1; \
|
$(MKDIR_P) "$(DESTDIR)$(wrapexecdir)" || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
for p in $$list; do echo "$$p $$p"; done | \
|
for p in $$list; do echo "$$p $$p"; done | \
|
||||||
sed 's/$(EXEEXT)$$//' | \
|
sed 's/$(EXEEXT)$$//' | \
|
||||||
@ -711,23 +711,23 @@ install-wrapPROGRAMS: $(wrap_PROGRAMS)
|
|||||||
while read type dir files; do \
|
while read type dir files; do \
|
||||||
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||||
test -z "$$files" || { \
|
test -z "$$files" || { \
|
||||||
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(wrapdir)$$dir'"; \
|
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(wrapexecdir)$$dir'"; \
|
||||||
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(wrapdir)$$dir" || exit $$?; \
|
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(wrapexecdir)$$dir" || exit $$?; \
|
||||||
} \
|
} \
|
||||||
; done
|
; done
|
||||||
|
|
||||||
uninstall-wrapPROGRAMS:
|
uninstall-wrapexecPROGRAMS:
|
||||||
@$(NORMAL_UNINSTALL)
|
@$(NORMAL_UNINSTALL)
|
||||||
@list='$(wrap_PROGRAMS)'; test -n "$(wrapdir)" || list=; \
|
@list='$(wrapexec_PROGRAMS)'; test -n "$(wrapexecdir)" || list=; \
|
||||||
files=`for p in $$list; do echo "$$p"; done | \
|
files=`for p in $$list; do echo "$$p"; done | \
|
||||||
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
|
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
|
||||||
-e 's/$$/$(EXEEXT)/' `; \
|
-e 's/$$/$(EXEEXT)/' `; \
|
||||||
test -n "$$list" || exit 0; \
|
test -n "$$list" || exit 0; \
|
||||||
echo " ( cd '$(DESTDIR)$(wrapdir)' && rm -f" $$files ")"; \
|
echo " ( cd '$(DESTDIR)$(wrapexecdir)' && rm -f" $$files ")"; \
|
||||||
cd "$(DESTDIR)$(wrapdir)" && rm -f $$files
|
cd "$(DESTDIR)$(wrapexecdir)" && rm -f $$files
|
||||||
|
|
||||||
clean-wrapPROGRAMS:
|
clean-wrapexecPROGRAMS:
|
||||||
@list='$(wrap_PROGRAMS)'; test -n "$$list" || exit 0; \
|
@list='$(wrapexec_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||||
echo " rm -f" $$list; \
|
echo " rm -f" $$list; \
|
||||||
rm -f $$list || exit $$?; \
|
rm -f $$list || exit $$?; \
|
||||||
test -n "$(EXEEXT)" || exit 0; \
|
test -n "$(EXEEXT)" || exit 0; \
|
||||||
@ -964,7 +964,7 @@ check: $(BUILT_SOURCES)
|
|||||||
all-am: Makefile $(PROGRAMS)
|
all-am: Makefile $(PROGRAMS)
|
||||||
installdirs: installdirs-recursive
|
installdirs: installdirs-recursive
|
||||||
installdirs-am:
|
installdirs-am:
|
||||||
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(wrapdir)"; do \
|
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(wrapexecdir)"; do \
|
||||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||||
done
|
done
|
||||||
install: $(BUILT_SOURCES)
|
install: $(BUILT_SOURCES)
|
||||||
@ -1004,7 +1004,7 @@ maintainer-clean-generic:
|
|||||||
clean: clean-recursive
|
clean: clean-recursive
|
||||||
|
|
||||||
clean-am: clean-binPROGRAMS clean-generic clean-libtool \
|
clean-am: clean-binPROGRAMS clean-generic clean-libtool \
|
||||||
clean-wrapPROGRAMS mostlyclean-am
|
clean-wrapexecPROGRAMS mostlyclean-am
|
||||||
|
|
||||||
distclean: distclean-recursive
|
distclean: distclean-recursive
|
||||||
-rm -rf ./$(DEPDIR)
|
-rm -rf ./$(DEPDIR)
|
||||||
@ -1024,13 +1024,13 @@ info: info-recursive
|
|||||||
|
|
||||||
info-am:
|
info-am:
|
||||||
|
|
||||||
install-data-am: install-data-local install-wrapPROGRAMS
|
install-data-am: install-data-local
|
||||||
|
|
||||||
install-dvi: install-dvi-recursive
|
install-dvi: install-dvi-recursive
|
||||||
|
|
||||||
install-dvi-am:
|
install-dvi-am:
|
||||||
|
|
||||||
install-exec-am: install-binPROGRAMS
|
install-exec-am: install-binPROGRAMS install-wrapexecPROGRAMS
|
||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
|
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
|
||||||
install-html: install-html-recursive
|
install-html: install-html-recursive
|
||||||
@ -1072,7 +1072,7 @@ ps: ps-recursive
|
|||||||
ps-am:
|
ps-am:
|
||||||
|
|
||||||
uninstall-am: uninstall-binPROGRAMS uninstall-local \
|
uninstall-am: uninstall-binPROGRAMS uninstall-local \
|
||||||
uninstall-wrapPROGRAMS
|
uninstall-wrapexecPROGRAMS
|
||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
|
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
|
||||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
|
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
|
||||||
@ -1081,7 +1081,7 @@ uninstall-am: uninstall-binPROGRAMS uninstall-local \
|
|||||||
|
|
||||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||||
all all-am check check-am clean clean-binPROGRAMS \
|
all all-am check check-am clean clean-binPROGRAMS \
|
||||||
clean-generic clean-libtool clean-wrapPROGRAMS cscopelist \
|
clean-generic clean-libtool clean-wrapexecPROGRAMS cscopelist \
|
||||||
cscopelist-recursive ctags ctags-recursive distclean \
|
cscopelist-recursive ctags ctags-recursive distclean \
|
||||||
distclean-compile distclean-generic distclean-libtool \
|
distclean-compile distclean-generic distclean-libtool \
|
||||||
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||||
@ -1090,13 +1090,13 @@ uninstall-am: uninstall-binPROGRAMS uninstall-local \
|
|||||||
install-exec install-exec-am install-exec-hook install-html \
|
install-exec install-exec-am install-exec-hook install-html \
|
||||||
install-html-am install-info install-info-am install-man \
|
install-html-am install-info install-info-am install-man \
|
||||||
install-pdf install-pdf-am install-ps install-ps-am \
|
install-pdf install-pdf-am install-ps install-ps-am \
|
||||||
install-strip install-wrapPROGRAMS installcheck \
|
install-strip install-wrapexecPROGRAMS installcheck \
|
||||||
installcheck-am installdirs installdirs-am maintainer-clean \
|
installcheck-am installdirs installdirs-am maintainer-clean \
|
||||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||||
tags tags-recursive uninstall uninstall-am \
|
tags tags-recursive uninstall uninstall-am \
|
||||||
uninstall-binPROGRAMS uninstall-hook uninstall-local \
|
uninstall-binPROGRAMS uninstall-hook uninstall-local \
|
||||||
uninstall-wrapPROGRAMS
|
uninstall-wrapexecPROGRAMS
|
||||||
|
|
||||||
|
|
||||||
# Without logdir, X will post an error on the terminal and will not start
|
# Without logdir, X will post an error on the terminal and will not start
|
||||||
|
@ -25,3 +25,144 @@ Modeline "2048x1536" 340.48 2048 2216 2440 2832 1536 1537 1540 1603 -hsync +vs
|
|||||||
# 2048x1536 @ 85Hz (VESA GTF) hsync: 137.0kHz
|
# 2048x1536 @ 85Hz (VESA GTF) hsync: 137.0kHz
|
||||||
Modeline "2048x1536" 388.04 2048 2216 2440 2832 1536 1537 1540 1612 -hsync +vsync
|
Modeline "2048x1536" 388.04 2048 2216 2440 2832 1536 1537 1540 1612 -hsync +vsync
|
||||||
|
|
||||||
|
### 16:9 modelines generated by cvt
|
||||||
|
|
||||||
|
# 640x360 59.32 Hz (CVT 0.23M9-R) hsync: 22.19 kHz; pclk: 17.75 MHz
|
||||||
|
Modeline "640x360R" 17.75 640 688 720 800 360 363 368 374 +hsync -vsync
|
||||||
|
|
||||||
|
# 640x360 59.84 Hz (CVT 0.23M9) hsync: 22.50 kHz; pclk: 18.00 MHz
|
||||||
|
Modeline "640x360" 18.00 640 664 720 800 360 363 368 376 -hsync +vsync
|
||||||
|
|
||||||
|
# 720x405 58.99 Hz (CVT 0.29M9-R) hsync: 24.72 kHz; pclk: 21.75 MHz
|
||||||
|
Modeline "720x405R" 21.75 720 768 800 880 405 408 413 419 +hsync -vsync
|
||||||
|
|
||||||
|
# 720x405 59.51 Hz (CVT 0.29M9) hsync: 25.11 kHz; pclk: 22.50 MHz
|
||||||
|
Modeline "720x405" 22.50 720 744 808 896 405 408 413 422 -hsync +vsync
|
||||||
|
|
||||||
|
# 864x486 59.57 Hz (CVT 0.42M9-R) hsync: 29.79 kHz; pclk: 30.50 MHz
|
||||||
|
Modeline "864x486R" 30.50 864 912 944 1024 486 489 494 500 +hsync -vsync
|
||||||
|
|
||||||
|
# 864x486 59.92 Hz (CVT 0.42M9) hsync: 30.32 kHz; pclk: 32.50 MHz
|
||||||
|
Modeline "864x486" 32.50 864 888 968 1072 486 489 494 506 -hsync +vsync
|
||||||
|
|
||||||
|
# 960x540 59.82 Hz (CVT 0.52M9-R) hsync: 33.26 kHz; pclk: 37.25 MHz
|
||||||
|
Modeline "960x540R" 37.25 960 1008 1040 1120 540 543 548 556 +hsync -vsync
|
||||||
|
|
||||||
|
# 960x540 59.63 Hz (CVT 0.52M9) hsync: 33.51 kHz; pclk: 40.75 MHz
|
||||||
|
Modeline "960x540" 40.75 960 992 1088 1216 540 543 548 562 -hsync +vsync
|
||||||
|
|
||||||
|
# 1024x576 59.82 Hz (CVT 0.59M9-R) hsync: 35.47 kHz; pclk: 42.00 MHz
|
||||||
|
Modeline "1024x576R" 42.00 1024 1072 1104 1184 576 579 584 593 +hsync -vsync
|
||||||
|
|
||||||
|
# 1024x576 59.90 Hz (CVT 0.59M9) hsync: 35.88 kHz; pclk: 46.50 MHz
|
||||||
|
Modeline "1024x576" 46.50 1024 1064 1160 1296 576 579 584 599 -hsync +vsync
|
||||||
|
|
||||||
|
# 1280x720 59.74 Hz (CVT 0.92M9-R) hsync: 44.27 kHz; pclk: 63.75 MHz
|
||||||
|
Modeline "1280x720R" 63.75 1280 1328 1360 1440 720 723 728 741 +hsync -vsync
|
||||||
|
|
||||||
|
# 1280x720 59.86 Hz (CVT 0.92M9) hsync: 44.77 kHz; pclk: 74.50 MHz
|
||||||
|
Modeline "1280x720" 74.50 1280 1344 1472 1664 720 723 728 748 -hsync +vsync
|
||||||
|
|
||||||
|
# 1368x768 59.85 Hz (CVT) hsync: 47.28 kHz; pclk: 72.25 MHz
|
||||||
|
Modeline "1368x768R" 72.25 1368 1416 1448 1528 768 771 781 790 +hsync -vsync
|
||||||
|
|
||||||
|
# 1368x768 59.88 Hz (CVT) hsync: 47.79 kHz; pclk: 85.25 MHz
|
||||||
|
Modeline "1368x768" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
|
||||||
|
|
||||||
|
# 1600x900 59.82 Hz (CVT 1.44M9-R) hsync: 55.40 kHz; pclk: 97.50 MHz
|
||||||
|
Modeline "1600x900R" 97.50 1600 1648 1680 1760 900 903 908 926 +hsync -vsync
|
||||||
|
|
||||||
|
# 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
|
||||||
|
Modeline "1600x900" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
|
||||||
|
|
||||||
|
# 1920x1080 59.93 Hz (CVT 2.07M9-R) hsync: 66.59 kHz; pclk: 138.50 MHz
|
||||||
|
Modeline "1920x1080R" 138.50 1920 1968 2000 2080 1080 1083 1088 1111 +hsync -vsync
|
||||||
|
|
||||||
|
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
|
||||||
|
Modeline "1920x1080" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
|
||||||
|
|
||||||
|
# 2048x1152 59.91 Hz (CVT 2.36M9-R) hsync: 70.99 kHz; pclk: 156.75 MHz
|
||||||
|
Modeline "2048x1152R" 156.75 2048 2096 2128 2208 1152 1155 1160 1185 +hsync -vsync
|
||||||
|
|
||||||
|
# 2048x1152 59.90 Hz (CVT 2.36M9) hsync: 71.58 kHz; pclk: 197.00 MHz
|
||||||
|
Modeline "2048x1152" 197.00 2048 2184 2400 2752 1152 1155 1160 1195 -hsync +vsync
|
||||||
|
|
||||||
|
# 2560x1440 59.95 Hz (CVT 3.69M9-R) hsync: 88.79 kHz; pclk: 241.50 MHz
|
||||||
|
Modeline "2560x1440R" 241.50 2560 2608 2640 2720 1440 1443 1448 1481 +hsync -vsync
|
||||||
|
|
||||||
|
# 2560x1440 59.96 Hz (CVT 3.69M9) hsync: 89.52 kHz; pclk: 312.25 MHz
|
||||||
|
Modeline "2560x1440" 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vsync
|
||||||
|
|
||||||
|
# 2880x1620 59.97 Hz (CVT 4.67M9-R) hsync: 99.92 kHz; pclk: 303.75 MHz
|
||||||
|
Modeline "2880x1620R" 303.75 2880 2928 2960 3040 1620 1623 1628 1666 +hsync -vsync
|
||||||
|
|
||||||
|
# 2880x1620 59.96 Hz (CVT 4.67M9) hsync: 100.67 kHz; pclk: 396.25 MHz
|
||||||
|
Modeline "2880x1620" 396.25 2880 3096 3408 3936 1620 1623 1628 1679 -hsync +vsync
|
||||||
|
|
||||||
|
# 3200x1800 59.94 Hz (CVT 5.76M9-R) hsync: 111.01 kHz; pclk: 373.00 MHz
|
||||||
|
Modeline "3200x1800R" 373.00 3200 3248 3280 3360 1800 1803 1808 1852 +hsync -vsync
|
||||||
|
|
||||||
|
# 3200x1800 59.96 Hz (CVT 5.76M9) hsync: 111.82 kHz; pclk: 492.00 MHz
|
||||||
|
Modeline "3200x1800" 492.00 3200 3456 3800 4400 1800 1803 1808 1865 -hsync +vsync
|
||||||
|
|
||||||
|
# 3840x2160 59.97 Hz (CVT 8.29M9-R) hsync: 133.25 kHz; pclk: 533.00 MHz
|
||||||
|
Modeline "3840x2160R" 533.00 3840 3888 3920 4000 2160 2163 2168 2222 +hsync -vsync
|
||||||
|
|
||||||
|
# 3840x2160 59.98 Hz (CVT 8.29M9) hsync: 134.18 kHz; pclk: 712.75 MHz
|
||||||
|
Modeline "3840x2160" 712.75 3840 4160 4576 5312 2160 2163 2168 2237 -hsync +vsync
|
||||||
|
|
||||||
|
# 4096x2304 59.98 Hz (CVT 9.44M9-R) hsync: 142.15 kHz; pclk: 605.00 MHz
|
||||||
|
Modeline "4096x2304R" 605.00 4096 4144 4176 4256 2304 2307 2312 2370 +hsync -vsync
|
||||||
|
|
||||||
|
# 4096x2304 59.99 Hz (CVT 9.44M9) hsync: 143.13 kHz; pclk: 813.00 MHz
|
||||||
|
Modeline "4096x2304" 813.00 4096 4440 4888 5680 2304 2307 2312 2386 -hsync +vsync
|
||||||
|
|
||||||
|
# 5120x2880 59.99 Hz (CVT 14.75M9-R) hsync: 177.70 kHz; pclk: 938.25 MHz
|
||||||
|
Modeline "5120x2880R" 938.25 5120 5168 5200 5280 2880 2883 2888 2962 +hsync -vsync
|
||||||
|
|
||||||
|
# 5120x2880 59.99 Hz (CVT 14.75M9) hsync: 178.88 kHz; pclk: 1276.50 MHz
|
||||||
|
Modeline "5120x2880" 1276.50 5120 5560 6128 7136 2880 2883 2888 2982 -hsync +vsync
|
||||||
|
|
||||||
|
# 7680x4320 59.99 Hz (CVT 33.18M9-R) hsync: 266.55 kHz; pclk: 2089.75 MHz
|
||||||
|
Modeline "7680x4320R" 2089.75 7680 7728 7760 7840 4320 4323 4328 4443 +hsync -vsync
|
||||||
|
|
||||||
|
# 7680x4320 59.99 Hz (CVT 33.18M9) hsync: 268.22 kHz; pclk: 2892.50 MHz
|
||||||
|
Modeline "7680x4320" 2892.50 7680 8376 9232 10784 4320 4323 4328 4471 -hsync +vsync
|
||||||
|
|
||||||
|
# 15360x8640 59.99 Hz (CVT 132.71M9-R) hsync: 533.10 kHz; pclk: 8273.75 MHz
|
||||||
|
Modeline "15360x8640R" 8273.75 15360 15408 15440 15520 8640 8643 8648 8886 +hsync -vsync
|
||||||
|
|
||||||
|
# 15360x8640 60.00 Hz (CVT 132.71M9) hsync: 536.27 kHz; pclk: 11669.25 MHz
|
||||||
|
Modeline "15360x8640" 11669.25 15360 16824 18560 21760 8640 8643 8648 8938 -hsync +vsync
|
||||||
|
|
||||||
|
## 16:10 modelines generated by cvt
|
||||||
|
|
||||||
|
# 1280x800 59.91 Hz (CVT 1.02MA-R) hsync: 49.31 kHz; pclk: 71.00 MHz
|
||||||
|
Modeline "1280x800R" 71.00 1280 1328 1360 1440 800 803 809 823 +hsync -vsync
|
||||||
|
|
||||||
|
# 1280x800 59.81 Hz (CVT 1.02MA) hsync: 49.70 kHz; pclk: 83.50 MHz
|
||||||
|
Modeline "1280x800" 83.50 1280 1352 1480 1680 800 803 809 831 -hsync +vsync
|
||||||
|
|
||||||
|
# 1400x900 59.88 Hz (CVT) hsync: 55.45 kHz; pclk: 86.50 MHz
|
||||||
|
Modeline "1400x900R" 86.50 1400 1448 1480 1560 900 903 913 926 +hsync -vsync
|
||||||
|
|
||||||
|
# 1400x900 59.96 Hz (CVT) hsync: 56.01 kHz; pclk: 103.50 MHz
|
||||||
|
Modeline "1400x900" 103.50 1400 1480 1624 1848 900 903 913 934 -hsync +vsync
|
||||||
|
|
||||||
|
# 1680x1050 59.88 Hz (CVT 1.76MA-R) hsync: 64.67 kHz; pclk: 119.00 MHz
|
||||||
|
Modeline "1680x1050R" 119.00 1680 1728 1760 1840 1050 1053 1059 1080 +hsync -vsync
|
||||||
|
|
||||||
|
# 1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.29 kHz; pclk: 146.25 MHz
|
||||||
|
Modeline "1680x1050" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync
|
||||||
|
|
||||||
|
# 1920x1200 59.95 Hz (CVT 2.30MA-R) hsync: 74.04 kHz; pclk: 154.00 MHz
|
||||||
|
Modeline "1920x1200R" 154.00 1920 1968 2000 2080 1200 1203 1209 1235 +hsync -vsync
|
||||||
|
|
||||||
|
# 1920x1200 59.88 Hz (CVT 2.30MA) hsync: 74.56 kHz; pclk: 193.25 MHz
|
||||||
|
Modeline "1920x1200" 193.25 1920 2056 2256 2592 1200 1203 1209 1245 -hsync +vsync
|
||||||
|
|
||||||
|
# 2560x1600 59.97 Hz (CVT 4.10MA-R) hsync: 98.71 kHz; pclk: 268.50 MHz
|
||||||
|
Modeline "2560x1600R" 268.50 2560 2608 2640 2720 1600 1603 1609 1646 +hsync -vsync
|
||||||
|
|
||||||
|
# 2560x1600 59.99 Hz (CVT 4.10MA) hsync: 99.46 kHz; pclk: 348.50 MHz
|
||||||
|
Modeline "2560x1600" 348.50 2560 2760 3032 3504 1600 1603 1609 1658 -hsync +vsync
|
||||||
|
@ -187,6 +187,7 @@ xf86XvMCScreenInit(ScreenPtr pScreen,
|
|||||||
}
|
}
|
||||||
if (!pAdapt[i].xv_adaptor) {
|
if (!pAdapt[i].xv_adaptor) {
|
||||||
/* no adaptor by that name */
|
/* no adaptor by that name */
|
||||||
|
pScreenPriv->dixinfo = FALSE;
|
||||||
free(pAdapt);
|
free(pAdapt);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -639,7 +639,7 @@ keyboard_handle_keymap(void *data, struct wl_keyboard *keyboard,
|
|||||||
XkbDeviceApplyKeymap(xwl_seat->keyboard, xkb);
|
XkbDeviceApplyKeymap(xwl_seat->keyboard, xkb);
|
||||||
|
|
||||||
master = GetMaster(xwl_seat->keyboard, MASTER_KEYBOARD);
|
master = GetMaster(xwl_seat->keyboard, MASTER_KEYBOARD);
|
||||||
if (master && master->lastSlave == xwl_seat->keyboard)
|
if (master)
|
||||||
XkbDeviceApplyKeymap(master, xkb);
|
XkbDeviceApplyKeymap(master, xkb);
|
||||||
|
|
||||||
XkbFreeKeyboard(xkb, XkbAllComponentsMask, TRUE);
|
XkbFreeKeyboard(xkb, XkbAllComponentsMask, TRUE);
|
||||||
|
@ -159,6 +159,9 @@ xwl_window_from_window(WindowPtr window)
|
|||||||
static struct xwl_seat *
|
static struct xwl_seat *
|
||||||
xwl_screen_get_default_seat(struct xwl_screen *xwl_screen)
|
xwl_screen_get_default_seat(struct xwl_screen *xwl_screen)
|
||||||
{
|
{
|
||||||
|
if (xorg_list_is_empty(&xwl_screen->seat_list))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
return container_of(xwl_screen->seat_list.prev,
|
return container_of(xwl_screen->seat_list.prev,
|
||||||
struct xwl_seat,
|
struct xwl_seat,
|
||||||
link);
|
link);
|
||||||
@ -218,6 +221,10 @@ xwl_cursor_confined_to(DeviceIntPtr device,
|
|||||||
if (!xwl_seat)
|
if (!xwl_seat)
|
||||||
xwl_seat = xwl_screen_get_default_seat(xwl_screen);
|
xwl_seat = xwl_screen_get_default_seat(xwl_screen);
|
||||||
|
|
||||||
|
/* xwl_seat hasn't been setup yet, don't do anything just yet */
|
||||||
|
if (!xwl_seat)
|
||||||
|
return;
|
||||||
|
|
||||||
if (window == screen->root) {
|
if (window == screen->root) {
|
||||||
xwl_seat_unconfine_pointer(xwl_seat);
|
xwl_seat_unconfine_pointer(xwl_seat);
|
||||||
return;
|
return;
|
||||||
@ -454,8 +461,7 @@ xwl_unrealize_window(WindowPtr window)
|
|||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
wl_surface_destroy(xwl_window->surface);
|
wl_surface_destroy(xwl_window->surface);
|
||||||
if (RegionNotEmpty(DamageRegion(xwl_window->damage)))
|
xorg_list_del(&xwl_window->link_damage);
|
||||||
xorg_list_del(&xwl_window->link_damage);
|
|
||||||
DamageUnregister(xwl_window->damage);
|
DamageUnregister(xwl_window->damage);
|
||||||
DamageDestroy(xwl_window->damage);
|
DamageDestroy(xwl_window->damage);
|
||||||
if (xwl_window->frame_callback)
|
if (xwl_window->frame_callback)
|
||||||
|
@ -497,6 +497,7 @@ InputThreadFini(void)
|
|||||||
|
|
||||||
/* Close the pipe to get the input thread to shut down */
|
/* Close the pipe to get the input thread to shut down */
|
||||||
close(hotplugPipeWrite);
|
close(hotplugPipeWrite);
|
||||||
|
input_force_unlock();
|
||||||
pthread_join(inputThreadInfo->thread, NULL);
|
pthread_join(inputThreadInfo->thread, NULL);
|
||||||
|
|
||||||
xorg_list_for_each_entry_safe(dev, next, &inputThreadInfo->devs, node) {
|
xorg_list_for_each_entry_safe(dev, next, &inputThreadInfo->devs, node) {
|
||||||
|
@ -486,7 +486,7 @@ XdmcpRegisterConnection(int type, const char *address, int addrlen)
|
|||||||
IN6_IS_ADDR_V4MAPPED((const struct in6_addr *) address)) {
|
IN6_IS_ADDR_V4MAPPED((const struct in6_addr *) address)) {
|
||||||
fromAddr = &((struct sockaddr_in *) &FromAddress)->sin_addr;
|
fromAddr = &((struct sockaddr_in *) &FromAddress)->sin_addr;
|
||||||
regAddr =
|
regAddr =
|
||||||
&((struct sockaddr_in6 *) &address)->sin6_addr.s6_addr[12];
|
&((struct sockaddr_in6 *) address)->sin6_addr.s6_addr[12];
|
||||||
regAddrlen = sizeof(struct in_addr);
|
regAddrlen = sizeof(struct in_addr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -222,13 +222,13 @@ present_vblank_notify(present_vblank_ptr vblank, CARD8 kind, CARD8 mode, uint64_
|
|||||||
int n;
|
int n;
|
||||||
|
|
||||||
if (vblank->window)
|
if (vblank->window)
|
||||||
present_send_complete_notify(vblank->window, kind, mode, vblank->serial, ust, crtc_msc - vblank->msc_offset, vblank->client);
|
present_send_complete_notify(vblank->window, kind, mode, vblank->serial, ust, crtc_msc - vblank->msc_offset);
|
||||||
for (n = 0; n < vblank->num_notifies; n++) {
|
for (n = 0; n < vblank->num_notifies; n++) {
|
||||||
WindowPtr window = vblank->notifies[n].window;
|
WindowPtr window = vblank->notifies[n].window;
|
||||||
CARD32 serial = vblank->notifies[n].serial;
|
CARD32 serial = vblank->notifies[n].serial;
|
||||||
|
|
||||||
if (window)
|
if (window)
|
||||||
present_send_complete_notify(window, kind, mode, serial, ust, crtc_msc - vblank->msc_offset, vblank->client);
|
present_send_complete_notify(window, kind, mode, serial, ust, crtc_msc - vblank->msc_offset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -788,7 +788,6 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc)
|
|||||||
int
|
int
|
||||||
present_pixmap(WindowPtr window,
|
present_pixmap(WindowPtr window,
|
||||||
PixmapPtr pixmap,
|
PixmapPtr pixmap,
|
||||||
ClientPtr client,
|
|
||||||
CARD32 serial,
|
CARD32 serial,
|
||||||
RegionPtr valid,
|
RegionPtr valid,
|
||||||
RegionPtr update,
|
RegionPtr update,
|
||||||
@ -899,7 +898,6 @@ present_pixmap(WindowPtr window,
|
|||||||
xorg_list_append(&vblank->window_list, &window_priv->vblank);
|
xorg_list_append(&vblank->window_list, &window_priv->vblank);
|
||||||
xorg_list_init(&vblank->event_queue);
|
xorg_list_init(&vblank->event_queue);
|
||||||
|
|
||||||
vblank->client = client;
|
|
||||||
vblank->screen = screen;
|
vblank->screen = screen;
|
||||||
vblank->window = window;
|
vblank->window = window;
|
||||||
vblank->pixmap = pixmap;
|
vblank->pixmap = pixmap;
|
||||||
@ -1019,7 +1017,6 @@ present_abort_vblank(ScreenPtr screen, RRCrtcPtr crtc, uint64_t event_id, uint64
|
|||||||
|
|
||||||
int
|
int
|
||||||
present_notify_msc(WindowPtr window,
|
present_notify_msc(WindowPtr window,
|
||||||
ClientPtr client,
|
|
||||||
CARD32 serial,
|
CARD32 serial,
|
||||||
uint64_t target_msc,
|
uint64_t target_msc,
|
||||||
uint64_t divisor,
|
uint64_t divisor,
|
||||||
@ -1027,7 +1024,6 @@ present_notify_msc(WindowPtr window,
|
|||||||
{
|
{
|
||||||
return present_pixmap(window,
|
return present_pixmap(window,
|
||||||
NULL,
|
NULL,
|
||||||
client,
|
|
||||||
serial,
|
serial,
|
||||||
NULL, NULL,
|
NULL, NULL,
|
||||||
0, 0,
|
0, 0,
|
||||||
|
@ -146,7 +146,7 @@ present_register_complete_notify(present_complete_notify_proc proc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
present_send_complete_notify(WindowPtr window, CARD8 kind, CARD8 mode, CARD32 serial, uint64_t ust, uint64_t msc, ClientPtr client)
|
present_send_complete_notify(WindowPtr window, CARD8 kind, CARD8 mode, CARD32 serial, uint64_t ust, uint64_t msc)
|
||||||
{
|
{
|
||||||
present_window_priv_ptr window_priv = present_window_priv(window);
|
present_window_priv_ptr window_priv = present_window_priv(window);
|
||||||
|
|
||||||
@ -167,8 +167,7 @@ present_send_complete_notify(WindowPtr window, CARD8 kind, CARD8 mode, CARD32 se
|
|||||||
present_event_ptr event;
|
present_event_ptr event;
|
||||||
|
|
||||||
for (event = window_priv->events; event; event = event->next) {
|
for (event = window_priv->events; event; event = event->next) {
|
||||||
if (event->mask & PresentCompleteNotifyMask &&
|
if (event->mask & PresentCompleteNotifyMask) {
|
||||||
client == event->client) {
|
|
||||||
cn.eid = event->id;
|
cn.eid = event->id;
|
||||||
WriteEventsToClient(event->client, 1, (xEvent *) &cn);
|
WriteEventsToClient(event->client, 1, (xEvent *) &cn);
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,6 @@ struct present_notify {
|
|||||||
struct present_vblank {
|
struct present_vblank {
|
||||||
struct xorg_list window_list;
|
struct xorg_list window_list;
|
||||||
struct xorg_list event_queue;
|
struct xorg_list event_queue;
|
||||||
ClientPtr client;
|
|
||||||
ScreenPtr screen;
|
ScreenPtr screen;
|
||||||
WindowPtr window;
|
WindowPtr window;
|
||||||
PixmapPtr pixmap;
|
PixmapPtr pixmap;
|
||||||
@ -156,7 +155,6 @@ present_get_window_priv(WindowPtr window, Bool create);
|
|||||||
int
|
int
|
||||||
present_pixmap(WindowPtr window,
|
present_pixmap(WindowPtr window,
|
||||||
PixmapPtr pixmap,
|
PixmapPtr pixmap,
|
||||||
ClientPtr client,
|
|
||||||
CARD32 serial,
|
CARD32 serial,
|
||||||
RegionPtr valid,
|
RegionPtr valid,
|
||||||
RegionPtr update,
|
RegionPtr update,
|
||||||
@ -174,7 +172,6 @@ present_pixmap(WindowPtr window,
|
|||||||
|
|
||||||
int
|
int
|
||||||
present_notify_msc(WindowPtr window,
|
present_notify_msc(WindowPtr window,
|
||||||
ClientPtr client,
|
|
||||||
CARD32 serial,
|
CARD32 serial,
|
||||||
uint64_t target_msc,
|
uint64_t target_msc,
|
||||||
uint64_t divisor,
|
uint64_t divisor,
|
||||||
@ -218,7 +215,7 @@ void
|
|||||||
present_send_config_notify(WindowPtr window, int x, int y, int w, int h, int bw, WindowPtr sibling);
|
present_send_config_notify(WindowPtr window, int x, int y, int w, int h, int bw, WindowPtr sibling);
|
||||||
|
|
||||||
void
|
void
|
||||||
present_send_complete_notify(WindowPtr window, CARD8 kind, CARD8 mode, CARD32 serial, uint64_t ust, uint64_t msc, ClientPtr client);
|
present_send_complete_notify(WindowPtr window, CARD8 kind, CARD8 mode, CARD32 serial, uint64_t ust, uint64_t msc);
|
||||||
|
|
||||||
void
|
void
|
||||||
present_send_idle_notify(WindowPtr window, CARD32 serial, PixmapPtr pixmap, present_fence_ptr idle_fence);
|
present_send_idle_notify(WindowPtr window, CARD32 serial, PixmapPtr pixmap, present_fence_ptr idle_fence);
|
||||||
|
@ -135,7 +135,7 @@ proc_present_pixmap(ClientPtr client)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = present_pixmap(window, pixmap, client, stuff->serial, valid, update,
|
ret = present_pixmap(window, pixmap, stuff->serial, valid, update,
|
||||||
stuff->x_off, stuff->y_off, target_crtc,
|
stuff->x_off, stuff->y_off, target_crtc,
|
||||||
wait_fence, idle_fence, stuff->options,
|
wait_fence, idle_fence, stuff->options,
|
||||||
stuff->target_msc, stuff->divisor, stuff->remainder, notifies, nnotifies);
|
stuff->target_msc, stuff->divisor, stuff->remainder, notifies, nnotifies);
|
||||||
@ -171,7 +171,7 @@ proc_present_notify_msc(ClientPtr client)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return present_notify_msc(window, client, stuff->serial,
|
return present_notify_msc(window, stuff->serial,
|
||||||
stuff->target_msc, stuff->divisor, stuff->remainder);
|
stuff->target_msc, stuff->divisor, stuff->remainder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -272,7 +272,7 @@ ProcRRSetScreenSize(ClientPtr client)
|
|||||||
int source_height = mode->mode.height;
|
int source_height = mode->mode.height;
|
||||||
Rotation rotation = crtc->rotation;
|
Rotation rotation = crtc->rotation;
|
||||||
|
|
||||||
if (rotation == RR_Rotate_90 || rotation == RR_Rotate_270) {
|
if (rotation & (RR_Rotate_90 | RR_Rotate_270)) {
|
||||||
source_width = mode->mode.height;
|
source_width = mode->mode.height;
|
||||||
source_height = mode->mode.width;
|
source_height = mode->mode.width;
|
||||||
}
|
}
|
||||||
|
@ -55,6 +55,7 @@ typedef struct _AnimCurElt {
|
|||||||
typedef struct _AnimCur {
|
typedef struct _AnimCur {
|
||||||
int nelt; /* number of elements in the elts array */
|
int nelt; /* number of elements in the elts array */
|
||||||
AnimCurElt *elts; /* actually allocated right after the structure */
|
AnimCurElt *elts; /* actually allocated right after the structure */
|
||||||
|
OsTimerPtr timer;
|
||||||
} AnimCurRec, *AnimCurPtr;
|
} AnimCurRec, *AnimCurPtr;
|
||||||
|
|
||||||
typedef struct _AnimScrPriv {
|
typedef struct _AnimScrPriv {
|
||||||
@ -65,8 +66,6 @@ typedef struct _AnimScrPriv {
|
|||||||
RealizeCursorProcPtr RealizeCursor;
|
RealizeCursorProcPtr RealizeCursor;
|
||||||
UnrealizeCursorProcPtr UnrealizeCursor;
|
UnrealizeCursorProcPtr UnrealizeCursor;
|
||||||
RecolorCursorProcPtr RecolorCursor;
|
RecolorCursorProcPtr RecolorCursor;
|
||||||
OsTimerPtr timer;
|
|
||||||
Bool timer_set;
|
|
||||||
} AnimCurScreenRec, *AnimCurScreenPtr;
|
} AnimCurScreenRec, *AnimCurScreenPtr;
|
||||||
|
|
||||||
static unsigned char empty[4];
|
static unsigned char empty[4];
|
||||||
@ -77,12 +76,9 @@ static CursorBits animCursorBits = {
|
|||||||
|
|
||||||
static DevPrivateKeyRec AnimCurScreenPrivateKeyRec;
|
static DevPrivateKeyRec AnimCurScreenPrivateKeyRec;
|
||||||
|
|
||||||
#define AnimCurScreenPrivateKey (&AnimCurScreenPrivateKeyRec)
|
|
||||||
|
|
||||||
#define IsAnimCur(c) ((c) && ((c)->bits == &animCursorBits))
|
#define IsAnimCur(c) ((c) && ((c)->bits == &animCursorBits))
|
||||||
#define GetAnimCur(c) ((AnimCurPtr) ((((char *)(c) + CURSOR_REC_SIZE))))
|
#define GetAnimCur(c) ((AnimCurPtr) ((((char *)(c) + CURSOR_REC_SIZE))))
|
||||||
#define GetAnimCurScreen(s) ((AnimCurScreenPtr)dixLookupPrivate(&(s)->devPrivates, AnimCurScreenPrivateKey))
|
#define GetAnimCurScreen(s) ((AnimCurScreenPtr)dixLookupPrivate(&(s)->devPrivates, &AnimCurScreenPrivateKeyRec))
|
||||||
#define SetAnimCurScreen(s,p) dixSetPrivate(&(s)->devPrivates, AnimCurScreenPrivateKey, p)
|
|
||||||
|
|
||||||
#define Wrap(as,s,elt,func) (((as)->elt = (s)->elt), (s)->elt = func)
|
#define Wrap(as,s,elt,func) (((as)->elt = (s)->elt), (s)->elt = func)
|
||||||
#define Unwrap(as,s,elt) ((s)->elt = (as)->elt)
|
#define Unwrap(as,s,elt) ((s)->elt = (as)->elt)
|
||||||
@ -101,9 +97,7 @@ AnimCurCloseScreen(ScreenPtr pScreen)
|
|||||||
Unwrap(as, pScreen, RealizeCursor);
|
Unwrap(as, pScreen, RealizeCursor);
|
||||||
Unwrap(as, pScreen, UnrealizeCursor);
|
Unwrap(as, pScreen, UnrealizeCursor);
|
||||||
Unwrap(as, pScreen, RecolorCursor);
|
Unwrap(as, pScreen, RecolorCursor);
|
||||||
SetAnimCurScreen(pScreen, 0);
|
|
||||||
ret = (*pScreen->CloseScreen) (pScreen);
|
ret = (*pScreen->CloseScreen) (pScreen);
|
||||||
free(as);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,57 +129,43 @@ AnimCurCursorLimits(DeviceIntPtr pDev,
|
|||||||
static CARD32
|
static CARD32
|
||||||
AnimCurTimerNotify(OsTimerPtr timer, CARD32 now, void *arg)
|
AnimCurTimerNotify(OsTimerPtr timer, CARD32 now, void *arg)
|
||||||
{
|
{
|
||||||
ScreenPtr pScreen = arg;
|
DeviceIntPtr dev = arg;
|
||||||
|
ScreenPtr pScreen = dev->spriteInfo->anim.pScreen;
|
||||||
AnimCurScreenPtr as = GetAnimCurScreen(pScreen);
|
AnimCurScreenPtr as = GetAnimCurScreen(pScreen);
|
||||||
DeviceIntPtr dev;
|
|
||||||
Bool activeDevice = FALSE;
|
|
||||||
CARD32 soonest = ~0; /* earliest time to wakeup again */
|
|
||||||
|
|
||||||
for (dev = inputInfo.devices; dev; dev = dev->next) {
|
AnimCurPtr ac = GetAnimCur(dev->spriteInfo->anim.pCursor);
|
||||||
if (IsPointerDevice(dev) && pScreen == dev->spriteInfo->anim.pScreen) {
|
int elt = (dev->spriteInfo->anim.elt + 1) % ac->nelt;
|
||||||
if (!activeDevice)
|
DisplayCursorProcPtr DisplayCursor = pScreen->DisplayCursor;
|
||||||
activeDevice = TRUE;
|
|
||||||
|
|
||||||
if ((INT32) (now - dev->spriteInfo->anim.time) >= 0) {
|
/*
|
||||||
AnimCurPtr ac = GetAnimCur(dev->spriteInfo->anim.pCursor);
|
* Not a simple Unwrap/Wrap as this isn't called along the DisplayCursor
|
||||||
int elt = (dev->spriteInfo->anim.elt + 1) % ac->nelt;
|
* wrapper chain.
|
||||||
DisplayCursorProcPtr DisplayCursor;
|
*/
|
||||||
|
pScreen->DisplayCursor = as->DisplayCursor;
|
||||||
|
(void) (*pScreen->DisplayCursor) (dev, pScreen, ac->elts[elt].pCursor);
|
||||||
|
as->DisplayCursor = pScreen->DisplayCursor;
|
||||||
|
pScreen->DisplayCursor = DisplayCursor;
|
||||||
|
|
||||||
/*
|
dev->spriteInfo->anim.elt = elt;
|
||||||
* Not a simple Unwrap/Wrap as this
|
dev->spriteInfo->anim.time = now + ac->elts[elt].delay;
|
||||||
* isn't called along the DisplayCursor
|
|
||||||
* wrapper chain.
|
|
||||||
*/
|
|
||||||
DisplayCursor = pScreen->DisplayCursor;
|
|
||||||
pScreen->DisplayCursor = as->DisplayCursor;
|
|
||||||
(void) (*pScreen->DisplayCursor) (dev,
|
|
||||||
pScreen,
|
|
||||||
ac->elts[elt].pCursor);
|
|
||||||
as->DisplayCursor = pScreen->DisplayCursor;
|
|
||||||
pScreen->DisplayCursor = DisplayCursor;
|
|
||||||
|
|
||||||
dev->spriteInfo->anim.elt = elt;
|
return ac->elts[elt].delay;
|
||||||
dev->spriteInfo->anim.time = now + ac->elts[elt].delay;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (soonest > dev->spriteInfo->anim.time)
|
static void
|
||||||
soonest = dev->spriteInfo->anim.time;
|
AnimCurCancelTimer(DeviceIntPtr pDev)
|
||||||
}
|
{
|
||||||
}
|
CursorPtr cur = pDev->spriteInfo->anim.pCursor;
|
||||||
|
|
||||||
if (activeDevice)
|
if (IsAnimCur(cur))
|
||||||
TimerSet(as->timer, TimerAbsolute, soonest, AnimCurTimerNotify, pScreen);
|
TimerCancel(GetAnimCur(cur)->timer);
|
||||||
else
|
|
||||||
as->timer_set = FALSE;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Bool
|
static Bool
|
||||||
AnimCurDisplayCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
|
AnimCurDisplayCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
|
||||||
{
|
{
|
||||||
AnimCurScreenPtr as = GetAnimCurScreen(pScreen);
|
AnimCurScreenPtr as = GetAnimCurScreen(pScreen);
|
||||||
Bool ret;
|
Bool ret = TRUE;
|
||||||
|
|
||||||
if (IsFloating(pDev))
|
if (IsFloating(pDev))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -195,8 +175,10 @@ AnimCurDisplayCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
|
|||||||
if (pCursor != pDev->spriteInfo->anim.pCursor) {
|
if (pCursor != pDev->spriteInfo->anim.pCursor) {
|
||||||
AnimCurPtr ac = GetAnimCur(pCursor);
|
AnimCurPtr ac = GetAnimCur(pCursor);
|
||||||
|
|
||||||
ret = (*pScreen->DisplayCursor)
|
AnimCurCancelTimer(pDev);
|
||||||
(pDev, pScreen, ac->elts[0].pCursor);
|
ret = (*pScreen->DisplayCursor) (pDev, pScreen,
|
||||||
|
ac->elts[0].pCursor);
|
||||||
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
pDev->spriteInfo->anim.elt = 0;
|
pDev->spriteInfo->anim.elt = 0;
|
||||||
pDev->spriteInfo->anim.time =
|
pDev->spriteInfo->anim.time =
|
||||||
@ -204,17 +186,13 @@ AnimCurDisplayCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
|
|||||||
pDev->spriteInfo->anim.pCursor = pCursor;
|
pDev->spriteInfo->anim.pCursor = pCursor;
|
||||||
pDev->spriteInfo->anim.pScreen = pScreen;
|
pDev->spriteInfo->anim.pScreen = pScreen;
|
||||||
|
|
||||||
if (!as->timer_set) {
|
ac->timer = TimerSet(ac->timer, 0, ac->elts[0].delay,
|
||||||
TimerSet(as->timer, TimerAbsolute, pDev->spriteInfo->anim.time,
|
AnimCurTimerNotify, pDev);
|
||||||
AnimCurTimerNotify, pScreen);
|
|
||||||
as->timer_set = TRUE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
ret = TRUE;
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
AnimCurCancelTimer(pDev);
|
||||||
pDev->spriteInfo->anim.pCursor = 0;
|
pDev->spriteInfo->anim.pCursor = 0;
|
||||||
pDev->spriteInfo->anim.pScreen = 0;
|
pDev->spriteInfo->anim.pScreen = 0;
|
||||||
ret = (*pScreen->DisplayCursor) (pDev, pScreen, pCursor);
|
ret = (*pScreen->DisplayCursor) (pDev, pScreen, pCursor);
|
||||||
@ -233,12 +211,6 @@ AnimCurSetCursorPosition(DeviceIntPtr pDev,
|
|||||||
Unwrap(as, pScreen, SetCursorPosition);
|
Unwrap(as, pScreen, SetCursorPosition);
|
||||||
if (pDev->spriteInfo->anim.pCursor) {
|
if (pDev->spriteInfo->anim.pCursor) {
|
||||||
pDev->spriteInfo->anim.pScreen = pScreen;
|
pDev->spriteInfo->anim.pScreen = pScreen;
|
||||||
|
|
||||||
if (!as->timer_set) {
|
|
||||||
TimerSet(as->timer, TimerAbsolute, pDev->spriteInfo->anim.time,
|
|
||||||
AnimCurTimerNotify, pScreen);
|
|
||||||
as->timer_set = TRUE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
ret = (*pScreen->SetCursorPosition) (pDev, pScreen, x, y, generateEvent);
|
ret = (*pScreen->SetCursorPosition) (pDev, pScreen, x, y, generateEvent);
|
||||||
Wrap(as, pScreen, SetCursorPosition, AnimCurSetCursorPosition);
|
Wrap(as, pScreen, SetCursorPosition, AnimCurSetCursorPosition);
|
||||||
@ -308,18 +280,11 @@ AnimCurInit(ScreenPtr pScreen)
|
|||||||
{
|
{
|
||||||
AnimCurScreenPtr as;
|
AnimCurScreenPtr as;
|
||||||
|
|
||||||
if (!dixRegisterPrivateKey(&AnimCurScreenPrivateKeyRec, PRIVATE_SCREEN, 0))
|
if (!dixRegisterPrivateKey(&AnimCurScreenPrivateKeyRec, PRIVATE_SCREEN,
|
||||||
|
sizeof(AnimCurScreenRec)))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
as = (AnimCurScreenPtr) malloc(sizeof(AnimCurScreenRec));
|
as = GetAnimCurScreen(pScreen);
|
||||||
if (!as)
|
|
||||||
return FALSE;
|
|
||||||
as->timer = TimerSet(NULL, TimerAbsolute, 0, AnimCurTimerNotify, pScreen);
|
|
||||||
if (!as->timer) {
|
|
||||||
free(as);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
as->timer_set = FALSE;
|
|
||||||
|
|
||||||
Wrap(as, pScreen, CloseScreen, AnimCurCloseScreen);
|
Wrap(as, pScreen, CloseScreen, AnimCurCloseScreen);
|
||||||
|
|
||||||
@ -329,7 +294,6 @@ AnimCurInit(ScreenPtr pScreen)
|
|||||||
Wrap(as, pScreen, RealizeCursor, AnimCurRealizeCursor);
|
Wrap(as, pScreen, RealizeCursor, AnimCurRealizeCursor);
|
||||||
Wrap(as, pScreen, UnrealizeCursor, AnimCurUnrealizeCursor);
|
Wrap(as, pScreen, UnrealizeCursor, AnimCurUnrealizeCursor);
|
||||||
Wrap(as, pScreen, RecolorCursor, AnimCurRecolorCursor);
|
Wrap(as, pScreen, RecolorCursor, AnimCurRecolorCursor);
|
||||||
SetAnimCurScreen(pScreen, as);
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -368,10 +332,14 @@ AnimCursorCreate(CursorPtr *cursors, CARD32 *deltas, int ncursor,
|
|||||||
|
|
||||||
pCursor->id = cid;
|
pCursor->id = cid;
|
||||||
|
|
||||||
|
ac = GetAnimCur(pCursor);
|
||||||
|
ac->timer = TimerSet(NULL, 0, 0, AnimCurTimerNotify, NULL);
|
||||||
|
|
||||||
/* security creation/labeling check */
|
/* security creation/labeling check */
|
||||||
rc = XaceHook(XACE_RESOURCE_ACCESS, client, cid, RT_CURSOR, pCursor,
|
rc = XaceHook(XACE_RESOURCE_ACCESS, client, cid, RT_CURSOR, pCursor,
|
||||||
RT_NONE, NULL, DixCreateAccess);
|
RT_NONE, NULL, DixCreateAccess);
|
||||||
if (rc != Success) {
|
if (rc != Success) {
|
||||||
|
TimerFree(ac->timer);
|
||||||
dixFiniPrivates(pCursor, PRIVATE_CURSOR);
|
dixFiniPrivates(pCursor, PRIVATE_CURSOR);
|
||||||
free(pCursor);
|
free(pCursor);
|
||||||
return rc;
|
return rc;
|
||||||
@ -381,7 +349,6 @@ AnimCursorCreate(CursorPtr *cursors, CARD32 *deltas, int ncursor,
|
|||||||
* Fill in the AnimCurRec
|
* Fill in the AnimCurRec
|
||||||
*/
|
*/
|
||||||
animCursorBits.refcnt++;
|
animCursorBits.refcnt++;
|
||||||
ac = GetAnimCur(pCursor);
|
|
||||||
ac->nelt = ncursor;
|
ac->nelt = ncursor;
|
||||||
ac->elts = (AnimCurElt *) (ac + 1);
|
ac->elts = (AnimCurElt *) (ac + 1);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user