Browse Source

Add helper function IsPointInWindow

menus
Noah Petherbridge 1 year ago
parent
commit
6d6629d3c0
  1. 2
      supervisor.go
  2. 13
      window_manager.go

2
supervisor.go

@ -173,7 +173,7 @@ func (s *Supervisor) Loop(ev *event.State) error {
if err == ErrStopPropagation || handled {
// A widget in the active window has accepted an event. Do not pass
// the event also to lower widgets.
return nil
return err
}
// Run events for the other widgets not in a managed window.

13
window_manager.go

@ -151,6 +151,19 @@ func (s *Supervisor) FocusWindow(win *Window) error {
return nil
}
// IsPointInWindow returns whether the given Point overlaps with a window managed
// by the Supervisor.
func (s *Supervisor) IsPointInWindow(point render.Point) bool {
node := s.winFocus
for node != nil {
if point.Inside(AbsoluteRect(node.window)) {
return true
}
node = node.next
}
return false
}
// presentWindows draws the windows from bottom to top.
func (s *Supervisor) presentWindows(e render.Engine) {
item := s.winBottom

Loading…
Cancel
Save