Explorar o código

fixed wrong interface type assertion

leonsal %!s(int64=8) %!d(string=hai) anos
pai
achega
2fbc7f2622
Modificáronse 3 ficheiros con 10 adicións e 16 borrados
  1. 2 2
      gui/root.go
  2. 4 7
      gui/slider.go
  3. 4 7
      gui/splitter.go

+ 2 - 2
gui/root.go

@@ -239,9 +239,9 @@ func (r *Root) sendPanels(x, y float32, evname string, ev interface{}) {
 		if found {
 			r.targets = append(r.targets, ipan)
 		} else {
-			// If OnCursorEnter previously sent, sends OnMouseLeave
+			// If OnCursorEnter previously sent, sends OnCursorLeave with a nil event
 			if pan.cursorEnter {
-				pan.Dispatch(OnCursorLeave, ev)
+				pan.Dispatch(OnCursorLeave, nil)
 				pan.cursorEnter = false
 			}
 			// If mouse button was pressed, sends event informing mouse down outside of the panel

+ 4 - 7
gui/slider.go

@@ -189,9 +189,7 @@ func (s *Slider) onMouse(evname string, ev interface{}) {
 // onCursor process subscribed cursor events
 func (s *Slider) onCursor(evname string, ev interface{}) {
 
-	cev := ev.(*window.CursorEvent)
-	switch evname {
-	case OnCursorEnter:
+	if evname == OnCursorEnter {
 		s.root.SetScrollFocus(s)
 		if s.horiz {
 			s.root.SetCursorHResize()
@@ -200,15 +198,16 @@ func (s *Slider) onCursor(evname string, ev interface{}) {
 		}
 		s.cursorOver = true
 		s.update()
-	case OnCursorLeave:
+	} else if evname == OnCursorLeave {
 		s.root.SetScrollFocus(nil)
 		s.root.SetCursorNormal()
 		s.cursorOver = false
 		s.update()
-	case OnCursor:
+	} else if evname == OnCursor {
 		if !s.pressed {
 			return
 		}
+		cev := ev.(*window.CursorEvent)
 		var pos float32
 		if s.horiz {
 			delta := cev.Xpos - s.posLast
@@ -222,8 +221,6 @@ func (s *Slider) onCursor(evname string, ev interface{}) {
 			pos = newpos / s.Panel.ContentHeight()
 		}
 		s.setPos(pos)
-	default:
-		return
 	}
 	s.root.StopPropagation(Stop3D)
 }

+ 4 - 7
gui/splitter.go

@@ -139,9 +139,7 @@ func (s *Splitter) onMouse(evname string, ev interface{}) {
 // onCursor receives subscribed cursor events over the spacer panel
 func (s *Splitter) onCursor(evname string, ev interface{}) {
 
-	cev := ev.(*window.CursorEvent)
-	switch evname {
-	case OnCursorEnter:
+	if evname == OnCursorEnter {
 		if s.horiz {
 			s.root.SetCursorHResize()
 		} else {
@@ -149,14 +147,15 @@ func (s *Splitter) onCursor(evname string, ev interface{}) {
 		}
 		s.mouseOver = true
 		s.update()
-	case OnCursorLeave:
+	} else if evname == OnCursorLeave {
 		s.root.SetCursorNormal()
 		s.mouseOver = false
 		s.update()
-	case OnCursor:
+	} else if evname == OnCursor {
 		if !s.pressed {
 			return
 		}
+		cev := ev.(*window.CursorEvent)
 		var delta float32
 		if s.horiz {
 			delta = cev.Xpos - s.posLast
@@ -167,8 +166,6 @@ func (s *Splitter) onCursor(evname string, ev interface{}) {
 		}
 		s.setSplit(s.pos + delta)
 		s.recalc()
-	default:
-		return
 	}
 	s.root.StopPropagation(Stop3D)
 }