Thread: [VirtualGL-Users] ButtonPress and ButtonRelease
3D Without Boundaries
Brought to you by:
dcommander
From: Rafael G. <rg...@gm...> - 2013-09-26 19:59:41
|
Hi DRC, I have just detected a strange behavior when using TurboVNC 1.2 client as an applet. When I hold two mouse buttons simultaneously it doesn't work as expected... By using xev, I have checked that if I press and hold button 1, it generates the correct ButtonPress event then, if I keep button 1 pressed and press button 2, it generates a ButtonRelease for button 1 and a ButtonPress for button 2. I have done the same on TurboVNC 1.1 client (the applet, as well) and it behaves correctly (no ButtonRelease between the two ButtonPress events). The same happens if I press and hold button 2 and then button 1. Cheers, Rafael Guimarães |
From: Rafael G. <rg...@gm...> - 2013-09-30 20:06:26
|
Just to have a more complete picture of what is happening, below I have copied the output of xev running through VncViewer 1.2 Java Applet for the following sequence of events: press mouse button 1, press mouse button 2, release mouse button 2 and then release mouse button 1. As you may see, the order of the events captured by xev are not the same of what actually happened. Best regards, Rafael Guimarães ButtonPress event, serial 26, synthetic NO, window 0x4800001, root 0x3b, subw 0x4800002, time 1886623433, (37,33), root:(1781,872), state 0x0, button 1, same_screen YES EnterNotify event, serial 26, synthetic NO, window 0x4800001, root 0x3b, subw 0x0, time 1886623433, (37,33), root:(1781,872), mode NotifyGrab, detail NotifyInferior, same_screen YES, focus YES, state 256 KeymapNotify event, serial 26, synthetic NO, window 0x0, keys: 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ButtonRelease event, serial 26, synthetic NO, window 0x4800001, root 0x3b, subw 0x4800002, time 1886625270, (37,33), root:(1781,872), state 0x100, button 1, same_screen YES LeaveNotify event, serial 26, synthetic NO, window 0x4800001, root 0x3b, subw 0x0, time 1886625270, (37,33), root:(1781,872), mode NotifyUngrab, detail NotifyInferior, same_screen YES, focus YES, state 0 ButtonPress event, serial 26, synthetic NO, window 0x4800001, root 0x3b, subw 0x4800002, time 1886625270, (37,33), root:(1781,872), state 0x0, button 2, same_screen YES EnterNotify event, serial 26, synthetic NO, window 0x4800001, root 0x3b, subw 0x0, time 1886625270, (37,33), root:(1781,872), mode NotifyGrab, detail NotifyInferior, same_screen YES, focus YES, state 512 KeymapNotify event, serial 26, synthetic NO, window 0x0, keys: 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ButtonRelease event, serial 26, synthetic NO, window 0x4800001, root 0x3b, subw 0x4800002, time 1886627148, (37,33), root:(1781,872), state 0x200, button 2, same_screen YES LeaveNotify event, serial 26, synthetic NO, window 0x4800001, root 0x3b, subw 0x0, time 1886627148, (37,33), root:(1781,872), mode NotifyUngrab, detail NotifyInferior, same_screen YES, focus YES, state 0 2013/9/26 Rafael Guimaraes <rg...@gm...> > Hi DRC, > > I have just detected a strange behavior when using TurboVNC 1.2 client as > an applet. When I hold two mouse buttons simultaneously it doesn't work as > expected... > By using xev, I have checked that if I press and hold button 1, it > generates the correct ButtonPress event then, if I keep button 1 pressed > and press button 2, it generates a ButtonRelease for button 1 and a > ButtonPress for button 2. I have done the same on TurboVNC 1.1 client (the > applet, as well) and it behaves correctly (no ButtonRelease between the two > ButtonPress events). The same happens if I press and hold button 2 and then > button 1. > > Cheers, > > Rafael Guimarães > > |
From: DRC <dco...@us...> - 2013-09-30 20:14:14
|
Can you confirm whether this also happens when the Java viewer is run in "standalone mode", i.e. not as an applet? Any chance you can also determine whether it occurs with different client operating systems or whether it's specific to one of them (Windows, for instance)? On 9/30/13 3:05 PM, Rafael Guimaraes wrote: > Just to have a more complete picture of what is happening, below I have > copied the output of xev running through VncViewer 1.2 Java Applet for > the following sequence of events: press mouse button 1, press mouse > button 2, release mouse button 2 and then release mouse button 1. As you > may see, the order of the events captured by xev are not the same of > what actually happened. > > Best regards, > > Rafael Guimarães > > > ButtonPress event, serial 26, synthetic NO, window 0x4800001, > root 0x3b, subw 0x4800002, time 1886623433, (37,33), root:(1781,872), > state 0x0, button 1, same_screen YES > > EnterNotify event, serial 26, synthetic NO, window 0x4800001, > root 0x3b, subw 0x0, time 1886623433, (37,33), root:(1781,872), > mode NotifyGrab, detail NotifyInferior, same_screen YES, > focus YES, state 256 > > KeymapNotify event, serial 26, synthetic NO, window 0x0, > keys: 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > > ButtonRelease event, serial 26, synthetic NO, window 0x4800001, > root 0x3b, subw 0x4800002, time 1886625270, (37,33), root:(1781,872), > state 0x100, button 1, same_screen YES > > LeaveNotify event, serial 26, synthetic NO, window 0x4800001, > root 0x3b, subw 0x0, time 1886625270, (37,33), root:(1781,872), > mode NotifyUngrab, detail NotifyInferior, same_screen YES, > focus YES, state 0 > > ButtonPress event, serial 26, synthetic NO, window 0x4800001, > root 0x3b, subw 0x4800002, time 1886625270, (37,33), root:(1781,872), > state 0x0, button 2, same_screen YES > > EnterNotify event, serial 26, synthetic NO, window 0x4800001, > root 0x3b, subw 0x0, time 1886625270, (37,33), root:(1781,872), > mode NotifyGrab, detail NotifyInferior, same_screen YES, > focus YES, state 512 > > KeymapNotify event, serial 26, synthetic NO, window 0x0, > keys: 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > > ButtonRelease event, serial 26, synthetic NO, window 0x4800001, > root 0x3b, subw 0x4800002, time 1886627148, (37,33), root:(1781,872), > state 0x200, button 2, same_screen YES > > LeaveNotify event, serial 26, synthetic NO, window 0x4800001, > root 0x3b, subw 0x0, time 1886627148, (37,33), root:(1781,872), > mode NotifyUngrab, detail NotifyInferior, same_screen YES, > focus YES, state 0 > > > 2013/9/26 Rafael Guimaraes <rg...@gm... <mailto:rg...@gm...>> > > Hi DRC, > > I have just detected a strange behavior when using TurboVNC 1.2 > client as an applet. When I hold two mouse buttons simultaneously it > doesn't work as expected... > By using xev, I have checked that if I press and hold button 1, it > generates the correct ButtonPress event then, if I keep button 1 > pressed and press button 2, it generates a ButtonRelease for button > 1 and a ButtonPress for button 2. I have done the same on TurboVNC > 1.1 client (the applet, as well) and it behaves correctly (no > ButtonRelease between the two ButtonPress events). The same happens > if I press and hold button 2 and then button 1. > > Cheers, > > Rafael Guimarães > > > > > ------------------------------------------------------------------------------ > October Webinars: Code for Performance > Free Intel webinars can help you accelerate application performance. > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from > the latest Intel processors and coprocessors. See abstracts and register > > http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk > > > > _______________________________________________ > VirtualGL-Users mailing list > Vir...@li... > https://lists.sourceforge.net/lists/listinfo/virtualgl-users > |
From: Rafael G. <rg...@gm...> - 2013-09-30 20:30:08
|
I had the exact same behavior when running the Java viewer in standalone mode (java -jar VncViewer.jar). The problem happens in both Windows 7 64 bits and Linux 64 bits (at least in CentOS 5 and 6, although I think that the linux version has little to do with it). Please, feel free to ask any for any further test. Best regards, Rafael Guimarães 2013/9/30 DRC <dco...@us...> > Can you confirm whether this also happens when the Java viewer is run in > "standalone mode", i.e. not as an applet? Any chance you can also > determine whether it occurs with different client operating systems or > whether it's specific to one of them (Windows, for instance)? > > > On 9/30/13 3:05 PM, Rafael Guimaraes wrote: > > Just to have a more complete picture of what is happening, below I have > > copied the output of xev running through VncViewer 1.2 Java Applet for > > the following sequence of events: press mouse button 1, press mouse > > button 2, release mouse button 2 and then release mouse button 1. As you > > may see, the order of the events captured by xev are not the same of > > what actually happened. > > > > Best regards, > > > > Rafael Guimarães > > > > > > ButtonPress event, serial 26, synthetic NO, window 0x4800001, > > root 0x3b, subw 0x4800002, time 1886623433, (37,33), > root:(1781,872), > > state 0x0, button 1, same_screen YES > > > > EnterNotify event, serial 26, synthetic NO, window 0x4800001, > > root 0x3b, subw 0x0, time 1886623433, (37,33), root:(1781,872), > > mode NotifyGrab, detail NotifyInferior, same_screen YES, > > focus YES, state 256 > > > > KeymapNotify event, serial 26, synthetic NO, window 0x0, > > keys: 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > > > > ButtonRelease event, serial 26, synthetic NO, window 0x4800001, > > root 0x3b, subw 0x4800002, time 1886625270, (37,33), > root:(1781,872), > > state 0x100, button 1, same_screen YES > > > > LeaveNotify event, serial 26, synthetic NO, window 0x4800001, > > root 0x3b, subw 0x0, time 1886625270, (37,33), root:(1781,872), > > mode NotifyUngrab, detail NotifyInferior, same_screen YES, > > focus YES, state 0 > > > > ButtonPress event, serial 26, synthetic NO, window 0x4800001, > > root 0x3b, subw 0x4800002, time 1886625270, (37,33), > root:(1781,872), > > state 0x0, button 2, same_screen YES > > > > EnterNotify event, serial 26, synthetic NO, window 0x4800001, > > root 0x3b, subw 0x0, time 1886625270, (37,33), root:(1781,872), > > mode NotifyGrab, detail NotifyInferior, same_screen YES, > > focus YES, state 512 > > > > KeymapNotify event, serial 26, synthetic NO, window 0x0, > > keys: 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > > > > ButtonRelease event, serial 26, synthetic NO, window 0x4800001, > > root 0x3b, subw 0x4800002, time 1886627148, (37,33), > root:(1781,872), > > state 0x200, button 2, same_screen YES > > > > LeaveNotify event, serial 26, synthetic NO, window 0x4800001, > > root 0x3b, subw 0x0, time 1886627148, (37,33), root:(1781,872), > > mode NotifyUngrab, detail NotifyInferior, same_screen YES, > > focus YES, state 0 > > > > > > 2013/9/26 Rafael Guimaraes <rg...@gm... <mailto:rg...@gm...>> > > > > Hi DRC, > > > > I have just detected a strange behavior when using TurboVNC 1.2 > > client as an applet. When I hold two mouse buttons simultaneously it > > doesn't work as expected... > > By using xev, I have checked that if I press and hold button 1, it > > generates the correct ButtonPress event then, if I keep button 1 > > pressed and press button 2, it generates a ButtonRelease for button > > 1 and a ButtonPress for button 2. I have done the same on TurboVNC > > 1.1 client (the applet, as well) and it behaves correctly (no > > ButtonRelease between the two ButtonPress events). The same happens > > if I press and hold button 2 and then button 1. > > > > Cheers, > > > > Rafael Guimarães > > > > > > > > > > > ------------------------------------------------------------------------------ > > October Webinars: Code for Performance > > Free Intel webinars can help you accelerate application performance. > > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most > from > > the latest Intel processors and coprocessors. See abstracts and register > > > > > http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk > > > > > > > > _______________________________________________ > > VirtualGL-Users mailing list > > Vir...@li... > > https://lists.sourceforge.net/lists/listinfo/virtualgl-users > > > > > ------------------------------------------------------------------------------ > October Webinars: Code for Performance > Free Intel webinars can help you accelerate application performance. > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most > from > the latest Intel processors and coprocessors. See abstracts and register > > http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk > _______________________________________________ > VirtualGL-Users mailing list > Vir...@li... > https://lists.sourceforge.net/lists/listinfo/virtualgl-users > |
From: DRC <dco...@us...> - 2013-10-25 23:49:16
|
This has been fixed in trunk and branches/1.2.x, and there's a new stable build up at http://virtualgl.sourceforge.net/vnc.nightly/ that incorporates the fix. I would ask Brian to review my patch (r5841 in trunk or r5842 in the 1.2.x branch -- http://virtualgl.svn.sourceforge.net/viewvc/virtualgl/vnc/trunk/java/com/turbovnc/vncviewer/CConn.java?r1=5841&r2=5840&pathrev=5841) It is based on the logic from the 1.1 Java viewer. The basic problem involved the fact that the RFB protocol doesn't have button press or release events per se. It has one PointerEvent, which is used for motion as well as button presses/releases. The server monitors the button mask in each successive PointerEvent, and if it notices that the mask changes, it issues the appropriate button press or release events to the X server. The 1.2 Java viewer had flawed logic. It was always setting the button mask to 0 whenever a mouse button was released, so it didn't save the state of the previous button press. Thus, the server interpreted that PointerEvent as "release all buttons." I found a similar problem that would occur if you held down a button and then activated the scroll wheel. That has also been fixed by the same patch. On 9/26/13 2:59 PM, Rafael Guimaraes wrote: > Hi DRC, > > I have just detected a strange behavior when using TurboVNC 1.2 client > as an applet. When I hold two mouse buttons simultaneously it doesn't > work as expected... > By using xev, I have checked that if I press and hold button 1, it > generates the correct ButtonPress event then, if I keep button 1 pressed > and press button 2, it generates a ButtonRelease for button 1 and a > ButtonPress for button 2. I have done the same on TurboVNC 1.1 client > (the applet, as well) and it behaves correctly (no ButtonRelease between > the two ButtonPress events). The same happens if I press and hold button > 2 and then button 1. |