Commit Graph

8070 Commits

Author SHA1 Message Date
Peter Hutterer 2b459f44f3 Xi: return BadImplementation for deviceids 256 and above
The protocol allows for 16 bit device ids, but the implementation doesn't
yet. We need to break the input ABI once more to shift the DeviceIntRec's
CARD8 to a CARD16, along with some changes in the privates.

Once that is done, revert this patch.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-05 16:09:09 +10:00
Peter Hutterer c77f42049f Xi: fix flawed logic in XIQueryVersion return value.
The server returned the minimum of major/minor each instead of the lower of
the combined major.minor version. As a result, a client reporting
3.0 and a server supporting 2.7, the return value would be 2.0 (the minimum
of both).

Reported-by: Rémi Cardona
Reported-by: Simon Thum
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-05 16:09:09 +10:00
Dave Airlie b6c16fc7da crtc/gamma: check xf86_config is valid before using it.
If you have multiple cards, some that support randr 1.2 and some that don't
you can get a null dereference in here.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2009-06-05 12:04:03 +10:00
Eamon Walsh da682abc78 xace: fix a bad send access hook call. 2009-06-04 17:33:25 -04:00
Peter Hutterer 993daf0649 Merge branch 'master' into xi2 2009-06-04 15:11:36 +10:00
Peter Hutterer 2bda50ee14 Xi: memset the device name padding to 0.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-04 15:11:09 +10:00
Peter Hutterer 09266d6cd1 Xi: XIQueryVersion requires major_version of 2 or higher.
Otherwise, a BadValue error is sent.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-04 15:11:09 +10:00
Peter Hutterer 6ea76c5504 Xi: reply with the XI2 version that is supported by both client and server.
XIQueryVersion must return the client's version if the client's version is
lower than or equal to the server's version, or the server's version
otherwise.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-04 15:11:07 +10:00
Peter Hutterer d979f44394 test: check from INT_MIN to INT_MAX for core type conversion
ErrorF is link-wrapped to reduce the run-time of the test.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-04 11:41:02 +10:00
Peter Hutterer d8471bc7a1 test: adjust event_to_core_conversion test for new ProximityIn/Out behaviour
Both types now return BadMatch.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-04 11:32:36 +10:00
Adam Jackson e1e8c7ddd7 s/MIN/min/, s/MAX/max/ (#2968) 2009-06-03 13:45:42 -04:00
Peter Hutterer 6de67d3206 Merge branch 'master' into xi2 2009-06-03 16:11:33 +10:00
Olivier Blin 7f027d9dc0 kdrive: add protocol mouse option
kdrive probes a lot of PS/2 protocols for the mouse device, which
makes the mouse unusable for some seconds after X startup.
This new "protocol" option allows forcing the mouse protocol.
It can be used this way:
Xfbdev -mouse mouse,,protocol=ps/2 -keybd keyboard

Signed-off-by: Olivier Blin <blino@mandriva.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-03 15:51:13 +10:00
Peter Hutterer af4e658401 mi: only process master if the SD is still attached.
SDs may be detached during event processing (e.g. if a passive grab
activates). In this case, the event must not be processed through the master
device.

Reported-by: Thomas Jaeger
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-03 14:38:55 +10:00
Peter Hutterer eb3fe72cbc dix: set the device state for XI valuator events.
Valuator events need to include the device's state, while other device
events need to include the state of the core devices.

Reported-by: Thomas Jaeger
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-03 14:38:51 +10:00
Peter Hutterer 08fd2ae652 dix: use GetMaster in PickPointer and PickKeyboard.
GetMaster is more reliable than GetPairedDevice, it always returns the
keyboard/pointer if desired, even if the wrong device was passed in.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-03 12:19:05 +10:00
Peter Hutterer a1d1dd06f8 Xi: fix wrong grabtype from ProcXGrabDevice.
86077f0058ce88ee9b3df5d1ab854eeca43 switched from a boolean to a grabtype
enum. ProcXGrabDevice didn't switch with it. PickPointer during an XI grab
on a slave device would thus return a wrong (or NULL) device and crash the
server.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-03 12:17:54 +10:00
Peter Hutterer a371a47205 dix: EventToCore must return BadMatch for proximity events.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-03 11:47:26 +10:00
Peter Hutterer 2bd5ea8065 dix: rework event conversion before delivery.
Let EventToXI, EventToCore and EventToXI2 return BadMatch if there's no
matching event for this protocol spec.
Adjust the delivery paths to cope with BadMatch errors (and clean them up on
the way).

As a side-effect, this fixes server crashes on proximity events for a
grabbed device.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-03 11:46:30 +10:00
Adam Jackson 20d9f11abf Typo fix 2009-06-02 13:49:09 -04:00
Adam Jackson ab5d1ae82e Remove some libXfont leftovers 2009-06-02 13:40:14 -04:00
Matthias Hopf 75795637c7 Revert "randr: Setting gamma: inverse logic looks more sane"
This reverts commit 79138eec1b.
2009-06-02 18:41:36 +02:00
Peter Hutterer fc8cfc3a05 dix: ensure EventIsDeliverable has inputMasks set at all times.
For proximity events, the XI2 type is 0 and inputMasks never got set in the
preceding condition. As a result, proximity events got never delivered.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-02 16:57:20 +10:00
Peter Hutterer ef9f851057 dix: protect against floating slaves in DeviceFocusEvent.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-02 16:41:17 +10:00
Peter Hutterer b40289c876 xkb: allow pointer events to pass through for floating SDs without a key class.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-02 16:37:39 +10:00
Peter Hutterer 38df8351b3 test: add grab matching tests. 2009-06-02 16:02:31 +10:00
Peter Hutterer a66686a83e input: add support for XIAllDevices and XIAllMasterDevices passive grabs.
These grabs are suported through two fake devices inputInfo.all_devices and
inputInfo.all_master_devices. These devices are not part of the device list
and are only initialised for their device id, nothing else.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-02 16:02:31 +10:00
Peter Hutterer f00cf76751 dix: get the current MD keyboard for the grab modifier state.
A passive XI2 grab always uses the paired master device as a modifier
device. After issuing a passive grab, the slave may be reattached to a
different master and hence the modifier device may change.
2009-06-02 16:02:31 +10:00
Peter Hutterer 1cd7ed75d9 dix: float slave devices during passive grabs.
Exception - implicit passive grabs.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-02 16:02:29 +10:00
Peter Hutterer f56ad22e8f dix: rework temporary slave detachment.
Rework addresses two issues:
- storing the master device's pointer is a bad idea, we need to store the ID
  of the device in case it disappears during the grab.
- restoring the old master did not actually reattach the device. Fixed now.
2009-06-02 15:53:21 +10:00
Peter Hutterer b3e4810a28 dix: move grab device assignment into GRABTYPE_CORE block.
grab->type is the device type and XI2 types overlap with core events (being
less than GenericEvent). Thus, for passive grabs the grab device would be
overwritten with whatever device was activating it.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-02 10:41:10 +10:00
Peter Hutterer 18ae486708 dix: don't try to activate a passive grab on top of an active one.
If we already have an active grab on the device, don't attempt to activate
another one.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-02 10:41:10 +10:00
Peter Hutterer ff1d6244eb input: add support for XIAnyModifier in passive XI2 grabs. 2009-06-02 10:40:59 +10:00
Adam Jackson eb97d125fb doc: Remove mention of Kerberos replay cache from Xserver.1
The krb5 auth code is gone, so this is no longer relevant.
2009-06-01 15:50:50 -04:00
Peter Hutterer 80ea32ad4f dix: switch grab checking from unsigned shorts to unsigned ints
XIAnyModifier is outside of the unsigned short range.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-01 13:48:43 +10:00
Peter Hutterer 080b0331b3 input: Add grabtype to GrabParameters.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-01 13:48:43 +10:00
Peter Hutterer bee02a1541 dix: ensure implicit passive grabs have the xi2mask zeroed.
This fixes XI2 enter/leave events being sent to non-xi2 clients.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-01 13:45:30 +10:00
Peter Hutterer cc71dfb4f5 test: Add GetSelectedEvents request to struct size tests.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-01 13:45:30 +10:00
Peter Hutterer de5c5b1db0 test: fix compile error introduced with the removal of isMaster.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-01 13:45:30 +10:00
Adam Jackson 45530d1609 vfb: Fix depth setup.
Initialize the depth corresponding to the root window before the
pixmap-only depths.  Otherwise you end up with the root window depth in
the depth list twice, which is mildly confusing for clients and
catastrophically confusing for PanoramiXConsolidate().
2009-05-29 18:07:48 -04:00
Jeremy Huddleston 5c8540d8cf GLX: Purge glxint.h usage
Change (__GLXvisualConfig *) to (void *) in ABI compat stubs.
(cherry picked from commit b4adec886c65e49cfbd30d1e3a41b613f75ed3f5)
2009-05-29 14:49:05 -07:00
Jeremy Huddleston da2aaee24a GLX: Purge some glxint.h usage in glxcmds.c
This is related to d0b249f1c5df81f3941d638f9625fe1e16c31807 in the 1.4 branch and was ok'd by krh
(cherry picked from commit e587436cf2e1237813c924699ff0662aea3034e1)
2009-05-29 14:48:24 -07:00
Jeremy Huddleston f2151f1b0d XQuartz: Fix alpha to be 1 (screenshots bug, etc)
This is related to: bc964ff1e3f3d8ab590eab40d767c6241e9480d4
XQuartz: Stab at fixing the alpha 0/1 bug (screenshots, etc) by pulling in some old code that got gutted from rootless.

which was on the 1.4 branch and implemented in fbPaintWindow.  Now that fbPaintWindow is gone, this is now in miPaintWindow().
(cherry picked from commit 032173f693f75385a40e144ffe2b7b5378bb6f2e)
2009-05-29 14:48:18 -07:00
Jeremy Huddleston 7c158ffa76 Rootless: Use miPaintWindow since PaintWindowBackground is dead
(cherry picked from commit 4975c087257b52189a5c21d93d121f183e60e4c8)
2009-05-29 14:48:13 -07:00
Jeremy Huddleston ec9e9c8bca XQuartz: English localization update for HIG compliance
(cherry picked from commit 86b319d7cbef39d75b54c9d321e5dbf097b552be)
2009-05-29 11:44:53 -07:00
Peter Hutterer 0f47203a9a dix: Set the implicit passive grab flag for keyboards too.
Extension devices have ActivateKeyboardGrab as their grab activation
function, hence we need to ensure the implicit passive grab flag is set
accordingly in the grab for further event delivery.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-29 14:19:35 +10:00
Peter Hutterer 75c73ddbfc dix: fix broken XI event delivery during grabs.
If an implicit passive grab is active, the XI event mask is in
grab->deviceMask. Otherwise, for explicit grabs, the XI event mask is in
grab->eventMask.

Reported-by: Thomas Jaeger
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-29 14:02:39 +10:00
Peter Hutterer 29ec146251 Xi: passively grabbing slave devices must be possible.
There's use-cases where this is useful, so take the check out preventing
that.

Reported-by: Thomas Jaeger
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-29 13:33:00 +10:00
Peter Hutterer 235cf5713a dix: init inputMasks to NULL to avoid random value dereference.
If the XI2 type is 0 (e.g. proximity events), inputMasks is never set and
may not be NULL.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-29 12:10:48 +10:00
Peter Hutterer 68d86adbe8 dix: GetProximityEvents doesn't need extra events for valuators.
With internal events, we only have one event for all the data, no need to
calculate for extra events.

Reported-by: Thomas Jaeger
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-29 12:03:41 +10:00