summaryrefslogtreecommitdiff
path: root/src/drmmode_display.h
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2018-03-07 17:28:55 +0100
committerMichel Dänzer <michel@daenzer.net>2018-03-07 17:28:55 +0100
commitb915e8e6fb956e983c2ce2a5565c20838c85707c (patch)
treefe04665a6450b4a5cb6af674028188d475d0547d /src/drmmode_display.h
parent7e18aea984e186dd2ab1144470b0c0e832562ad1 (diff)
Wrap the whole miPointerScreenFuncRec, instead of only Set/MoveCursor
We were clobbering entries in mi's global miSpritePointerFuncs struct, which cannot work correctly with multiple primary screens. Instead, assign a pointer to our own wrapper struct to PointPriv->spriteFuncs. Fixes crashes with multiple primary screens. Fixes: 1fe8ca75974c ("Keep track of how many SW cursors are visible on each screen") Reported-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Diffstat (limited to 'src/drmmode_display.h')
-rw-r--r--src/drmmode_display.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/drmmode_display.h b/src/drmmode_display.h
index 39d2d94a..e0b97e72 100644
--- a/src/drmmode_display.h
+++ b/src/drmmode_display.h
@@ -206,10 +206,6 @@ extern Bool drmmode_pre_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int cpp);
extern void drmmode_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode);
extern void drmmode_fini(ScrnInfoPtr pScrn, drmmode_ptr drmmode);
extern Bool drmmode_set_bufmgr(ScrnInfoPtr pScrn, drmmode_ptr drmmode, struct radeon_bo_manager *bufmgr);
-extern void drmmode_sprite_set_cursor(DeviceIntPtr pDev, ScreenPtr pScreen,
- CursorPtr pCursor, int x, int y);
-extern void drmmode_sprite_move_cursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x,
- int y);
extern void drmmode_set_cursor(ScrnInfoPtr scrn, drmmode_ptr drmmode, int id, struct radeon_bo *bo);
void drmmode_adjust_frame(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int x, int y);
extern Bool drmmode_set_desired_modes(ScrnInfoPtr pScrn, drmmode_ptr drmmode,
@@ -249,5 +245,8 @@ Bool drmmode_wait_vblank(xf86CrtcPtr crtc, drmVBlankSeqType type,
uint64_t *ust, uint32_t *result_seq);
+miPointerSpriteFuncRec drmmode_sprite_funcs;
+
+
#endif