Fix shadowed local variable i in HandleCustomWM_COMMAND()
Also, fds are meant to be representable as an int
winprefs.c: In function ‘HandleCustomWM_COMMAND’:
winprefs.c:346:23: error: declaration of ‘i’ shadows a previous local
winprefs.c:322:7: error: shadowed declaration is here
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Move shadowed local variables x and y to the places they are used
wincursor.c: In function ‘winLoadCursor’:
wincursor.c:212:11: error: declaration of ‘x’ shadows a previous local
wincursor.c:166:7: error: shadowed declaration is here
wincursor.c:212:14: error: declaration of ‘y’ shadows a previous local
wincursor.c:166:10: error: shadowed declaration is here
wincursor.c:228:11: error: declaration of ‘x’ shadows a previous local
wincursor.c:166:7: error: shadowed declaration is here
wincursor.c:228:14: error: declaration of ‘y’ shadows a previous local
wincursor.c:166:10: error: shadowed declaration is here
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Fix using Mask as a formal parameter shadows the typedef of the same name from X.h
indirect.c: In function 'GetShift':
indirect.c:1629:14: warning: declaration of 'Mask' shadows a global declaration [-Wshadow]
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Using screenInfo as a formal parameter to InitOutput() shadows a global declaration of screenInfo.
Change the formal parameter name from screenInfo to pScreenInfo, as everywhere else uses.
InitOutput.c: In function ‘InitOutput’:
InitOutput.c:891:25: error: declaration of ‘screenInfo’ shadows a global declaration
../../include/scrnintstr.h:570:19: error: shadowed declaration is here
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Using menu as a formal parameter shadows a global variable of the same name
winprefsyacc.y: In function ‘SetRootMenu’:
winprefsyacc.y:286:20: error: declaration of ‘menu’ shadows a global declaration
winprefsyacc.y:55:19: error: shadowed declaration is here
winprefsyacc.y: In function ‘SetDefaultSysMenu’:
winprefsyacc.y:293:26: error: declaration of ‘menu’ shadows a global declaration
winprefsyacc.y:55:19: error: shadowed declaration is here
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Using index as a formal parameter shadows index() from strings.h
winallpriv.c: In function ‘winInitCmapPrivates’:
winallpriv.c:119:45: error: declaration of ‘index’ shadows a global declaration
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Using index as a local variable shadows index() from strings.h
winscrinit.c: In function ‘winFinishScreenInitFB’:
winscrinit.c:274:28: error: declaration of ‘index’ shadows a global declaration
winscrinit.c: In function ‘winFinishScreenInitNativeGDI’:
winscrinit.c:623:35: error: declaration of ‘index’ shadows a global declaration
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Using index as a local variable shadows index() from strings.h
winprefs.c: In function ‘LoadImageComma’:
winprefs.c:574:7: error: declaration of ‘index’ shadows a global declaration
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Fix using index as a local variable shadows global declaration of index() from strings.h
winmonitors.c: In function ‘QueryMonitor’:
winmonitors.c:59:23: error: declaration of ‘index’ shadows a global declaration
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Using system as local variable in winCheckMount() shadows the global declaration of system() from stdlib.h
InitOutput.c: In function ‘winCheckMount’:
InitOutput.c:296:10: error: declaration of ‘system’ shadows a global declaration
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
winPushPixels() and winpushpxl.c was removed in it's entirety in commit
f31bd087e8 "Death to mfb"
wingc.c:37:1: error: redundant redeclaration of ‘winPushPixels’
win.h:1104:1: note: previous declaration of ‘winPushPixels’ was here
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
winmultiwindowwm.c:139:14: error: redundant redeclaration of ‘display’
../../include/opaque.h:52:14: note: previous declaration of ‘display’ was here
winmultiwindowwm.c:140:13: error: redundant redeclaration of ‘ErrorF’
../../include/os.h:558:13: note: previous declaration of ‘ErrorF’ was here
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Fix redundant declarations in winclipboardwrappers.c.
Also remove obsolete winProcQueryTree() prototype.
winclipboardwrappers.c:64:12: error: redundant redeclaration of ‘g_iNumScreens’
winglobals.h:33:12: note: previous declaration of ‘g_iNumScreens’ was here
winclipboardwrappers.c:67:13: error: redundant redeclaration of ‘g_fXdmcpEnabled’
winglobals.h:45:13: note: previous declaration of ‘g_fXdmcpEnabled’ was here
winclipboardwrappers.c:75:27: error: redundant redeclaration of ‘winProcEstablishConnectionOrig’
winglobals.h:66:27: note: previous declaration of ‘winProcEstablishConnectionOrig’ was here
winclipboardwrappers.c:76:27: error: redundant redeclaration of ‘winProcQueryTreeOrig’
winglobals.h:67:27: note: previous declaration of ‘winProcQueryTreeOrig’ was here
winclipboardwrappers.c:77:27: error: redundant redeclaration of ‘winProcSetSelectionOwnerOrig’
winglobals.h:68:27: note: previous declaration of ‘winProcSetSelectionOwnerOrig’ was here
winclipboardwrappers.c:56:5: warning: redundant redeclaration of ‘winProcEstablishConnection’ [-Wredundant-decls]
winclipboardwrappers.c:52:5: note: previous declaration of ‘winProcEstablishConnection’ was here
winclipboardwrappers.c:57:5: warning: redundant redeclaration of ‘winProcSetSelectionOwner’ [-Wredundant-decls]
winclipboardwrappers.c:54:5: note: previous declaration of ‘winProcSetSelectionOwner’ was here
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
winclipboardthread.c:51:22: error: redundant redeclaration of ‘serverGeneration’
../../include/misc.h:362:22: note: previous declaration of ‘serverGeneration’ was here
winclipboardthread.c: In function ‘winClipboardProc’:
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
In file included from winclipboardinit.c:35:0:
winclipboard.h:81:13: error: redundant redeclaration of ‘ErrorF’
../../include/os.h:558:13: note: previous declaration of ‘ErrorF’ was here
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Remove various redundant declarations.
Instruct lex not to generate code which isn't going to be used, thus avoiding
some unused function warnings.
Note that bison <2.5 expects stdlib.h to define _STDLIB_H if it's been included,
and avoids prototyping free/malloc in that case. Some stdlib.h (e.g. newlib) may
not match precisely (e.g. defining _STDLIB_H_), so we define it after including
stdlib.h to be sure, and avoid a redudant declaration warning for those symbols.
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
winprefs.c:63:14: error: redundant redeclaration of ‘display’
../../include/opaque.h:52:14: note: previous declaration of ‘display’ was here
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Include xwin-config.h so HAVE_STRLCPY and HAVE_STRNDUP are defined, so
duplicate declarations of strlcpy(), strlcat() and strndup() aren't made
by os.h
In file included from ../../include/misc.h:111:0,
from ../../include/screenint.h:51,
from ../../include/scrnintstr.h:51,
from win.h:157,
from winmonitors.c:31:
../../include/os.h:491:15: error: redundant redeclaration of ‘strlcpy’
/usr/include/string.h:86:35: note: previous declaration of ‘strlcpy’ was here
../../include/os.h:492:15: error: redundant redeclaration of ‘strlcat’
/usr/include/string.h:85:35: note: previous declaration of ‘strlcat’ was here
../../include/os.h:496:15: error: redundant redeclaration of ‘strndup’
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Add some missing header files to _SOURCES so they get distributed properly
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
Fix compilation of Xorg DDX without XF86VIDMODE since 6e74fdda, by putting
xf86vmode.c back under the XF86VIDMODE automake conditional it was accidentally
taken out of.
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Tested-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Using of LoadExtension() to add GLX onto to the end of the list of extensions on
every server regeneration leads to hilarious consequences (i.e. crashing) after
the first regeneration :-)
Possibly xf86ExtensionInit() and QuartzExtensionInit() need a similar fix.
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
Tested-by: Colin Harrison <colin.harrison@virgin.net>
A display number, not a port number, is written to the specified fd.
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
A disabled device doesn't have a sprite (less so a sprite->win) and triggers
a NULL-pointer dereference on shutdown when all active grabs are released as
part of the cleanup.
Fix this by checking for sprite being non-null and setting the focus window
to the NullWindow if it is. The rest of the patch just attempts to make
things more readable.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
This call is required for external drivers (specifically NVIDIA) that do
not share the xfree86 infrastructure to update the desktop dimensions.
Without it, the driver would update the ScreenRecs but not update the total
dimensions the input code relies on for transformation.
This call is a thin wrapper around the already-existing internal call and
should be backported to all stable series servers, with the minor ABI bump.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
CC: Andy Ritger <aritger@nvidia.com>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
This reverts commit 531785dd74.
The above commit breaks Xephyr option parsing. Andrzej writes:
Xephyr -retro -keybd evdev,,device=/dev/input/event2,xkbrules=evdev,xkbmodel=evdev,xkblayout=pl -mouse evdev,,device=/dev/input/event1 :3
results in:
<snip>
Pointer option key (device=) of value (/dev/input/event1) not assigned!
Kbd option key (device=) of value (/dev/input/event2) not assigned!
Kbd option key (xkbrules=) of value (evdev) not assigned!
Kbd option key (xkbmodel=) of value (evdev) not assigned!
Kbd option key (xkblayout=) of value (pl) not assigned!
<snip>
The effect of the patch is that the "key=value" pairs are parsed in such
a way that the key is added an "equals" sign to it and we end up with
keys like "device=" instead of "device". This in turn has effect on
KdParsePointerOptions and KdParseKbdOptions: the key does not match
any choice presented in the "switch" statement, and so "Pointer/Kbd
option key (...) of value (...) not assigned!" happens, making all
"key=value" options inaccessible to the user. Reverting the patch makes
them available again.
Reference: http://bugs.debian.org/689246
Reported-by: Andrzej Pietrasiewicz <andrzejtp2010@gmail.com>
Signed-off-by: Julien Cristau <jcristau@debian.org>
Cc: Dave Airlie <airlied@redhat.com>
Reviewed-by: Søren Sandmann <ssp@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
They're declared in osdep.h, so don't redeclare them in io.c as
well. Keeps the compiler happier.
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
In commit:
commit 092c57ab17
Author: Adam Jackson <ajax@redhat.com>
Date: Fri Jun 17 14:03:01 2011 -0400
os: Hide the Connection{In,Out}put implementation details
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Adam Jackson <ajax@redhat.com>
the check for an empty output buffer was moved from one calling
location into the FlushClient implementation itself. However, this
neglected the possibility that additional data, in the form of
'extraBuf' would be passed to FlushClient from other code paths. If the
output buffer happened to be empty at that time, the extra data would
never be written to the client.
This is fixed by checking the total data to be written, which includes
both pending and extra data, instead of just the pending data.
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
I noticed that the build-in int10 driver always reports
"Unable to retrieve all of segment 0x0C0000."
even though the entire BIOS data is retrieved with success.
The associated code is in hw/xfree86/int10/generic.c, in the function
xf86ExtendedInitInt10():
if (pci_device_read_rom(pInt->dev, vbiosMem) < V_BIOS_SIZE) {
xf86DrvMsg(screen, X_WARNING,
"Unable to retrieve all of segment 0x0C0000.\n");
}
The function pci_device_read_rom() is from libpciaccess; its return
value is not a size but an error status code: 0 means success.
If pci_device_read_rom() returns 0 for success, the warning is generated.
The proposed patch corrects the evaluation of the return value of
pci_device_read_rom() and of the supplied BIOS size.
Debian bug#686153
Signed-off-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
All this does is make it so editing configure.ac or Makefile.am doesn't
rebuild the makefiles. Which is just stupid.
v2: Remove --enable-maintainer-mode from autogen.sh
Signed-off-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Commit 09e4b78f missed a case.
Signed-off-by: Jason Gerecke <killertofu@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
pDev cannot be NULL here since fill_pointer_events is the only caller.
And if the screen is NULL, then the device tries to send events before it is
fully initialised. That certainly shouldn't happen and would be a bug
elsewhere.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Given the following scenario:
1) client A selects for TouchBegin on window W for device D
2) client B selects for TouchBegin on window W for XIAllDevices
3) client C selects for TouchBegin on window W with device E
Step 3 will fail with BadImplementation, because attempting to look up
XIAllDevices or XIAllMasterDevices with dixLookupDevices doesn't work.
This should succeed (or, if it was selecting for device D, fail with
BadAccess as it would be a duplicate selection).
Fix this by performing the appropriate lookup for virtual devices.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Cc: Peter Hutterer <peter.hutterer@who-t.net>
Cc: Chase Douglas <chase.douglas@ubuntu.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This flag is never set, so checking for it here means that we'll
never release the simulated mouse button press after the user touches
(and releases) the touchscreen for the first time.
Fixes a problem where the XO laptop touchpad became totally
unusable after touching the screen for the first time (since X then
behaved as if the mouse button was held down all the time).
Signed-off-by: Daniel Drake <dsd@laptop.org>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
If the device is disabled, the sprite window is NULL and dereferencing
crashes the server.
This is only triggered for XI 1.x grabs (ProcXGrabDevice) as XI2 grabs would
trigger another code path, creating a sprite for the disabled device as if
detaching it (which is wrong and fixed with this patch too).
Grabbing a disabled device doesn't make sense as it won't send events
anyway. However, the protocol specs do not prohibit it, so we need to keep
it working.
Luckily, oldWin is only used for focus out events, which aren't necessary
given that the device is disabled.
X.Org Bug 54934 <http://bugs.freedesktop.org/show_bug.cgi?id=54934>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@ubuntu.com>
Given the following scenario:
1) client A selects for TouchBegin on window W for device D
2) client B selects for TouchBegin on window W for XIAllDevices
3) client C selects for TouchBegin on window W with device E
Step 3 will fail with BadImplementation, because attempting to look up
XIAllDevices or XIAllMasterDevices with dixLookupDevices doesn't work.
This should succeed (or, if it was selecting for device D, fail with
BadAccess as it would be a duplicate selection).
Fix this by performing the appropriate lookup for virtual devices.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Chase Douglas <chase.douglas@ubuntu.com>
Similar to how we intercept and pass through CreateContext, also pass
through newer CreateNewContext requests.
Fixes Clutter → Xephyr → VirtualBox.
Signed-off-by: Frederic Plourde <frederic.plourde@collabora.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
We need to pass these requests through to the host server in the same
way we do glXMakeCurrent. Generalise the existing MakeCurrent
submission into once that will send MakeCurrent, MakeContextCurrent or
MakeCurrentReadSGI, depending on the request and the host server's
capabilities, and add decoding/hijack support for incoming
MakeContextCurrent and MakeCurrentReadSGI requests.
Fixes Clutter → Xephyr → VirtualBox.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Scale_to_desktop() converts ABS events from device coordinates
to screen coordinates:
[dev_X_min, dev_X_max] -> [screen_X_min, screen_X_max]
[dev_Y_min, dev_Y_max] -> [screen_Y_min, screen_Y_max]
An edge ABS event with X = dev_X_max (e.g., generated from the
edge of a touchscreen) will be converted to have screen X value
= screen_X_max, which, however, will be filterd out when xserver
tries to find proper Window to receive the event, because the
range check for a Window to receive events is
window_X_min <= event_screen_X < window_X_max
Events with event_screen_X = screen_X_max will fail the test get
and rejected by the Window.
To fix this, we change the device to screen coordinates mapping to
[dev_X_min, dev_X_max] -> [screen_X_min, screen_X_max-1]
[dev_Y_min, dev_Y_max] -> [screen_Y_min, screen_Y_max-1]
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Signed-off-by: Yufeng Shen <miletus@chromium.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
before after Operation
-------- ----------------- -----------------
1148346.9 1191807.5 ( 1.04) PutImage 10x10 square
2091666.1 2180983.0 ( 1.04) ShmPutImage 10x10 square
v3: In miDamage{R,Unr}egister, bump the serial number of the affected
drawable (and all children if it's a window) so subsequent drawing
against the damage will trigger another ValidateGC pass and we wrap
in/out correctly. Spotted by Aaron Plattner.
Signed-off-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
This hack was added to suppress events generated by Composite's internal
unmap/map cycle on redirection state change. Since that cycle was
removed in 193ecc8b4, these can go.
Signed-off-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Ville Syrjälä <syrjala@sci.fi>
Signed-off-by: Keith Packard <keithp@keithp.com>