summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-10-29glx: convert to direct GL dispatch (v2)Adam Jackson39-41224/+3257
We now expect to be linked against something that provides the GL API, instead of manually grubbing about in the DRI driver's dispatch table. Since the GLX we expose calls GL functions that are meant to be looked up dynamically, also add a way to thunk through to GetProcAddress. This includes a refresh of the generated sources, which requires a correspondingly new Mesa. The GetProcAddress stubs are at the moment merely enough to make this link against Mesa 9.2, but should really be provided for everything not in the OpenGL 1.2 ABI. v2: Explicitly hide the GetProcAddress stubs so we can't conflict with libGL symbols; fix leading tab/space issues [anholt] Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
2013-10-29glx: Remove DRI1 AIGLX (v2)Adam Jackson4-1181/+2
Mesa doesn't ship DRI1 drivers as of 8.0, which is about 18 months and three releases ago. The main reason to have wanted DRI1 AIGLX was to get a GLX compositor working, but DRI1's (lack of) memory management API meant that the cost of a GLX compositor was breaking direct GLX apps, which isn't a great tradeoff. Of the DRI1 drivers Mesa has dropped, I believe only mga stands to lose some functionality here, since it and only it has support for NV_texture_rectangle. Since that's required for every extant GLX compositor I know of, I conclude that anybody with a savage, say, would probably not notice AIGLX going away, since they wouldn't be running a GLX compositor in the first place. In the future we'd like to use GL in the server in a more natural way, as just another EGL client, including in the GLX implementation itself. Since there's no EGL implemented for DRI1 drivers, this would already doom AIGLX on DRI1 (short of entirely forking the GLX implementation, which I'm not enthusiastic about). v2: Remove DRI1 from AIGLX conditionals in configure.ac [anholt] Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2013-10-29glx: Simplify glXDestroyContextAdam Jackson1-3/+1
We can just free the resource unconditionally here. ContextGone (which FreeResourceByType will call) already does: cx->idExists = GL_FALSE; if (!cx->currentClient) { __glXFreeContext(cx); } Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
2013-10-29glx: Fix a corner case in DrawableGoneAdam Jackson1-1/+1
Losing the drawable does not change our notion of current client. Since the GL under us doesn't understand having a current context without current drawables (sigh), we do still need to loseCurrent so that we re-bind the context on the next request. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=65030 Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
2013-10-29glx: Fix memory leak in context garbage collection (v2)Adam Jackson4-24/+35
I broke this, back in: commit a48dadc98a28c969741979b70b7a639f24f4cbbd Author: Adam Jackson <ajax@redhat.com> Date: Mon Mar 21 11:59:29 2011 -0400 glx: Reimplement context tags In that, I changed the glx client state to not explicitly track the list of current contexts for the client (since that was what we were deriving tags from). The bug was that I removed the code for same from glxClientCallback without noticing that it had the side effect of effectively de-currenting those contexts, so that ContextGone could free them. So, if you had a client exit with a context still current, the context's memory would leak. Not a huge deal for direct clients, but viciously bad for indirect, since the swrast context state at the bottom of Mesa is like 15M. Fix this by promoting Bool isCurrent to ClientPtr currentClient, so that we have a back-pointer to chase when walking the list of contexts when ClientStateGone happens. v2: Explicitly call __glXFreeContext on the ClientStateGone path. Our current context might be one we got from EXT_import_context and whose creating client has since died. Without the explicit call, the creating client's FreeClientResources would not free the context because it's still current, and the using client's FreeClientResources would not free the context because it's not an XID it created. This matches the logic from a48dadc. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
2013-10-29glx: Only take a Pixmap reference if creating the GLXPixmap succeededAdam Jackson1-1/+2
Reviewed-by: Julien Cristau <jcristau@debian.org> Signed-off-by: Adam Jackson <ajax@redhat.com>
2013-10-23glx: Add support for the new DRI loader entrypoint.Eric Anholt1-2/+22
This is going to be exposed (and not the old entrypoint) for some DRI drivers once the megadrivers series lands, and the plan is to eventually transition all drivers to that. Hopefully this is unobtrusive enough to merge to stable X servers so that they can be compatible with new Mesa versions. v2: typo fix in the comment Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2013-10-18Update to version 1.14.99.3Keith Packard1-3/+3
Signed-off-by: Keith Packard <keithp@keithp.com>
2013-10-18Merge commit '2523a445a09a75a8baf642608d099a5e12d5437f'Keith Packard9-63/+158
This is merging the commits along Peter's for-keith branch, without also merging in the spurious merge at the top of that branch.
2013-10-18sync: split updating and triggering a counter upPeter Hutterer1-2/+11
Now that the brackets are always the nearest change points (regardless of transition) we need to update the counters whenever we check for any updates. Otherwise we end up with a situation where counter->value is out of date and an alarm doesn't trigger because we're still using the value from last time something actually triggered. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com>
2013-10-18sync: always set the brackets (#59644)Peter Hutterer1-0/+20
The current code sets bracket_greater to the first trigger after the current value, and bracket_less to the last trigger before the current value. For example, the idle timer with three negative and three positive transitions would set this: nt1 nt2 nt3 |--------|------|--|------- idle --|---|--|-----> t pt1 pt2 pt3 bracket_less == nt2 bracket_greater == pt2 This is an optimization so we can skip code paths in the block/wakeup handlers if the current value doesn't meet any of the trigger requirements. Those handlers largely do a if (bracket_less is less than current value && bracket_greater is greater than current value) return, nothing to do However, unless the bracket values are updated at the correct time, the following may happen: nt |--------------|---------- idle ------|--------> t pt In this case, neither bracket is set, we're past the pos transition and not yet at the neg transition. idle may now go past nt, but the brackets are not updated. If idle is then reset to 0, no alarm is triggered for nt. Likewise, idle may now go past pt and no alarm is triggered. Changing an alarm or triggering an alarm will re-calculate the brackets, so this bug is somewhat random. If any other client triggers an alarm when the brackets are wrongly NULL, the recalculation will set them this bug may not appear. This patch changes the behavior, so that the brackets are always the nearest positive or negative transitions to the current counter value. In the example above, nt will trigger a wakeup and a re-calculation of the brackets, so that going past it in the negative direction will then cause the proper alarm triggers. Or, in Keith's words: Timer currently past a positive trigger No bracket values, because no trigger in range Timer moves backwards before the positive trigger Brackets not reset, even though there is now a trigger in range Timer moves forward past the positive trigger Trigger doesn't fire because brackets not set Setting the LT bracket in this case will cause everything to get re-evaluated when the sync value moves backwards before the trigger value. X.Org Bug 59644 <http://bugs.freedesktop.org/show_bug.cgi?id=59644> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com>
2013-10-18sync: if the idle time was reset, force alarms to trigger (#70476)Peter Hutterer3-7/+69
The time between the idle reset and the IdleTimeWakeupHandler to be called is indeterminate. Clients with an PositiveTransition or NegativeTransition alarm on a low threshold may miss an alarm. Work around this by keeping a reset flag for each device. When the WakeupHandler triggers and the reset flag is set, we force a re-calculation of everything and pretend the current idle time is zero. Immediately after is the next calculation with the real idle time. Relatively reproducible test case: Set up a XSyncNegativeTransition alarm for a threshold of 1 ms. May trigger, may not. X.Org Bug 70476 <http://bugs.freedesktop.org/show_bug.cgi?id=70476> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com>
2013-10-18dix: provide accessor methods for the last device event timePeter Hutterer9-23/+41
And now that we have the accessors, localize it. No functional changes, just preparing for a future change. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com>
2013-10-18sync: supply the counter from IdleTimeBlockHandlerPeter Hutterer1-1/+1
The main idletime counter has an initialized deviceid, might as well be supplying it properly. Without this, we'd only ever check the XIAllDevices counter, so the wait would never be adjusted for the device-specific triggers. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com>
2013-10-18sync: always call BracketValues when recalculating upper/lower bracketsPeter Hutterer1-3/+2
Both ServertimeBracketValues and IdleTimeBracketValues copy the value into there SysCounter privates. Call it for a NULL set as well, so we don't end up with stale pointers and we can remove the block/wakeup handlers. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com>
2013-10-18sync: compress two if statementsPeter Hutterer1-32/+19
No functional changes, just merges a > and == condition into a >= condition. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com>
2013-10-14Avoid use-after-free in dix/dixfonts.c: doImageText() [CVE-2013-4396]Alan Coopersmith1-0/+5
Save a pointer to the passed in closure structure before copying it and overwriting the *c pointer to point to our copy instead of the original. If we hit an error, once we free(c), reset c to point to the original structure before jumping to the cleanup code that references *c. Since one of the errors being checked for is whether the server was able to malloc(c->nChars * itemSize), the client can potentially pass a number of characters chosen to cause the malloc to fail and the error path to be taken, resulting in the read from freed memory. Since the memory is accessed almost immediately afterwards, and the X server is mostly single threaded, the odds of the free memory having invalid contents are low with most malloc implementations when not using memory debugging features, but some allocators will definitely overwrite the memory there, leading to a likely crash. Reported-by: Pedro Ribeiro <pedrib@gmail.com> Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Julien Cristau <jcristau@debian.org>
2013-10-14Update GLX dependencies now that DRI & DRI2 are builtins, not modulesAlan Coopersmith1-1/+1
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2013-10-14DMX glxproxy: Don't allocate & copy data just to free it unusedAlan Coopersmith2-26/+34
Two functions in the DMX glxproxy code loop over all the backend screens, starting at the highest numbered and counting down to the lowest. Previously, for each screen, the code would allocate a buffer large enough to read the reply from the backend, copy that reply into the buffer, and then if it wasn't the final screen, free it. Only the buffer from the final screen is used, to pass on to the client in the reply. This modifies it to just immediately discard the responses from the screens as we loop through it, only doing the allocate & copy work for the one buffer we pass back to the client. Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Alex Deucher <aleander.deucher@amd.com>
2013-10-14Skip damage calls if DamageCreate fails in exa functionsAlan Coopersmith2-8/+14
Fixes parfait errors such as: Null pointer dereference (CWE 476): Write to null pointer pDamage at line 1833 of miext/damage/damage.c in function 'DamageRegister'. Function DamageCreate may return constant 'NULL' at line 1775, called at line 232 of exa/exa_migration_mixed.c in function 'exaPrepareAccessReg_mixed'. Constant 'NULL' passed into function DamageRegister, argument pDamage, from call at line 237. Null pointer introduced at line 1775 of miext/damage/damage.c in function 'DamageCreate'. Null pointer dereference (CWE 476): Write to null pointer pDamage at line 1833 of miext/damage/damage.c in function 'DamageRegister'. Function DamageCreate may return constant 'NULL' at line 1775, called at line 104 of exa/exa_mixed.c in function 'exaCreatePixmap_mixed'. Constant 'NULL' passed into function DamageRegister, argument pDamage, from call at line 109. Null pointer introduced at line 1775 of miext/damage/damage.c in function 'DamageCreate'. Checks are similar to handling results of other calls to DamageCreate. [ This bug was found by the Parfait 1.3.0 bug checking tool. http://labs.oracle.com/pls/apex/f?p=labs:49:::::P49_PROJECT_ID:13 ] Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2013-10-14dix: only deliver for the current grab typePeter Hutterer1-11/+2
Use the grabtype to determine which type of event to send - all other events are pointless and may result in erroneous events being delivered. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-14dix: don't attempt to deliver an event for a different grabtypePeter Hutterer1-0/+3
For an active grab, grab->eventMask can be either the core or the XI1 mask. With the overlap of event filters, calling DeliverOneGrabbedEvent(XI1) for a ProximityOut event will trigger if the client has selected for enter events - the filter is the same for both. Thus, we end up delivering a proximity event to a client not expecting one. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-14include: change grabtypes to start at 1Peter Hutterer1-3/+3
Avoid erroneous detection of an unset grabtype as CORE Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-14dix: only allow button and key events to freeze a sync'd pointerPeter Hutterer1-1/+5
If a client calls XAllowEvents(SyncPointer) it expects events as normal until the next button press or release event - that freezes the device. An e.g. proximity event must thus not freeze the pointer. As per the spec, only button and key events may do so, so narrow it to these cases. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-14Xephyr: restore cursor visibilityMichele Baldessari1-0/+2
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=69388 Commit c100211034ab69ce453a1644fb61c6808d7e3eda (dix: only show the cursor if a window defines one (#58398)) broke the default cursor behaviour in Xephyr (unless run with -retro). Restore the default cursor visibility so that '-retro' or '-host-cursor' are not needed to have a visible cursor. Signed-off-by: Michele Baldessari <michele@acksyn.org> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> as of ba387cf21f7d95987211f75d8024601e7d64e322 "ephyr: Use host (HW) cursors by default." this only applies if -sw-cursor is given on the cmdline. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-14Fix Xephyr compilation when DEBUG is enabledMichele Baldessari1-1/+1
When DEBUG is enabled Xephyr compilation fails: ephyrdriext.c:343:133: error: 'is_ok' undeclared (first use in this function) EPHYR_LOG("leave. is_ok:%d\n", is_ok); Just reemove bogus is_ok variable. Signed-off-by: Michele Baldessari <michele@acksyn.org> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-14input: calloc minimization for xi2mask_newAdam Jackson1-17/+13
There's no reason to do this as (nmasks + 2) callocs, and it's a surprisingly hot path. Turns out you hit this ~once per passive grab, and you do a few bajillion passive grab changes every time you enter or leave the overview in gnome-shell. According to a callgrind of Xorg with gnome-shell-perf-tool run against it: Ir before: 721437275 Ir after: 454227086 Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Jasper St. Pierre <jstpierre@mecheye.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-10-09hw/xwin: Fix for "glx: Remove screen number from __GLXconfig"Jon TURNEY1-6/+0
Fix compilation after commit c3c976f54c3c282d6fa6c8360688e036bc43d210 "glx: Remove screen number from __GLXconfig" Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by: Colin Harrison <colin.harrison@virgin.net> Reviewed-by: Adam Jackson <ajax@redhat.com>
2013-10-07Merge remote-tracking branch 'jeremyhu/master'Keith Packard2-5/+3
2013-10-07configure.ac: Include missing proto declarations in SDK_REQUIRED_MODULESEmil Velikov1-0/+3
Commits a1d41e311c21e, 7d859bd87834d & 3ed2c6e11298c made extinit.h require the XF86 Big Font, XRes & ScrnSaver proto headers, but failed to add them to the SDK_REQUIRED_MODULES so pkg-config would find them for driver builds. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Keith Packard <keithp@keithp.com>
2013-10-06XQuartz: Dont't set screen on __GLXConfigJeremy Huddleston Sequoia1-2/+0
Fixes regression introduced by c3c976f54c3c282d6fa6c8360688e036bc43d210 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
2013-10-06rootless: Use miCopyRegion instead of fbCopyRegionJeremy Huddleston Sequoia1-3/+3
Fixes regression introduced by e657635dbe6b92875b0e88370557c2cbab673a49 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
2013-10-05os: move <arpa/inet.h> for any !win32 systemPino Toscano1-4/+4
It is needed in IPv6 configurations (for inet_pton) also when SIOCGIFCONF is not defined. Signed-off-by: Pino Toscano <toscano.pino@tiscali.it> Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Signed-off-by: Julien Cristau <jcristau@debian.org>
2013-10-05xfree86/hurd: include <hurd.h>Pino Toscano3-0/+3
Needed for using get_privileged_port. Signed-off-by: Pino Toscano <toscano.pino@tiscali.it> Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Signed-off-by: Julien Cristau <jcristau@debian.org>
2013-10-04Bump version to 1.14.99.2Keith Packard1-3/+3
Signed-off-by: Keith Packard <keithp@keithp.com>
2013-10-04kdrive/ephyr: Remove duplicate ephyrExtensions and ephyrExtensionInit declsKeith Packard1-16/+0
These were duplicated when GLX support was re-added on two different branches. Signed-off-by: Keith Packard <keithp@keithp.com>
2013-10-04xfree86: add a comment as to why the logdir is createdGaetan Nadon1-0/+1
Without the logdir, the xserver will write the content of the log file on the terminal stating that it cannot be written and will stop. Refer to https://bugs.freedesktop.org/show_bug.cgi?id=3889 Reviewed-By: Matt Dew <marcoz@osource.org> Signed-off-by: Gaetan Nadon <memsize@videotron.ca> Signed-off-by: Keith Packard <keithp@keithp.com>
2013-10-04xfree86: Use $(MKDIR_P) for better code portabilityGaetan Nadon1-2/+1
Still true that we should not use the lower case $(mkdir_p) version. However, remove the 2005 comment as the MKDIR_P is widely used now. Reviewed-By: Matt Dew <marcoz@osource.org> Signed-off-by: Gaetan Nadon <memsize@videotron.ca> Signed-off-by: Keith Packard <keithp@keithp.com>
2013-10-04Uninstall X link and CYGWIN libXorg.exe.a in local install targetsGaetan Nadon1-0/+8
It is our duty to uninstall any files and/or directories that we installed through install-data-local and install-exec-hook. Currently the X symbolic link to Xorg remains on disk after running make uninstall. Note the exception for logdir which is usually shared by other modules. Reviewed-By: Matt Dew <marcoz@osource.org> Signed-off-by: Gaetan Nadon <memsize@videotron.ca> Signed-off-by: Keith Packard <keithp@keithp.com>
2013-10-04Xorg binary: use install-exec-hook rather than install-exec-localGaetan Nadon1-5/+4
The former was explicitly designed to execute additional code after the binary has been installed. The latter can be executed in any order, hence it's current dependency on install-binPROGRAMS as a workaround. The CYGWIN libXorg.exe.a target is an installation target rather than a post-installation one, so it should not be done as a hook. It does not depend on the Xorg executable being installed. Automake: "These hooks are run after all other install rules of the appropriate type, exec or data, have completed. So, for instance, it is possible to perform post-installation modifications using an install hook". "With the -local targets, there is no particular guarantee of execution order; typically, they are run early, but with parallel make, there is no way to be sure of that". Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Gaetan Nadon <memsize@videotron.ca> Signed-off-by: Keith Packard <keithp@keithp.com>
2013-10-04Use $(LN_S) provided by AC_PROG_LN_S macro to create linksGaetan Nadon1-1/+1
For better code portability. Reviewed-By: Matt Dew <marcoz@osource.org> Signed-off-by: Gaetan Nadon <memsize@videotron.ca> Signed-off-by: Keith Packard <keithp@keithp.com>
2013-10-04The Xorg binary is missing the extension $(EXEEXT) in the makefileGaetan Nadon1-1/+1
This is not a problem on UNIX platforms, but on CYGWIN it creates a broken link to Xorg rather than a link to Xorg.exe. From the CYGWIN log on tinderbox, we can see that the executable Xorg.exe is installed correctly. We can see the command used to create the link: (cd /jhbuild/install/[...]/install/bin && rm -f X && ln -s Xorg X) Note that the "relink" makefile target correctly appends $(EXEEXT) to Xorg. Reviewed-By: Matt Dew <marcoz@osource.org> Signed-off-by: Gaetan Nadon <memsize@videotron.ca> Signed-off-by: Keith Packard <keithp@keithp.com>
2013-10-04Merge remote-tracking branch 'anholt/ephyr-fixes'Keith Packard21-4162/+1685
2013-10-04miext/shadow: missing c2p_core.h breaks "make distcheck" target.Gaetan Nadon1-0/+1
Reviewed-by: Julien Cristau <jcristau@debian.org> Signed-off-by: Gaetan Nadon <memsize@videotron.ca> Signed-off-by: Keith Packard <keithp@keithp.com>
2013-10-04Merge remote-tracking branch 'whot/for-keith'Keith Packard3-2/+7
2013-10-04Merge remote-tracking branch 'ajax/xserver-next'Keith Packard76-1159/+417
2013-09-25test: add new os executable to .gitignoreGaetan Nadon1-0/+1
Signed-off-by: Gaetan Nadon <memsize@videotron.ca> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-09-25xserver: enable InputClass option "GrabDevice" by default for non-seat0 ↵Laércio de Sousa1-0/+4
seats (#69478) This patch contributes to fill the remaining gaps which make systemd-multi-seat-x wrapper still necessary in some multiseat setups. This also replaces previous evdev patch that does the same thing for that particular driver. When option "-seat" is passed with an argument different from "seat0", option "GrabDevice" for input devices is enabled by default (no need of enabling it in xorg.conf's "InputClass" section). Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=69478 Signed-off-by: Laércio de Sousa <lbsousajr@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-09-25dmx: provide enough space for axis mappingsPeter Hutterer1-2/+2
relmap/absmap is used as a evdev-axis-to-x-axis mapping. ABS_X maps to axis 0, ABS_Y to 1, etc. skipping over non-existing axes so that the third bit set in the ABS_* range is axis 2, and so on. This requires us to actually have enough space to have all the ABS_*/REL_* range. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2013-09-20damage: Must translate initial window damage by window offsetKeith Packard1-0/+2
Damage is reported relative to the drawable origin, but the window borderClip is absolute. Translate the region by the window position before reporting damage to adjust. Reported-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Adam Jackson <ajax@redhat.com>