Commit Graph

3726 Commits

Author SHA1 Message Date
Peter Hutterer
15117d47bf xkb: enable XI event processing for xkb.
XI events can now take the same processing paths as core events, and should do
the correct state changes etc.

There's some cases where XKB will use KeyPress as type for an event to be
delivered to the client. Stuck warnings in, not sure what the correct solution
is yet.

(cherry picked from commit 6334d4e7be with some
 additional compile fixes and non-MPX adaptations)
(cherry picked from commit 99e826e867)
2007-10-30 00:58:38 +02:00
Peter Hutterer
83e76fb3f7 Save processInputProc before wrapping it and restore it later, instead of
using a hardcoded ProcessKeyboardEvent. Otherwise we lose the ability to
process DeviceKeyEvents after the first key press.

This should be the correct fix now.
(cherry picked from commit 4d5df14f2c)
(cherry picked from commit 91077bfc50)
2007-10-30 00:58:34 +02:00
Peter Hutterer
a53172827c xkb: Store the action filters per device in the XkbSrvInfoRec.
Using a global array for action filters is bad. If two keyboard hit a modifier
at the same time, releaseing the first one will deactivate the filter and
thus the second keyboard can never release the modifier again.
(cherry picked from commit bfe6b4d2d9)
(cherry picked from commit 8b9481a113)
2007-10-30 00:58:25 +02:00
Daniel Stone
b76b1d51fe XFree86: Remove ridiculous SIGIO debugging
YOU PRESSED A KEY
AND AGAIN
YOU RELEASED A KEY
AND AGAIN
YOU PRESSED A KEY
AND AGAIN

... not so much.
(cherry picked from commit 493b83bd09)
2007-10-30 00:58:19 +02:00
Daniel Stone
b600e7c123 XKB: Add more bits to xkbsrv.h
Add the device private index, given we use that in a macro here, and also the
prototype for xkbUnwrapProc, since that's also useful.
(cherry picked from commit a3d48de5f2)
2007-10-30 00:58:14 +02:00
Daniel Stone
63c6d9d622 Xi: Include XI protocol header in exevents.h
Make sure we have all the types we need to use this header.
(cherry picked from commit e29e69960d)
2007-10-30 00:58:09 +02:00
Daniel Stone
bd779f8cde configure.ac/XFree86: Only build XF86Misc and XF86VidMode when appropriate
Don't build XF86Misc or XF86Vidmode in hw/xfree86/dixmod when it's been
explicitly disabled in configure, or we don't have the proto modules
installed.

(cherry picked from commit df57ae1639)
2007-10-30 00:57:49 +02:00
Aaron Plattner
881e4fb518 Set noCompositeExtension to TRUE when failing to initialize the extension (e.g. when Xinerama is enabled).
(cherry picked from commit 50fa8722d3)
2007-10-30 00:56:15 +02:00
Aaron Plattner
ce55565ecd Don't segfault on shutdown if we never managed to connect to dbus.
(cherry picked from commit 3a965fdadc)
2007-10-30 00:55:26 +02:00
Peter Hutterer
eba45539af config: Use [config/dbus] consistently for error messages.
(cherry picked from commit 3f42af8c0e)
2007-10-30 00:55:13 +02:00
Peter Hutterer
c0da35bda1 config: return BadValue to caller if add/remove doesn't have parameters.
If message iterator cannot be created, the caller didn't supply any
parameters. Return BadValue, instead of dying a horrible death while being
stuck in an endless loop.
(cherry picked from commit 0fcde83d94)
2007-10-30 00:55:08 +02:00
Eric Anholt
99dd8b9414 Bump version to 1.4.0. 2007-09-06 01:42:43 -07:00
Daniel Stone
f73fd98a86 Fix key repeats during VT switch.
Add keyc->postdown, which represents the key state as of the last mieqEnqueue
call, and use it when we need to know the posted state, instead of the
processed state (keyc->down).  Add small functions to getevents.c to query and
modify key state in postdown and use them all through, eliminating previously
broken uses.
(cherry picked from commit 81c28ffd2b)
2007-09-05 17:47:50 -07:00
Keith Packard
3c5fe1ec37 Deliver correct event when releasing keys on VT switch.
In commit 41bb9fce47, the event delivery loop
for Xinput enabled keyboards was changed and accidentally used the wrong
index variable, causing random events to be delivered when returning from VT
switch.

