From 0dd73e249df0d486d243b3a01a1d23991f8837d6 Mon Sep 17 00:00:00 2001 From: Atterpac <89053530+atterpac@users.noreply.github.com> Date: Sat, 1 Jun 2024 14:30:17 -0600 Subject: [PATCH] Revert "Remove OpenContextMenu" (#3524) This reverts commit 54140e9adb78d5ea380462602d9d93091bcc1ddc. --- v3/pkg/application/webview_window.go | 19 +++++++++++++++++++ v3/pkg/application/window.go | 1 + 2 files changed, 20 insertions(+) diff --git a/v3/pkg/application/webview_window.go b/v3/pkg/application/webview_window.go index 248efd7fdab..0e4f4e4367d 100644 --- a/v3/pkg/application/webview_window.go +++ b/v3/pkg/application/webview_window.go @@ -1094,6 +1094,25 @@ func (w *WebviewWindow) HandleDragAndDropMessage(filenames []string) { } } +func (w *WebviewWindow) OpenContextMenu(data *ContextMenuData) { + menu, ok := w.contextMenus[data.Id] + if !ok { + // try application level context menu + menu, ok = globalApplication.getContextMenu(data.Id) + if !ok { + w.Error("No context menu found for id: %s", data.Id) + return + } + } + menu.setContextData(data) + if w.impl == nil && !w.isDestroyed() { + return + } + InvokeSync(func() { + w.impl.openContextMenu(menu, data) + }) +} + // RegisterContextMenu registers a context menu and assigns it the given name. func (w *WebviewWindow) RegisterContextMenu(name string, menu *Menu) { w.contextMenusLock.Lock() diff --git a/v3/pkg/application/window.go b/v3/pkg/application/window.go index 100ea5728bc..57b85dbfac9 100644 --- a/v3/pkg/application/window.go +++ b/v3/pkg/application/window.go @@ -44,6 +44,7 @@ type Window interface { Minimise() Window Name() string On(eventType events.WindowEventType, callback func(event *WindowEvent)) func() + OpenContextMenu(data *ContextMenuData) RegisterContextMenu(name string, menu *Menu) RelativePosition() (int, int) Reload()