MPX Changelog file == 23.11.06 == mi: closing memory leak, miPointer is freed in miPointerCloseScreen bugfix: uninitialized pPointer in miPointerGetPosition ifndef MPX adding DeviceIntPtr parameter to ScreenRec's cursor functions. cleanup of miPointer code to use same scheme in each function dix: MPHasCursor() function determines checking whether to invoke cursor rendering. animcur: adding DeviceIntPtr parameter to cursor functions but animcur relies on the core pointer right now. xfixes: adding DeviceIntPtr parameter to cursor functions but xfixes relies on the core pointer right now. rac: adding DeviceIntPtr parameter to cursor functions but RAC relies on the core pointer right now. ramdac: adding DeviceIntPtr parameter to cursor functions but ramdac relies on the core pointer right now. Files: mi/mipointer.c mi/mipointer.h mi/micursor.c mi/mi.h mi/mieq.c include/cursor.h include/inputstr.h include/scrnintstr.h include/dix.h dix/events.c dix/cursor.c Xext/xtest.c render/animcur.c xfixes/cursor.c XTrap/xtrapddmi.c xkb/ddxFakeMtn.c hw/xfree86/common/xf86Cursor.c hw/xfree86/common/xf86RandR.c hw/xfree86/rac/xf86RAC.c hw/xfree86/ramdac/xf86Cursor.c hw/xfree86/dri/dri.c == 22.11.06 == mi: added DevToSprite() conversion function fixed miSpriteRealize to use passed pDev argument instead of looping. dix: changed sprite dependency and added MPX functionality to parts of events.c (XineramaChangeToCursor, XineramaCheckPhysLimits, XineramaConstrainCursor) Xi: fix: accessing other->buttons for keyboard segfaulted the server Files: mi/misprite.c mi/mipointer.c dix/events.c Xi/exevents.c ____________________________________________________________ dix GetSpriteWindow() adjusted for MPX added device dependency for MPX to DoEnterLeaveEvents, EnterLeaveEvents, EnterNotifies, LeaveNotifies and FixUpEventFromWindow. Files: Xext/security.c Xi/exevents.c xkb/ddxFakeMtn.c dix/events.c include/dix.h ____________________________________________________________ dix: DeliverEventsToWindow adjusted for MPX mi: sprite debugging disabled Files: dix/events.c Xi/exevents.c mi/misprite.c include/dix.h == 21.11.06 == mi: added MPX to miSpriteReportDamage added id field to miCursorInfoPtr, required to pass through to miDC core pointer uses mpCursors array as well. added miDCBufferRec for future use with MPX Files: mi/midispcur.c mi/misprite.c mi/mispritest.h TAG: MPX_BEFORE_MIDC_API_BREAK ____________________________________________________________ mi: added device ID to miSpriteCursorFuncRec functions added MPX code to midispcur.c Files: mi/midispcur.c mi/misprite.c mi/mispritest.h BUG: Core pointer changes whenever MPX cursor changes shape. ____________________________________________________________ mi: constrain MPX cursors to screen Files: dix/events.c mi/mipointer.c include/scrnintstr.h TAG: MPX_BEFORE_DIX_API_BREAK ____________________________________________________________ dix: moved sprite from static to be pointer of type SpritePtr added SpriteRecs for MPX devices changed sprite dependency and added MPX functionality to parts of events.c (ConfineToShape, PostNewCursor, XineramaCheckMotion, CheckMotion, XineramaChangeToCursor, ChangeToCursor, CheckPhysLimits, PointerConfinedToScreen) added DeviceIntRec param to GetSpritePosition(). This required some minor changes in ddx, xtest, xkb and xfixes. mi: changed miPointer to pointer instead of static struct. Files: dix/events.c dix/exevents.c Xext/xtest.c ddx/ddxFakeBtn.c ddx/ddxFakeMtn.c ddx/ddxDevBtn.c xkb/xkbActions.c xfixes/cursor.c mi/mieq.c ____________________________________________________________ dix: WindowsRestructured() calls CheckMotion() on all devices mi: core pointer was checked twice in miSpriteReportDamage, miSpriteInstallColormap, miSpriteStoreColors, miSpriteSaveDoomedAreas and miSpriteRealiseCursor using damage bug (see comment in file) to avoid artefacts Files: dix/events.c mi/misprite.c mi/mispritest.h == 20.11.06 == mi: moved core pointer information from miSpriteScreenRec into a miCursorInfoRec. bugfix in mipointer, semicolon after preprocessor statement Files: mi/mispritest.h mi/misprite.c mi/mipointer.c ____________________________________________________________ mi: added MPX to miSprite functions. Files: mi/mispritest.h mi/misprite.c mi/mipointer.c dix/events.c NOTE: This version will render multiple cursors but with an artefact each time when devices alternate. == 17.11.06 == dix: moved isMPdev field to end of _DeviceIntRec structure mi: added miMPPointers array to mipointer.c added DeviceIntPtr to all miPointerSpriteFuncs. Coming from miPointer we use inputInfo.pointer as standard value. ABI BREAK! ramdac: forcing failed HW Cursor initialisation. MPX needs software rendering. changes to use new miPointerSpriteFunc (this required externing inputInfo, should probably be fixed at a later point). RAC: changes to use new miPointerSpriteFuncs. Files: include/inputstr.h mi/mipointer.c mi/mipointer.h mi/misprite.c hw/xfree86/ramdac/xf86HWCurs.c hw/xfree86/ramdac/xf86Cursor.c hw/xfree86/rac/xf86RAC.c ____________________________________________________________ mi: added miCursorInfoRec to contain info of the MPX cursors. calling miUpdatePointerSprite() from event queue for MPX devices. adding device-specific processing to miPointer*() functions. dix: Call to SetCursorPosition in CheckMotion() temporarily disabled. xfree86/common: call to miPointerUpdateSprite() disabled, is done from the EQ NOTE: This build will not display cursor images. BUG: The second mouse does to take correct x coordinates. Files: mi/mispritestr.h mi/misprite.c mi/mipointer.c mi/mipointer.h mi/mieq.c dix/events.c hw/xfree86/common/xf86Events.c == 16.11.06 == dix: merge with code cleanup from master GetPointerEvents treats events in the same way as XINPUT devices when flag has POINTER_MULTIPOINTER set. xfree86/common: added XI86_MP_DEVICE flag and parsing in xf86ProcessCommonOptions added POINTER_MULTIPOINTER define. Is used in xf86PostMotionEvent and xf86PostButtonEvent for the flags that are passed into GetPointerEvents() global: added flags to configure.ac to enable/disable MPX define added flags to dix-config.h.in to #define MPX Files: dix/getevents.c hw/xfree86/common/xf86Xinput.c hw/xfree86/common/xf86Xinput.h include/input.h configure.ac include/dix-config.h.in ____________________________________________________________ dix: added isMPdev field to _DeviceIntRec, is used in GetPointerEvents() mieq: avoid merging events from different devices in mieqEnqueue() xfree86/common isMPdev field used from xf86ActivateDevice(), xf86PostMotionEvent() and xf86PostButtonEvent() Files: dix/getevents.c hw/xfree86/common/xf86Xinput.c include/inputstr.h mi/mieq.c ____________________________________________________________ mieq: EQ processing handles MP devices global: MPX define added to xorg-server.h.in xfree86/common: small fix to avoid byte overflow Files: mi/mieq.c hw/xfree86/common/xf86Xinput.c include/xserver-config.h.in