How long have canvas mouse events been broken?

BlitzMax Forums/BlitzMax GUI Programming/How long have canvas mouse events been broken?

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

Nope - I only get one EVENT_MOUSEMOVE if I move to a pixel. Regarding the jumping, this tweak (incoroporated below) should fix it:

' createcanvas.bmx

Framework brl.win32maxgui
Import brl.eventqueue
Import brl.d3d7max2d
'Import brl.glmax2d

Strict 

Global GAME_WIDTH=720
Global GAME_HEIGHT=480

' create a centered window with client size GAME_WIDTH,GAME_HEIGHT

Local wx=(ClientWidth(Desktop())-GAME_WIDTH)/2
Local wy=(ClientHeight(Desktop())-GAME_HEIGHT)/2

Local window:TGadget=CreateWindow("My Canvas",wx,wy,GAME_WIDTH,GAME_HEIGHT,Null,WINDOW_TITLEBAR|WINDOW_CLIENTCOORDS)

' create a canvas for our game

Local canvas:TGadget=CreateCanvas(0,0,320,240,window)
Local canvas1:TGadget'=CreateCanvas(340,140,320,240,window)

' create an update timer
Local picked:TGadget
Local handlex,handley

'CreateTimer 60

While WaitEvent()
	Local src:TGadget=TGadget(EventSource())
	DebugLog CurrentEvent.toString()
	Select EventID()
		Case EVENT_TIMERTICK
			RedrawGadget canvas

		Case EVENT_GADGETPAINT
			SetGraphics CanvasGraphics(src)
			SetOrigin 160,120
			SetLineWidth 5
			Cls
			Local t=MilliSecs()
			DrawLine 0,0,120*Cos(t),120*Sin(t)
			DrawLine 0,0,80*Cos(t/60),80*Sin(t/60)
			Flip
			
		Case EVENT_MOUSEDOWN
			picked=src
			handlex=EventX()+GadgetX(src)
			handley=EventY()+GadgetY(src)

		Case EVENT_MOUSEUP
			picked=Null

		Case EVENT_MOUSEMOVE
			If picked
				Local mx=EventX()+GadgetX(src)-handlex
				Local my=EventY()+GadgetY(src)-handley
				SetGadgetShape(src,mx,my,GadgetWidth(picked),GadgetHeight(picked))
			EndIf
	
		Case EVENT_WINDOWCLOSE
			FreeGadget canvas
			End

		Case EVENT_APPTERMINATE
			End
	End Select
Wend