2 Elo touchscreen button event bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I have 2 Elo touch screen monitors(1024 x 768) and they are configured with Xinerama extension.

The bug that we have is that the button click event doesnt properly switch between the screens but the cursor movement is correct.

When we touch on a button1 on screen 1 and then touch button2 on screen 2 we found that the touch on button2 is recognized only for button 1(with the focus still being there on button1) but we found that cursor has moved to button 2. Subsequent touches on button2 are recognized correctly.The problem was there only for the first touch on button2

I narrowed the problem to xf86XInputSetScreen.

I was able to get an workaround

I modified the function NewCurrentScreen in events.c.

when calling SetCursorPosition I hardcode 1023 and 0 for the X cordinate for screen1 and screen0 respectively. That solved the bug.But I am not sure why it solves the bug !!

NewCurrentScreen(newScreen, x, y)

{

...

...

if

(newScreen != sprite.screen) {

sprite.screen = newScreen;

/* Make sure we tell the DDX to update its copy of the screen */

if

(sprite.confineWin)

XineramaConfineCursorToWindow(sprite.confineWin, TRUE);

else

XineramaConfineCursorToWindow(WindowTable[0], TRUE);

/* if the pointer wasn't confined, the DDX won't get

told of the pointer warp so we reposition it here */

if

(!syncEvents.playingEvents)

{

if

(sprite.screen->myNum == 0)

{

(*sprite.screen->SetCursorPosition)(sprite.screen,

0,

sprite.hotPhys.y + panoramiXdataPtr[0].y -

panoramiXdataPtr[sprite.screen->myNum].y, FALSE);

}

else

{

(*sprite.screen->SetCursorPosition)(sprite.screen,

1023,

sprite.hotPhys.y + panoramiXdataPtr[0].y -

panoramiXdataPtr[sprite.screen->myNum].y, FALSE);

}

}

}

}

........

...

}

I am not sure why this fix it.

Anybody have an explanation for this?

Thanks,

Mugunthan


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [X Forum]     [XFree86]     [XFree86 Newbie]     [X.Org]     [IETF Annouce]     [Security]     [Fontconfig]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]

  Powered by Linux