In addition, in commit aeba855b07,
SIGIO was blocked during delivery of these events, but not for the entire
period the xf86Events array was being used. Block SIGIO for the whole loop
to avoid other event delivery from trashing the key release events.
(cherry picked from commit aa7ed1f5f3)
(cherry picked from commit accd71bda6)
2007-09-05 14:59:16 -07:00
Eric Anholt
70ed110538 Fix server version reporting to be the server package version.
Previously, the server version reported by xdpyinfo and Xorg -version would
bear some vague resemblance to a X.Org katamari version, but in the presence
of modularization (and client-server relationships with different katamari
versions on each side) those numbers don't really make sense.  Instead, just
report the package version.

When branching a stable branch, master's version should be immediately updated
to the endpoint of the stable branch plus a snapshot of 1 (for example,
1.4.0.1 after server-1.4-branch).  The stable branch should then be changed to
RC0 at that time (1.3.99.0, for example).

This scheme was partially attempted for server 1.3, but lacked the appropriate
master updates, thus why it had to be revisited now.  While here, we can also
remove a lot of versioning complexity since everything is based on the package
version.

(cherry picked from commit 47300ed2be)
2007-09-05 13:31:50 -07:00
Alan Hourihane
b328d55372 Allow yres_virtual to be greater for some kernel fbdev drivers.
(temporary fix for older fbdev drivers)
(cherry picked from commit 87495fc706)
2007-09-04 17:44:17 -07:00
Keith Packard
b69e616513 [COMPOSITE] Composite used for pixmap population on redirect. (Bug #7447)
compNewPixmap copies bits from the parent window to the redirected child
pixmap to populate the pixmap with reasonable data. It cannot always use
CopyArea as that only works across matching depths. Use Composite when
the depths do not match.
(cherry picked from commit f98dfec79d)
2007-09-04 11:19:47 -07:00
Adam Jackson
87f9817841 [RANDR] Don't mark Xinerama as active if no crtcs are enabled. (bug #11504).
Clients expect any Xinerama-enabled screen to report at least one
monitor, but with RandR, there may not be any enabled crtcs. In this case,
tell the client that Xinerama is not active.
(cherry picked from commit 1afdf8b0a9)
2007-09-04 11:19:21 -07:00
Marius Gedminas
61460cf095 [RANDR] Compare only milliseconds of config time. (Bug #6502)
The timestamp transferred in the X protocol is a 32-bit number of
milliseconds.

The timestamp stored in the server is a structure that contains two fields:
months (!) and milliseconds.

When the server passes the config timestamp to the client, it discards the
months part and sends only the milliseconds part.

When the server receives the config timestamp from the client, it tries to
guess the "months" part by looking at the current time and then maybe adding
or
subtracting one.  The guess is wrong after the server has been running long
enough (several hours).

I have added two ErrorF calls around the 'if' statement that returns
RRSetConfigInvalidConfigTimestamp in randr/randr.c and my Xorg.0.log has
this:

  randr request got good config time: 0:-2103495671

for the first few successful xrandr calls, and

  randr request failed with RRSetConfigInvalidConfigTime: client passed
  1:-2103495671, server has 0:-2103495671

when it fails.  The server has been running for 8 and a half hours.

The obvious fix would be to ignore the months field and only compare the
milliseconds.
(cherry picked from commit 0dc2bb6101)
2007-09-04 11:18:02 -07:00
Eric Anholt
ec56c5e958 Bump version to 1.3.99.2. 2007-08-31 20:02:52 -07:00
Eric Anholt
5efc4bd7d0 Remove backend.[ch] from neomagic to fix distcheck.
(cherry picked from commit 917e3bb83a48da7618fce463cf6283be36cd9084)
2007-08-31 18:28:34 -07:00
Eric Anholt
1a125b5214 Bug #7364: Require renderproto 0.9.3 on 64-bit, and fix build with it.
(cherry picked from commit 07630d897e)
2007-08-31 15:58:16 -07:00
Eric Anholt
f499c2ea0a Bug #7186: Fix an excessive request size limitation that broke big-requests.
MAXBUFSIZE appears to be a leftover of some previous time.  Instead, just
use maxBigRequestSize when bigreqs are available (limiting buffers to ~16MB).
When bigreqs are not available, needed won't be larger than the maximum
size of a non-bigreqs request (256kB).
(cherry picked from commit ca82d4bddf)
2007-08-31 15:54:11 -07:00
Matthieu Herrb
3e9ecdcb13 Remove an extra cast.
Thou should not apply patches manually without testing.
(cherry picked from commit a66c0f1dca)
2007-08-31 10:00:10 -07:00
Otto Moerbeek
a964d54128 A high resolution device that's moving fast can potentially generate
an int overflow, making dx*dx+dy*dy negative. Now pow(negative,
non-integer) yields NaN, so you loose.  Use fp math to avoid that.
(cherry picked from commit 12d27cf33c)
2007-08-31 09:59:53 -07:00
Egbert Eich
bcd6708895 Fixing a misleading comment which could suggest a GPL violation.
The author of the int10 code looked at the VBIOS POSTing code
in DOSEMU to get some initial idea on how to POST a VBIOS.
To give credit to the DOSEMU Team for this inspiration a comment
was added to the code which could suggest that code from the
GPLed DOSEMU was directly incorporated into this code.
This patch should clearify the situation.
(cherry picked from commit 1d11e4bc4c)
2007-08-30 11:20:40 -07:00
Eric Anholt
ed001ed363 Bug #9629: Remove badly-licensed neomagic kdrive files.
Licensing issues of these files include:
- They claim to be licensed under the GPL, yet we haven't allowed that in the
  xserver repository in the past.
- They refer the user to the top of the tree for GPL license text, yet it isn't
  there.
- They claim to be derived from the (MIT-licensed) ati kdrive code, yet don't
  follow the licensing terms of those files.
(cherry picked from commit 87295b66a9)
2007-08-29 16:48:59 -07:00
Alex Deucher
5182fbf302 Add _X_EXPORT to exported functions in hw/xfree86/modes/*
Also add missing exports to hw/xfree86/loader/xf86sym.c
(cherry picked from commit 81f8b652d9)
2007-08-29 16:48:52 -07:00
Brian Paul
37954c019a glx: fix crash when freeing visuals
Don't set screen->num_vis to a value greater than the actual number of visuals.

X.Org Bug #10809 <http://bugs.freedesktop.org/show_bug.cgi?id=10809>
(cherry picked from commit ff089e6cae)
2007-08-23 12:23:01 -07:00
Dave Airlie
d34b66402c randr: fixup crtc and output destroy
if you are moving pointers, you want to move the pointers not just a byte
(cherry picked from commit 76bf3cd7b8)
2007-08-23 12:22:56 -07:00
Keith Packard
efac9c9c2e Ref count cursors used in hw/xfree86/modes code.
The multi-crtc cursor code in hw/xfree86/modes holds a reference to the
current cursor. This reference must be correctly ref counted so the cursor
is not freed out from underneath this code.
(cherry picked from commit 7dc8531548)
2007-08-23 12:22:35 -07:00
Alex Deucher
248b220b3e add xf86_crtc_clip_video_helper to xf86sym.c
(cherry picked from commit 1f6ddae003)
2007-08-23 12:22:17 -07:00
Alex Deucher
242c05e326 move intel crtc xv clipping helper to the xserver
The code is generic and can be used by any overlay-based card when
adding randr 1.2 support.  Tested on radeon.
(cherry picked from commit 53c04351c4)
2007-08-23 12:22:14 -07:00
Fredrik Höglund
dd33e936b3 EXA: Fix a couple of logic errors in exaGetPixmapFirstPixel.
The fb pointer would be left uninitialized when exaPixmapIsOffscreen
returned false. When it returned true and the pixmap was damaged,
fb would be initialized from the pixmap's devPrivate.ptr before the
exaDoMigration and exaPrepareAccess calls, at which point
devPrivate.ptr would still be pointing at offscreen memory.
(cherry picked from commit 3c448b0eb6)
2007-08-23 12:21:24 -07:00
Søren Sandmann Pedersen
ec126e29e4 Require pixman 0.9.5; Use pixman_image_set_source_clipping() to fix
bug 11620 (reported by Jens Stroebel.
(cherry picked from commit 53941c8e68)
2007-08-23 12:19:28 -07:00
Aaron Plattner
71ddf917d7 stride is in FbBits-sized chunks, but xoff is not.
Fixes corruption problems with composite rendering to redirected windows in
depth 16.
(cherry picked from commit 6a32a96d8d)
2007-08-23 12:19:25 -07:00
Aaron Plattner
7cc53ae10a Bug #12015: Use the right offsets in the dst arguments of pixman_blt.
(cherry picked from commit 32666d7722)
2007-08-23 12:19:20 -07:00
Julien Cristau
2bf6cb3074 config: fix default xkb model (pc105, not keyboard)
(cherry picked from commit 6ef4ecd826)
2007-08-21 18:19:24 +02:00
Julien Cristau
fd4dc5a98e xfree86: Fix build on Linux/alpha.
A bunch of CFLAGS had gone missing, so the build failed with errors like:
../../../../../hw/xfree86/os-support/linux/lnx_ev56.c:7:19: error: input.h: No such file or directory
../../../../../hw/xfree86/os-support/linux/lnx_ev56.c:8:24: error: scrnintstr.h: No such file or directory
(cherry picked from commit a1fe36b772)
2007-08-21 00:27:21 +02:00
Fredrik Höglund
9a747b0b81 EXA: Wrap Trapezoids to prevent excessive migration of the alpha pixmap.
miTrapezoids creates an alpha pixmap and initializes the contents
using PolyFillRect, which causes the pixmap to be moved in for
acceleration. The subsequent call to RasterizeTrapezoid won't be
accelerated by EXA, which causing the pixmap to be moved back out
again.

By wrapping Trapezoids and using ExaCheckPolyFillRect instead of
PolyFillRect to initialize the pixmap, we avoid this roundtrip.
(cherry picked from commit daee59b170)
2007-08-17 00:09:30 +02:00
Dave Jones
d37edeff99 Kdrive: fix nasty thinko in TslibEnable() 2007-08-16 10:53:35 +03:00
Alan Coopersmith
026534f945 Update pci.ids to 2007-08-15 snapshot
Remove nvidia ids in extrapci.ids that are now in pci.ids
2007-08-15 16:47:53 -07:00
Alan Coopersmith
6cef7b9611 Correct XErrorDB path and make it configurable (used by DTrace support) 2007-08-15 16:44:49 -07:00
Fredrik Höglund
0f9e89b4e3 Fix the value comparisons in the IDLETIME wakeup handler.
LessThan/GreaterThan comparisons were used in the wakeup handler,
and LessOrEqual/GreaterOrEqual in the block handler.

Change it to use LessOrEqual/GreaterOrEqual in both functions,
since this is what XSyncNegativeComparison and
XSyncPositiveComparison imply.
2007-08-14 22:47:49 +02:00
Kristian Høgsberg
6a195e816b Revert "Implement damage tracking for AIGLX."
This reverts commit 2243b30e54.  The existing
DRI interface doesn't let us get from a __DRIdrawable to the corresponding
X drawable, and thus, we can't implement AIGLX damage tracking with the
current interface.
2007-08-13 10:43:48 -04:00
Samuel Thibault
03f9da6724 xfree86: Improve default mouse handling on the Hurd
Make /dev/mouse the default device.  This makes Xorg works with empty
or missing InputDevice sections.
2007-08-12 03:08:49 +02:00
Alan Coopersmith
c5741438a3 Only use evdev drivers in Xephyr #ifdef linux 2007-08-10 16:13:55 -07:00
Alan Coopersmith
59961e47df xorgcfg needs PIXMAN_CFLAGS in order to build libc_wrapper.c 2007-08-10 16:08:41 -07:00
Kristian Høgsberg
2243b30e54 Implement damage tracking for AIGLX. 2007-08-10 15:53:05 -04:00
Eric Anholt
ff4bd3addb Fix the swapped decode of the EDID DTD h/v sync polarity fields.
As a result, we can remove the quirks that existed to flip the bits back around
for us.  This is not confirmed in all cases due to lack of bugs containing EDID
blocks associated with the quirks, but is likely true.
2007-08-08 14:39:27 -07:00