MiddleButtonMove event does not work
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