Browse Source

Add helper function IsPointInWindow

menus
Noah Petherbridge 1 year ago
parent
commit
6d6629d3c0
2 changed files with 14 additions and 1 deletions
  1. +1
    -1
      supervisor.go
  2. +13
    -0
      window_manager.go

+ 1
- 1
supervisor.go View File

@@ -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
- 0
window_manager.go View File

@@ -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