The main motivation here is to have the resource system clean up the
DRI2 drawable automatically so glx doesn't have to. Right now, the
glx drawable resource must be destroyed before the X drawable, so that
calling DRI2DestroyDrawable doesn't crash. By making the DRI2
drawable a resource, GLX doesn't have to worry about that and the
resource destruction order becomes irrelevant.
https://bugs.freedesktop.org/show_bug.cgi?id=26394
[Ported to 1.8 branch by ajax@redhat.com]
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
GLX pbuffers are implemented using a pixmap allocated by the server.
With the change to DRI2 to track DRI2 drawables as resources, we need to make
sure that every drawable we create a DRI2 drawable for has an XID. By
using the XID of the pbuffer, the resource system will automatically
reclaim the hidden pixmap and the DRI2 drawable when the pbuffer is
destroyed or the client exits.
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 22da7aa9d7)
This ensures that the DrawableGone callback gets called as necessary
when the X drawable goes away. Otherwise, using a GLX drawable
(say, glXSwapBuffers) in indirect mode after the X drawable has been
destroyed will crash the server.
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit f0006aa58f)
Fixes a crash in XIQueryDevice which calls strlen on a NULL pointer.
#0 strlen () at ../sysdeps/x86_64/strlen.S:31
#1 0x00000000004c16ed in SizeDeviceInfo (dev=0x969bd0)
at ../../Xi/xiquerydevice.c:204
#2 0x00000000004c1a01 in ProcXIQueryDevice (client=0xa57510)
at ../../Xi/xiquerydevice.c:98
Debian bug#575905 <http://bugs.debian.org/575905>
Reported-by: "Bernhard R. Link" <brlink@debian.org>
Signed-off-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 0e7703f9b1)
Those functions are used by TigerVNC libvnc.so module which doesn't
use standard XInput infrastructure but uses same functions like,
for example, XTest devices.
Signed-off-by: Adam Tkac <atkac@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 2f29b163bb)
miSpriteRealizeCursor is called whenever a device is set floating and it's
fine to do so, no need for an error message.
Same goes for the other miSprite messages.
X.Org Bug 26843 <http://bugs.freedesktop.org/show_bug.cgi?id=26843>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 241b53b777)
This changes the DC layer to maintain a persistent set of GCs/pixmaps/pictures
for each pScreen instead of failing to thrash between them when changing
screens.
Signed-off-by: Pierre-Loup A. Griffais <pgriffais@nvidia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 00b8b7ad61)
The de-duplication of CheckPhysLimits 942eae6868 added a
condition that is invalid for a Xinerama setup. pScreen is invalid for the
Xinerama case, so comparing it to anything is a bad idea.
Signed-off-by: Tim Yamin <plasm@roo.me.uk>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 5f31e21961)
If both devices are synchronously grabbed, first with a GrabPointer, then
with a GrabKeyboard (GrabModeSync on both), sync.other of each device points
to the grab of the respective other device.
If the keyboard is then thawed through a AllowSome request, the VCK's
sync.other is reset to NULL. Subsequently, an event on the VCP would crash
the server when dereferencing sync.other on the VCP.
The check's purpose is to compare if the other device is grabbed by the same
client, which should be checked by accessing (dev->deviceGrab->grab->resource).
A check of the server-1.3 sources confirms that.
XTS test case: Xlib13 XAllowEvents 20.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 9ddbb03fa5)
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=27510 .
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 7b65175266)
<rdar://problem/7862319>
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Marc Majka <majka@apple.com>
(cherry picked from commit fe7778e58e)
Commit 8736d112af changed the priority
ordering of the InputClass option merging to be "last match wins". This
fixes the handling of Option "Ignore" to follow that logic.
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit adbbc66108)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
The GenericEvent is a core event, we never send an extension event, so
don't reserve an id for one.
Signed-off-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit fc5d767408)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
See option_sends_alt in Xquartz(1)
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Kevin Van Vechten <kvv@apple.com>
(cherry picked from commit 840d12c7a6)
WindowsWM support is still experimental, and uses the Rootless extension
which currently breaks the simultaneous build of the other DDXs (see
commit b3415187e9). So we disable it by
default for now; once the latter issue is fixed we can make this 'auto'.
Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
(cherry picked from commit c983f40fe4)
This possibly brings back whatever the bug is in
http://bugs.freedesktop.org/show_bug.cgi?id=1168 for
-rootless mode, but since we don't have reproduction
steps for that, I can't test that...
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Tested-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
(cherry picked from commit 20701522be)
Several extensions are not supported by XWin, some of which are enabled
by default in configure. We forcefully disable these early on so that
configure will succeed without arguments and without the corresponding
proto installed.
Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
(cherry picked from commit 95c9947f62)
Only Xorg is installed setuid, so there is no need to run this configure
test on Cygwin.
Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
(cherry picked from commit 24c9d48cd6)
These drivers have been deactivated for over a year now, let's not refer
potential users to them.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 03ccbd2579)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Since the server searches in a vendor specific path now, we can install
the evdev catchall there without disturbing local administration files.
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit d4dd3d0085)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
In addition to the conf files found in /etc/X11 or $sysconfdir/X11 used
for local administration, we also reserve a system directory for vendor
and package usage. The simple search path is:
/usr/share/X11/xorg.conf.d
$datadir/X11/xorg.conf.d
Files from these directories will have the lowest config priority. The
directory $datadir/X11/xorg.conf.d is exported from xorg-server.pc in
the variable "sysconfigdir". Packages should install their .conf files
to the directory specified by:
`pkg-config --variable=sysconfigdir xorg-server`
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 95f01bdfee)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
There's no reason to carry all the oddities from xorg.conf like appended
hostname to the search path for xorg.conf.d. This changes it to something
very simple:
/etc/X11/<cmdline>
$sysconfdir/X11/<cmdline>
/etc/X11/xorg.conf.d
$sysconfdir/X11/xorg.conf.d
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit a1bae63dc6)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Explain the "safe" path dance for -configdir, too.
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 2ac33888a9)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
We could just use $projectroot/etc and $projectroot/share, but the user
might have other plans for them.
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 2460e921d1)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Having a generic catchall also adds devices like accelerometers. These
devices make X unusable, hence restrict matching to "known sane" devices
like pointers, touchpads, keyboards, tablets and touchscreens.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Julien Cristau <jcristau@debian.org>
Acked-by: Dan Nicholson <dbn.lists@gmail.com>
Acked-by: James Cloos <cloos@jhcloos.com>
(cherry picked from commit c8a608cb6c)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Pierre-Loup A. Griffais <pgriffais@nvidia.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 6b09f66d8c)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Older versions generate filenames that are different from
the ones listed in the Makefile.
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 6150595bdb)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
If we run out of opcodes, nothing is print on the log, making the
problem hard to debug. In the current Xserver, if you enable some
extensions like multibuffer (+2 events) and use nvidia binary driver (+5
events) you can run out of opcode numbers.
Signed-off-by: Paulo Ricardo Zanoni <pzanoni@mandriva.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit a9fe7cfa77)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Fixes x86emu builds when using non-gnu compilers now that u64 is required
Before this fix, the u64 type would not be defined, causing
x86emu/sys.c to fail to build:
"sys.c", line 102: syntax error before or at: ldq_u
"sys.c", line 102: syntax error before or at: *
Since Keith requested using <stdint.h>, converted all the x86emu
typedefs to use the stdint types.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Acked-by: Matt Turner <mattst88@gmail.com>
Acked-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 82cf3a4ae0)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
vga arbiter will be locked in one device while AbortDDX will call LeaveVT
routines from the other device. Fail!
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Due to the checks in configure, this means it gets priority over HAL if
libudev is found.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
udev needs some xorg.conf file to tell it to load a suitable input
driver, 10-evdev.conf is as simple as they come, mapping all evdev
devices to the evdev driver.
Signed-off-by: Keith Packard <keithp@keithp.com>
When doing driver autoconfiguration with some parts of the config file
present but no driver set (e.g. only input configuration) fix the case
that we may have multiple drivers to try.
Create a screen section for each driver and let them be tried in a row.
Signed-off-by: Ruediger Oertel <ro@suse.de>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Tested-by: Timo Aaltonen <timo.aaltonen@aalto.fi>
Signed-off-by: Keith Packard <keithp@keithp.com>
This should make 'Unicode Hex Input' work as an input layout.
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Acked-by: Adam Jackson <ajax@redhat.com>
The input device product name for evdev devices in the kernel uevent has
embedded quotes that aren't expected here. Use the sysfs name attribute
instead, which does not suffer this problem. The uevent name will be
used as a fallback if no name attribute is found.
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>