From 599a2786d8a13467e47bac5783f5e3f94b9d7060 Mon Sep 17 00:00:00 2001 From: nakst <> Date: Tue, 14 Sep 2021 10:10:11 +0100 Subject: [PATCH] close all tabs menu item --- desktop/desktop.cpp | 10 ++++++++++ shared/strings.cpp | 2 ++ 2 files changed, 12 insertions(+) diff --git a/desktop/desktop.cpp b/desktop/desktop.cpp index 0eed12c..5602110 100644 --- a/desktop/desktop.cpp +++ b/desktop/desktop.cpp @@ -861,6 +861,16 @@ int WindowTabBandMessage(EsElement *element, EsMessage *message) { EsSyscall(ES_SYSCALL_WINDOW_MOVE, band->window->handle, (uintptr_t) &newBounds, 0, ES_FLAGS_DEFAULT); }, band); + EsMenuAddItem(menu, band->window->isMaximised ? ES_ELEMENT_DISABLED : ES_FLAGS_DEFAULT, + band->items.Length() > 1 ? interfaceString_DesktopCloseAllTabs : interfaceString_DesktopCloseWindow, -1, + [] (EsMenu *, EsGeneric context) { + WindowTabBand *band = (WindowTabBand *) context.p; + + for (uintptr_t i = 0; i < band->items.Length(); i++) { + WindowTabClose((WindowTab *) band->items[i]); + } + }, band); + EsMenuShow(menu); } else { return ReorderListMessage(band, message); diff --git a/shared/strings.cpp b/shared/strings.cpp index 85e5233..8607249 100644 --- a/shared/strings.cpp +++ b/shared/strings.cpp @@ -93,6 +93,8 @@ DEFINE_INTERFACE_STRING(DesktopCloseTab, "Close tab"); DEFINE_INTERFACE_STRING(DesktopMoveTabToNewWindow, "Move to new window"); DEFINE_INTERFACE_STRING(DesktopInspectUI, "Inspect UI"); DEFINE_INTERFACE_STRING(DesktopCenterWindow, "Center in screen"); +DEFINE_INTERFACE_STRING(DesktopCloseWindow, "Close window"); +DEFINE_INTERFACE_STRING(DesktopCloseAllTabs, "Close all tabs"); DEFINE_INTERFACE_STRING(DesktopSettingsApplication, "Settings"); DEFINE_INTERFACE_STRING(DesktopSettingsTitle, "Settings");