diff --git a/src/Greenshot.Editor/Forms/ImageEditorForm.cs b/src/Greenshot.Editor/Forms/ImageEditorForm.cs
index 97263d8c2..9e78c2ce9 100644
--- a/src/Greenshot.Editor/Forms/ImageEditorForm.cs
+++ b/src/Greenshot.Editor/Forms/ImageEditorForm.cs
@@ -450,6 +450,10 @@ namespace Greenshot.Editor.Forms
{
ClearItems(fileStripMenuItem.DropDownItems);
+ // check if CTRL is pressed and toggle CloseMenu
+ bool ctrlActive = (ModifierKeys & Keys.Control) == Keys.Control;
+ ToggleCloseMenuItemAction(ctrlActive);
+
// Add the destinations
foreach (IDestination destination in DestinationHelper.GetAllDestinations())
{
@@ -474,6 +478,64 @@ namespace Greenshot.Editor.Forms
// add the elements after the destinations
fileStripMenuItem.DropDownItems.Add(toolStripSeparator9);
fileStripMenuItem.DropDownItems.Add(closeToolStripMenuItem);
+
+ // register events to handle CTRL in DropDown
+ var dropDown = fileStripMenuItem.DropDown;
+
+ // remove event handler if already exists
+ dropDown.PreviewKeyDown -= FileMenuDropDown_PreviewKeyDown;
+ dropDown.KeyUp -= FileMenuDropDown_KeyUp;
+
+ // add event handler
+ dropDown.PreviewKeyDown += FileMenuDropDown_PreviewKeyDown;
+ dropDown.KeyUp += FileMenuDropDown_KeyUp;
+
+ }
+
+ ///
+ /// calls if CRTL is pressed
+ ///
+ private void FileMenuDropDown_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
+ {
+ if (e.Control)
+ {
+ ToggleCloseMenuItemAction(useCloseAllAction: true);
+ }
+ }
+
+ ///
+ /// calls if CRTL is released
+ ///
+ private void FileMenuDropDown_KeyUp(object sender, KeyEventArgs e)
+ {
+ if (!e.Control)
+ {
+ ToggleCloseMenuItemAction(useCloseAllAction: false);
+ }
+ }
+
+ ///
+ /// toggle closing action. "close current editor" -- "close all open editors"
+ ///
+ /// if true the menu action is "close all open editors"
+ private void ToggleCloseMenuItemAction(bool useCloseAllAction)
+ {
+ if (useCloseAllAction)
+ {
+ closeToolStripMenuItem.LanguageKey = "editor_close_all";
+ closeToolStripMenuItem.ShortcutKeys = Keys.None;
+ closeToolStripMenuItem.Click -= CloseToolStripMenuItemClick;
+ closeToolStripMenuItem.Click += CloseAllToolStripMenuItemClick;
+ }
+ else
+ {
+ closeToolStripMenuItem.LanguageKey = "editor_close";
+ closeToolStripMenuItem.ShortcutKeys = Keys.Alt | Keys.F4;
+ closeToolStripMenuItem.Click -= CloseAllToolStripMenuItemClick;
+ closeToolStripMenuItem.Click += CloseToolStripMenuItemClick;
+ }
+
+ ApplyLanguage(closeToolStripMenuItem);
}
private delegate void SurfaceMessageReceivedThreadSafeDelegate(object sender, SurfaceMessageEventArgs eventArgs);
@@ -668,7 +730,30 @@ namespace Greenshot.Editor.Forms
private void CloseToolStripMenuItemClick(object sender, EventArgs e)
{
- Close();
+ CloseEditor(closeAllOpenEditors: false);
+ }
+
+ private void CloseAllToolStripMenuItemClick(object sender, EventArgs e)
+ {
+ CloseEditor(closeAllOpenEditors: true);
+ }
+
+ ///
+ /// Closes the current editor or all open editors in .
+ ///
+ ///
+ private void CloseEditor(bool closeAllOpenEditors)
+ {
+ if (closeAllOpenEditors)
+ {
+ // we have to copy the list because closing the editor will remove it from the list
+ List closinglist = Editors.OfType().ToList();
+ closinglist.ForEach(e => e.Close());
+ }
+ else
+ {
+ Close();
+ }
}
private void BtnEllipseClick(object sender, EventArgs e)
diff --git a/src/Greenshot/Languages/language-cs-CZ.xml b/src/Greenshot/Languages/language-cs-CZ.xml
index cc409c66f..5c9705ec9 100644
--- a/src/Greenshot/Languages/language-cs-CZ.xml
+++ b/src/Greenshot/Languages/language-cs-CZ.xml
@@ -86,6 +86,7 @@ Také bychom velmi ocenili, kdybyste zkontrolovali, zda tato chyba již není ev
Zrušit
Chyba při přístupu do schránky. Zkuste to prosím znovu.
Zavřít
+ Zavřít vše
Chcete uložit snímek?
Uložit snímek?
Potvrdit
diff --git a/src/Greenshot/Languages/language-da-DK.xml b/src/Greenshot/Languages/language-da-DK.xml
index b032e8aff..624a498e0 100644
--- a/src/Greenshot/Languages/language-da-DK.xml
+++ b/src/Greenshot/Languages/language-da-DK.xml
@@ -240,6 +240,9 @@ Detaljer om GNU General Public License:
Luk
+
+ Luk alle
+
Advarsel
diff --git a/src/Greenshot/Languages/language-de-DE.xml b/src/Greenshot/Languages/language-de-DE.xml
index b636da112..de519f680 100644
--- a/src/Greenshot/Languages/language-de-DE.xml
+++ b/src/Greenshot/Languages/language-de-DE.xml
@@ -86,6 +86,7 @@ schnell zu finden. Vielen Dank :)
Abbrechen
Fehler beim Zugriff auf die Zwischenablage. Bitte wiederholen Sie den Vorgang.
Schließen
+ Alles schließen
Möchten Sie den Screenshot speichern?
Bild speichern?
Bestätigen
diff --git a/src/Greenshot/Languages/language-en-US.xml b/src/Greenshot/Languages/language-en-US.xml
index 1403d3e9c..bf536f169 100644
--- a/src/Greenshot/Languages/language-en-US.xml
+++ b/src/Greenshot/Languages/language-en-US.xml
@@ -87,6 +87,7 @@ Also, we would highly appreciate if you checked whether a tracker item already e
Cancel
Error while accessing the clipboard. Please try again.
Close
+ Close all
Do you want to save the screenshot?
Save image?
Confirm
diff --git a/src/Greenshot/Languages/language-es-ES.xml b/src/Greenshot/Languages/language-es-ES.xml
index 0badf64a4..5dcd7e75f 100644
--- a/src/Greenshot/Languages/language-es-ES.xml
+++ b/src/Greenshot/Languages/language-es-ES.xml
@@ -73,6 +73,7 @@ Antes de crear un nuevo informe de error, te agradeceríamos que comprobaras que
Cancelar
Error accdeiendo al portapapeles. Por favor, inténtalo otra vez.
Cerrar
+ Cerrar todo
¿Guardar la captura?
¿Guardar imagen?
Confirmar
diff --git a/src/Greenshot/Languages/language-fr-FR.xml b/src/Greenshot/Languages/language-fr-FR.xml
index 4ef502438..d029bba02 100644
--- a/src/Greenshot/Languages/language-fr-FR.xml
+++ b/src/Greenshot/Languages/language-fr-FR.xml
@@ -85,6 +85,7 @@ De plus, nous apprécierions beaucoup que vous preniez la peine de vérifier si
Annuler
Une erreur s'est produite lors de l'accès au presse-papier. Veuillez réessayer.
Fermer
+ Fermer tout
Voulez-vous enregistrer la capture d'écran ?
Enregistrer l'image ?
Confirmer
diff --git a/src/Greenshot/Languages/language-it-IT.xml b/src/Greenshot/Languages/language-it-IT.xml
index 89d68c988..6f895fd49 100644
--- a/src/Greenshot/Languages/language-it-IT.xml
+++ b/src/Greenshot/Languages/language-it-IT.xml
@@ -91,6 +91,7 @@ Controlla i permessi di accesso per '{0}'.
Annulla
Errore durante l'accesso agli Appunti. Ritenta nuovamente.
Chiudi
+ Chiudi tutto
Vuoi salvare l'immagine?
Vuoi salvare l'immagine?
Conferma
diff --git a/src/Greenshot/Languages/language-nl-NL.xml b/src/Greenshot/Languages/language-nl-NL.xml
index d640b0a42..bd38ea3da 100644
--- a/src/Greenshot/Languages/language-nl-NL.xml
+++ b/src/Greenshot/Languages/language-nl-NL.xml
@@ -86,6 +86,7 @@ Controleer ook even of dit probleem mogelijk al gemeld is! Gebruik de zoekfuncti
Afbreken
Fout bij de toegang tot het klembord. Probeer het opnieuw.
Sluiten
+ Alles sluiten
Wilt u de schermopname opslaan?
Afbeelding opslaan?
Bevestigen
diff --git a/src/Greenshot/Languages/language-nn-NO.xml b/src/Greenshot/Languages/language-nn-NO.xml
index edd8f31e7..819ce4080 100644
--- a/src/Greenshot/Languages/language-nn-NO.xml
+++ b/src/Greenshot/Languages/language-nn-NO.xml
@@ -73,6 +73,7 @@ Me sett òg pris på om du ved hjelp av søkefunksjonen på sida kan sjekke om d
Avbryt
Kunne ikkje bruke utklyppstavla! Ver venleg og prøv att.
Lukk
+ Lukk alle
Vil du lagre skjermbildet?
Vil du lagre bildet?
Stadfest
diff --git a/src/Greenshot/Languages/language-pl-PL.xml b/src/Greenshot/Languages/language-pl-PL.xml
index 7f908dba8..39621d21f 100644
--- a/src/Greenshot/Languages/language-pl-PL.xml
+++ b/src/Greenshot/Languages/language-pl-PL.xml
@@ -86,6 +86,7 @@ Będziemy wdzięczni, jeśli najpierw sprawdzisz, czy takie zdarzenie nie zosta
Anuluj
Błąd przy próbie dostępu do schowka. Spróbuj ponownie.
Zamknij
+ Zamknij wszystkie
Czy chcesz zapisać zrzut ekranu?
Zapisać obraz?
Zatwierdź
diff --git a/src/Greenshot/Languages/language-pt-BR.xml b/src/Greenshot/Languages/language-pt-BR.xml
index e53603ccc..95a372e2d 100644
--- a/src/Greenshot/Languages/language-pt-BR.xml
+++ b/src/Greenshot/Languages/language-pt-BR.xml
@@ -82,6 +82,7 @@
Cancelar
Erro ao accesar a área de transferência. Por favor tente novamente.
Fechar
+ Fechar tudo
Deseja salvar a imagem capturada?
Salvar imagem?
Confirmar
diff --git a/src/Greenshot/Languages/language-pt-PT.xml b/src/Greenshot/Languages/language-pt-PT.xml
index 4da21743d..18514d151 100644
--- a/src/Greenshot/Languages/language-pt-PT.xml
+++ b/src/Greenshot/Languages/language-pt-PT.xml
@@ -85,6 +85,7 @@ Também apreciaremos muito se puder verificar se não existe já um relatório d
Cancelar
Erro ao aceder à área de transferência. Por favor tente novamente.
Fechar
+ Fechar tudo
Deseja guardar a imagem capturada?
Guardar imagem?
Confirmar
diff --git a/src/Greenshot/Languages/language-ru-RU.xml b/src/Greenshot/Languages/language-ru-RU.xml
index f9973f349..d158878fa 100644
--- a/src/Greenshot/Languages/language-ru-RU.xml
+++ b/src/Greenshot/Languages/language-ru-RU.xml
@@ -86,6 +86,7 @@ Greenshot поставляется БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Отмена
Ошибка при попытке доступа в буфер обмена. Пожалуйста, попробуйте снова.
Закрыть
+ Закрыть все
Сохранить снимок экрана?
Сохранить изображение?
Подтвердить
diff --git a/src/Greenshot/Languages/language-sv-SE.xml b/src/Greenshot/Languages/language-sv-SE.xml
index c5b1517e2..c47888370 100644
--- a/src/Greenshot/Languages/language-sv-SE.xml
+++ b/src/Greenshot/Languages/language-sv-SE.xml
@@ -86,6 +86,7 @@ Innan du skickar uppskattar vi verkligen om du kontrollerar om felet redan blivi
Avbryt
Ett fel uppstod vid åtkomst av urklipp. Försök igen.
Stäng
+ Stäng alla
Vill du spara skärmdumpen?
Spara bild?
Godkänn