MiddleButtonMove event does not work
Jump to navigation
Jump to search
Description
middleButtonMove event does not work.
If you hold middle button and move, mouseMove event will fire instead.
Help file says
- Events that can be trapped(...)
- (...)
- middleButtonMove- the mouse moved while the middle button was down
Example code to demonstrate the bug.
open "middleButtonMove bug" for graphics as #w
print #w, "when mouseMove [NoMBpaint]"
print #w, "when middleButtonMove [MMBpaint]"
print #w, "when middleButtonDown [MMBdown]"
print #w, "when middleButtonUp [MMBup]"
print #w, "down"
print #w, "\"
print #w, "\Move mouse over window. - "
print #w, "\Press and hold Middle Mouse Button, "
print #w, "\ move mouse over window. - "
print #w, "\Look in the mainwin - "
print #w, "\ watch for MMBdown, MMBup messages"
wait
[NoMBpaint]
print #w, "size 1"
print #w, "color black; set "; MouseX; " "; MouseY
aaa =aaa +1
print ".";
if aaa mod 30 = 0 then print
wait
[MMBpaint]
'!!! WE NEVER GOT HERE - a bug!!!
print #w, "size 3"
print #w, "color blue; set "; MouseX; " "; MouseY
aaa =aaa +1
print "*";
if aaa mod 30 = 0 then print
wait
[MMBdown]
print "MMBdown"
wait
[MMBup]
print "MMBup"
wait
Workaround:
You can't use middleButtonMove, but:
you can keep middle button status by ourself
and if pressed, process mouseMove as middleButtonMove
open "middleButtonMove workaround" for graphics as #w
print #w, "when mouseMove [NoMBpaint]"
print #w, "when middleButtonMove [MMBpaint]"
print #w, "when middleButtonDown [MMBdown]"
print #w, "when middleButtonUp [MMBup]"
print #w, "down"
print #w, "\"
print #w, "\Move mouse over window. - "
print #w, "\Press and hold Middle Mouse Button, "
print #w, "\ move mouse over window. - "
print #w, "\Look in the mainwin - "
print #w, "\ watch for MMBdown, MMBup messages"
wait
[NoMBpaint]
'Workaround to missing middleButtonMove event: keep middle button status by ourself
'and if pressed, process mouseMove as middleButtonMove
if MMBdown = 1 then [MMBpaint]
print #w, "size 1"
print #w, "color black; set "; MouseX; " "; MouseY
aaa =aaa +1
print ".";
if aaa mod 30 = 0 then print
wait
[MMBpaint]
'!!! WE NEVER GOT HERE (by event handler)- a bug!!!
print #w, "size 3"
print #w, "color blue; set "; MouseX; " "; MouseY
aaa =aaa +1
print "*";
if aaa mod 30 = 0 then print
wait
[MMBdown]
print "MMBdown"
MMBdown = 1
wait
[MMBup]
print "MMBup"
MMBdown = 0
wait