Skip to content

Commit 373f24c

Browse files
committed
Fix crash on empty menu
When a menu is empty (e.g. due to filtering) we shouldn't crash on focus or selection
1 parent a548b28 commit 373f24c

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

pkg/gui/context/menu_context.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,10 @@ func (self *MenuContext) OnMenuPress(selectedItem *types.MenuItem) error {
135135
return err
136136
}
137137

138+
if selectedItem == nil {
139+
return nil
140+
}
141+
138142
if err := selectedItem.OnPress(); err != nil {
139143
return err
140144
}

pkg/gui/controllers/helpers/confirmation_helper.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,12 @@ func (self *ConfirmationHelper) resizeMenu() {
302302
_, _ = self.c.GocuiGui().SetView(self.c.Views().Menu.Name(), x0, y0, x1, menuBottom, 0)
303303

304304
tooltipTop := menuBottom + 1
305-
tooltipHeight := getMessageHeight(true, self.c.Contexts().Menu.GetSelected().Tooltip, panelWidth) + 2 // plus 2 for the frame
305+
tooltip := ""
306+
selectedItem := self.c.Contexts().Menu.GetSelected()
307+
if selectedItem != nil {
308+
tooltip = selectedItem.Tooltip
309+
}
310+
tooltipHeight := getMessageHeight(true, tooltip, panelWidth) + 2 // plus 2 for the frame
306311
_, _ = self.c.GocuiGui().SetView(self.c.Views().Tooltip.Name(), x0, tooltipTop, x1, tooltipTop+tooltipHeight-1, 0)
307312
}
308313

pkg/gui/controllers/menu_controller.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ func (self *MenuController) GetOnClick() func() error {
5353
func (self *MenuController) GetOnFocus() func(types.OnFocusOpts) error {
5454
return func(types.OnFocusOpts) error {
5555
selectedMenuItem := self.context().GetSelected()
56-
self.c.Views().Tooltip.SetContent(selectedMenuItem.Tooltip)
56+
if selectedMenuItem != nil {
57+
self.c.Views().Tooltip.SetContent(selectedMenuItem.Tooltip)
58+
}
5759
return nil
5860
}
5961
}

0 commit comments

Comments
 (0)