https://git.reactos.org/?p=reactos.git;a=commitdiff;h=8ef8e41cc9483f7665666…
commit 8ef8e41cc9483f7665666641cfdd48f5d71a1a7c
Author: Denis Malikov <Getequ(a)users.noreply.github.com>
AuthorDate: Wed Dec 15 21:42:47 2021 +0700
Commit: GitHub <noreply(a)github.com>
CommitDate: Wed Dec 15 17:42:47 2021 +0300
[SHELL32] Show error message if move or copy operation failed (#4155)
This allows user to know when there is not enough space on the target media,
when there is no permissions for the operation, or some other error.
CORE-9239
---
dll/win32/shell32/lang/bg-BG.rc | 2 ++
dll/win32/shell32/lang/ca-ES.rc | 2 ++
dll/win32/shell32/lang/cs-CZ.rc | 2 ++
dll/win32/shell32/lang/da-DK.rc | 2 ++
dll/win32/shell32/lang/de-DE.rc | 2 ++
dll/win32/shell32/lang/el-GR.rc | 2 ++
dll/win32/shell32/lang/en-GB.rc | 2 ++
dll/win32/shell32/lang/en-US.rc | 2 ++
dll/win32/shell32/lang/es-ES.rc | 2 ++
dll/win32/shell32/lang/et-EE.rc | 2 ++
dll/win32/shell32/lang/fi-FI.rc | 2 ++
dll/win32/shell32/lang/fr-FR.rc | 2 ++
dll/win32/shell32/lang/he-IL.rc | 2 ++
dll/win32/shell32/lang/hi-IN.rc | 2 ++
dll/win32/shell32/lang/hu-HU.rc | 2 ++
dll/win32/shell32/lang/id-ID.rc | 2 ++
dll/win32/shell32/lang/it-IT.rc | 2 ++
dll/win32/shell32/lang/ja-JP.rc | 2 ++
dll/win32/shell32/lang/ko-KR.rc | 2 ++
dll/win32/shell32/lang/nl-NL.rc | 2 ++
dll/win32/shell32/lang/no-NO.rc | 2 ++
dll/win32/shell32/lang/pl-PL.rc | 2 ++
dll/win32/shell32/lang/pt-BR.rc | 2 ++
dll/win32/shell32/lang/pt-PT.rc | 2 ++
dll/win32/shell32/lang/ro-RO.rc | 2 ++
dll/win32/shell32/lang/ru-RU.rc | 6 +++--
dll/win32/shell32/lang/sk-SK.rc | 2 ++
dll/win32/shell32/lang/sl-SI.rc | 2 ++
dll/win32/shell32/lang/sq-AL.rc | 2 ++
dll/win32/shell32/lang/sv-SE.rc | 2 ++
dll/win32/shell32/lang/tr-TR.rc | 2 ++
dll/win32/shell32/lang/uk-UA.rc | 2 ++
dll/win32/shell32/lang/zh-CN.rc | 2 ++
dll/win32/shell32/lang/zh-TW.rc | 2 ++
dll/win32/shell32/shlfileop.cpp | 51 +++++++++++++++++++++++++++++++++++++++++
dll/win32/shell32/shresdef.h | 2 ++
36 files changed, 123 insertions(+), 2 deletions(-)
diff --git a/dll/win32/shell32/lang/bg-BG.rc b/dll/win32/shell32/lang/bg-BG.rc
index 29053c2ddcd..703d1837dad 100644
--- a/dll/win32/shell32/lang/bg-BG.rc
+++ b/dll/win32/shell32/lang/bg-BG.rc
@@ -806,6 +806,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/ca-ES.rc b/dll/win32/shell32/lang/ca-ES.rc
index 6262d5a19ee..12063262bc3 100644
--- a/dll/win32/shell32/lang/ca-ES.rc
+++ b/dll/win32/shell32/lang/ca-ES.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/cs-CZ.rc b/dll/win32/shell32/lang/cs-CZ.rc
index dafe2216d03..187c0c2c892 100644
--- a/dll/win32/shell32/lang/cs-CZ.rc
+++ b/dll/win32/shell32/lang/cs-CZ.rc
@@ -811,6 +811,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Složku '%1' nebylo možné vytvořit"
IDS_CREATEFOLDER_CAPTION "Složku nebylo možné vytvořit"
diff --git a/dll/win32/shell32/lang/da-DK.rc b/dll/win32/shell32/lang/da-DK.rc
index 3e6baa9b2ae..6f41e1b47df 100644
--- a/dll/win32/shell32/lang/da-DK.rc
+++ b/dll/win32/shell32/lang/da-DK.rc
@@ -811,6 +811,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/de-DE.rc b/dll/win32/shell32/lang/de-DE.rc
index f176b284e9b..e9aa547ecff 100644
--- a/dll/win32/shell32/lang/de-DE.rc
+++ b/dll/win32/shell32/lang/de-DE.rc
@@ -806,6 +806,8 @@ BEGIN
IDS_COPYERRORSAME "'%s' kann nicht kopiert werden: Quell- und Zieldatei sind identisch."
IDS_MOVEERRORSUBFOLDER "'%s' kann nicht verschoben werden: Der Zielorder ist ein Unterordner des Quellordners."
IDS_COPYERRORSUBFOLDER "'%s' kann nicht kopiert werden: Der Zielorder ist ein Unterordner des Quellordners."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED " Der Ordner kann nicht erstellt werden '%1'"
IDS_CREATEFOLDER_CAPTION " Der Ordner kann nicht erstellt werden."
diff --git a/dll/win32/shell32/lang/el-GR.rc b/dll/win32/shell32/lang/el-GR.rc
index 813d78e3989..3aaa46cf184 100644
--- a/dll/win32/shell32/lang/el-GR.rc
+++ b/dll/win32/shell32/lang/el-GR.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/en-GB.rc b/dll/win32/shell32/lang/en-GB.rc
index e8400de4545..cc4dad3cbe3 100644
--- a/dll/win32/shell32/lang/en-GB.rc
+++ b/dll/win32/shell32/lang/en-GB.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/en-US.rc b/dll/win32/shell32/lang/en-US.rc
index 5d36961e0cd..757e4ea2bc3 100644
--- a/dll/win32/shell32/lang/en-US.rc
+++ b/dll/win32/shell32/lang/en-US.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/es-ES.rc b/dll/win32/shell32/lang/es-ES.rc
index 596203601f0..30437706199 100644
--- a/dll/win32/shell32/lang/es-ES.rc
+++ b/dll/win32/shell32/lang/es-ES.rc
@@ -814,6 +814,8 @@ BEGIN
IDS_COPYERRORSAME "Imposible copiar '%s': El archivo de origen y el de destino son el mismo."
IDS_MOVEERRORSUBFOLDER "Imposible mover '%s': La carpeta de destino es un subdirectorio de la de origen."
IDS_COPYERRORSUBFOLDER "Imposible copiar '%s': La carpeta de destino es un subdirectorio de la de origen."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "No se pudo crear la carpeta '%1'"
IDS_CREATEFOLDER_CAPTION "No se pudo crear la carpeta"
diff --git a/dll/win32/shell32/lang/et-EE.rc b/dll/win32/shell32/lang/et-EE.rc
index e36e88aabc4..d77888fa7bb 100644
--- a/dll/win32/shell32/lang/et-EE.rc
+++ b/dll/win32/shell32/lang/et-EE.rc
@@ -812,6 +812,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Ei saa luua kausta '%1'"
IDS_CREATEFOLDER_CAPTION "Ei saa kausta luua"
diff --git a/dll/win32/shell32/lang/fi-FI.rc b/dll/win32/shell32/lang/fi-FI.rc
index c37618c3af9..a20594097ed 100644
--- a/dll/win32/shell32/lang/fi-FI.rc
+++ b/dll/win32/shell32/lang/fi-FI.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/fr-FR.rc b/dll/win32/shell32/lang/fr-FR.rc
index 86b1b69717e..fdcb8e66a01 100644
--- a/dll/win32/shell32/lang/fr-FR.rc
+++ b/dll/win32/shell32/lang/fr-FR.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Impossible de copier '%s' : Les noms des fichiers source et destination sont identiques."
IDS_MOVEERRORSUBFOLDER "Impossible de déplacer '%s' : Le dossier de destination est un sous-dossier du dossier source."
IDS_COPYERRORSUBFOLDER "Impossible de copier '%s' : Le dossier de destination est un sous-dossier du dossier source."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Impossible de créer le dossier '%1'"
IDS_CREATEFOLDER_CAPTION "Impossible de créer un dossier"
diff --git a/dll/win32/shell32/lang/he-IL.rc b/dll/win32/shell32/lang/he-IL.rc
index b8e3ce71d08..f086b8abb10 100644
--- a/dll/win32/shell32/lang/he-IL.rc
+++ b/dll/win32/shell32/lang/he-IL.rc
@@ -807,6 +807,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/hi-IN.rc b/dll/win32/shell32/lang/hi-IN.rc
index cb6ad494f48..3096d6999a3 100644
--- a/dll/win32/shell32/lang/hi-IN.rc
+++ b/dll/win32/shell32/lang/hi-IN.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "फ़ोल्डर '%1' बनाने में असमर्थ"
IDS_CREATEFOLDER_CAPTION "फ़ोल्डर बनाने में असमर्थ"
diff --git a/dll/win32/shell32/lang/hu-HU.rc b/dll/win32/shell32/lang/hu-HU.rc
index c2ec4d550d6..45febcd796d 100644
--- a/dll/win32/shell32/lang/hu-HU.rc
+++ b/dll/win32/shell32/lang/hu-HU.rc
@@ -804,6 +804,8 @@ BEGIN
IDS_COPYERRORSAME "'%s' nem másolható: a forrás- és célfájl ugyanaz."
IDS_MOVEERRORSUBFOLDER "'%s' nem mozgatható: a célmappa a forrásmappa egyik almappája."
IDS_COPYERRORSUBFOLDER "'%s' nem másolható: a célmappa a forrásmappa egyik almappája."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Nem sikerült a(z) '%1' mappa létrehozása."
IDS_CREATEFOLDER_CAPTION "Nem sikerült létrehozni a mappát"
diff --git a/dll/win32/shell32/lang/id-ID.rc b/dll/win32/shell32/lang/id-ID.rc
index 4c8e9a72e04..03a6d9a123e 100644
--- a/dll/win32/shell32/lang/id-ID.rc
+++ b/dll/win32/shell32/lang/id-ID.rc
@@ -802,6 +802,8 @@ BEGIN
IDS_COPYERRORSAME "Tidak bisa menyalin '%s': Nama berkas asal dan tujuan sama."
IDS_MOVEERRORSUBFOLDER "Tidak bisa memindahkan '%s': Folder tujuan merupakan subfolder dari folder asal."
IDS_COPYERRORSUBFOLDER "Tidak bisa menyalin '%s': Folder tujuan merupakan subfolder dari folder asal."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Tidak bisa membuat folder folder '%1'"
IDS_CREATEFOLDER_CAPTION "Tidak bisa membuat folder"
diff --git a/dll/win32/shell32/lang/it-IT.rc b/dll/win32/shell32/lang/it-IT.rc
index 6f1093cd913..615ff750298 100644
--- a/dll/win32/shell32/lang/it-IT.rc
+++ b/dll/win32/shell32/lang/it-IT.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/ja-JP.rc b/dll/win32/shell32/lang/ja-JP.rc
index 763f17f4779..ff6eb6994a1 100644
--- a/dll/win32/shell32/lang/ja-JP.rc
+++ b/dll/win32/shell32/lang/ja-JP.rc
@@ -802,6 +802,8 @@ BEGIN
IDS_COPYERRORSAME "コピーできません '%s': コピー元とコピー先のファイル名が同じです。"
IDS_MOVEERRORSUBFOLDER "移動できません '%s': 移動先のフォルダは移動元のフォルダのサブフォルダです。"
IDS_COPYERRORSUBFOLDER "コピーできません '%s': コピー先のフォルダはコピー元のフォルダのサブフォルダです。"
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "フォルダ '%1' を作成できません"
IDS_CREATEFOLDER_CAPTION "フォルダを作成できません"
diff --git a/dll/win32/shell32/lang/ko-KR.rc b/dll/win32/shell32/lang/ko-KR.rc
index 8939d0e7947..8f77796c636 100644
--- a/dll/win32/shell32/lang/ko-KR.rc
+++ b/dll/win32/shell32/lang/ko-KR.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/nl-NL.rc b/dll/win32/shell32/lang/nl-NL.rc
index 16cf100515b..d86abbe3566 100644
--- a/dll/win32/shell32/lang/nl-NL.rc
+++ b/dll/win32/shell32/lang/nl-NL.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/no-NO.rc b/dll/win32/shell32/lang/no-NO.rc
index 086d403e6da..7eaca4b45e9 100644
--- a/dll/win32/shell32/lang/no-NO.rc
+++ b/dll/win32/shell32/lang/no-NO.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/pl-PL.rc b/dll/win32/shell32/lang/pl-PL.rc
index 9214d71d909..dec9704c99b 100644
--- a/dll/win32/shell32/lang/pl-PL.rc
+++ b/dll/win32/shell32/lang/pl-PL.rc
@@ -811,6 +811,8 @@ BEGIN
IDS_COPYERRORSAME "Nie można skopiować '%s': Nazwy plików źródłowego i docelowego są takie same."
IDS_MOVEERRORSUBFOLDER "Nie można przenieść '%s': Folder docelowy jest podfolderem folderu źródłowego."
IDS_COPYERRORSUBFOLDER "Nie można skopiować '%s': Folder docelowy jest podfolderem folderu źródłowego."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Nie można utworzyć folderu '%1'"
IDS_CREATEFOLDER_CAPTION "Nie można utworzyć folderu"
diff --git a/dll/win32/shell32/lang/pt-BR.rc b/dll/win32/shell32/lang/pt-BR.rc
index 614f1ef8dc0..922a741bb01 100644
--- a/dll/win32/shell32/lang/pt-BR.rc
+++ b/dll/win32/shell32/lang/pt-BR.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/pt-PT.rc b/dll/win32/shell32/lang/pt-PT.rc
index 2d58a03cd79..84ce916ffa8 100644
--- a/dll/win32/shell32/lang/pt-PT.rc
+++ b/dll/win32/shell32/lang/pt-PT.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Impossivel copiar '%s': Os nomes dos arquivos de origem e de destino são os mesmos."
IDS_MOVEERRORSUBFOLDER "Impossivel mover '%s': A pasta de destino é uma subpasta da pasta de origem."
IDS_COPYERRORSUBFOLDER "Impossivel copiar '%s': A pasta de destino é uma subpasta da pasta de origem."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Impossivel criar pasta '%1'"
IDS_CREATEFOLDER_CAPTION "Impossivel criar pasta"
diff --git a/dll/win32/shell32/lang/ro-RO.rc b/dll/win32/shell32/lang/ro-RO.rc
index 1de40d0d214..52262c0e66e 100644
--- a/dll/win32/shell32/lang/ro-RO.rc
+++ b/dll/win32/shell32/lang/ro-RO.rc
@@ -807,6 +807,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Nu poate fi creat un dosar cu numele „%1”"
IDS_CREATEFOLDER_CAPTION "Nu poate fi creat dosar"
diff --git a/dll/win32/shell32/lang/ru-RU.rc b/dll/win32/shell32/lang/ru-RU.rc
index 8c8fdcdc7b7..fd4b752c8b8 100644
--- a/dll/win32/shell32/lang/ru-RU.rc
+++ b/dll/win32/shell32/lang/ru-RU.rc
@@ -805,13 +805,15 @@ BEGIN
IDS_OPENFILELOCATION "Открыть &расположение объекта"
IDS_SENDTO_MENU "Отправит&ь"
- IDS_MOVEERRORTITLE "Error Moving File or Folder"
- IDS_COPYERRORTITLE "Error Copying File or Folder"
+ IDS_MOVEERRORTITLE "Ошибка при перемещении папки или файла"
+ IDS_COPYERRORTITLE "Ошибка при копировании папки или файла"
IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Не удаётся переместить '%s': %s"
+ IDS_COPYERROR "Не удаётся скопировать '%s': %s"
IDS_CREATEFOLDER_DENIED "Невозможно создать папку '%1'"
IDS_CREATEFOLDER_CAPTION "Невозможно создать папку"
diff --git a/dll/win32/shell32/lang/sk-SK.rc b/dll/win32/shell32/lang/sk-SK.rc
index 2bfb217380d..f880a915846 100644
--- a/dll/win32/shell32/lang/sk-SK.rc
+++ b/dll/win32/shell32/lang/sk-SK.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/sl-SI.rc b/dll/win32/shell32/lang/sl-SI.rc
index a7f42e94382..d2a99c525e6 100644
--- a/dll/win32/shell32/lang/sl-SI.rc
+++ b/dll/win32/shell32/lang/sl-SI.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/sq-AL.rc b/dll/win32/shell32/lang/sq-AL.rc
index 32c275cc326..bb63c6f5f8c 100644
--- a/dll/win32/shell32/lang/sq-AL.rc
+++ b/dll/win32/shell32/lang/sq-AL.rc
@@ -809,6 +809,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/sv-SE.rc b/dll/win32/shell32/lang/sv-SE.rc
index 915ef081f52..5fd6a37ceac 100644
--- a/dll/win32/shell32/lang/sv-SE.rc
+++ b/dll/win32/shell32/lang/sv-SE.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Kunde inte skapa mappen '%1'"
IDS_CREATEFOLDER_CAPTION "Kunde inte skapa mapp"
diff --git a/dll/win32/shell32/lang/tr-TR.rc b/dll/win32/shell32/lang/tr-TR.rc
index 52d060c06d9..aaaf53eabd4 100644
--- a/dll/win32/shell32/lang/tr-TR.rc
+++ b/dll/win32/shell32/lang/tr-TR.rc
@@ -807,6 +807,8 @@ BEGIN
IDS_COPYERRORSAME "'%s' kopyalanamıyor: Kaynak ve hedef dosya adları aynı."
IDS_MOVEERRORSUBFOLDER "'%s' taşınamıyor: Hedef dizin, kaynak dizinin bir alt dizinidir."
IDS_COPYERRORSUBFOLDER "'%s' kopyalanamıyor: Hedef dizin, kaynak dizinin bir alt dizinidir."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED """%1"" dizini oluşturulamıyor."
IDS_CREATEFOLDER_CAPTION "Dizin Oluşturulamıyor"
diff --git a/dll/win32/shell32/lang/uk-UA.rc b/dll/win32/shell32/lang/uk-UA.rc
index 6a465c79edf..e03599d3be3 100644
--- a/dll/win32/shell32/lang/uk-UA.rc
+++ b/dll/win32/shell32/lang/uk-UA.rc
@@ -805,6 +805,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "Не вдалося створити папку '%1'"
IDS_CREATEFOLDER_CAPTION "Не вдалося створити папку"
diff --git a/dll/win32/shell32/lang/zh-CN.rc b/dll/win32/shell32/lang/zh-CN.rc
index cafd0a4dff4..42ae713d7ef 100644
--- a/dll/win32/shell32/lang/zh-CN.rc
+++ b/dll/win32/shell32/lang/zh-CN.rc
@@ -813,6 +813,8 @@ BEGIN
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "无法创建文件夹 '%1'"
IDS_CREATEFOLDER_CAPTION "无法创建文件夹"
diff --git a/dll/win32/shell32/lang/zh-TW.rc b/dll/win32/shell32/lang/zh-TW.rc
index 064076cd7a5..8e1e75b9d01 100644
--- a/dll/win32/shell32/lang/zh-TW.rc
+++ b/dll/win32/shell32/lang/zh-TW.rc
@@ -813,6 +813,8 @@ BEGIN
IDS_COPYERRORSAME "無法複製「%s」:來源及目的地的檔案名稱相同。"
IDS_MOVEERRORSUBFOLDER "無法移動「%s」:目的資料夾是來源資料夾的子資料夾。"
IDS_COPYERRORSUBFOLDER "無法複製「%s」:目的資料夾是來源資料夾的子資料夾。"
+ IDS_MOVEERROR "Cannot move '%s': %s"
+ IDS_COPYERROR "Cannot copy '%s': %s"
IDS_CREATEFOLDER_DENIED "無法建立資料夾「%1」"
IDS_CREATEFOLDER_CAPTION "無法建立資料夾"
diff --git a/dll/win32/shell32/shlfileop.cpp b/dll/win32/shell32/shlfileop.cpp
index 8fd4179ba93..59aa0cf2b09 100644
--- a/dll/win32/shell32/shlfileop.cpp
+++ b/dll/win32/shell32/shlfileop.cpp
@@ -663,6 +663,48 @@ EXTERN_C DWORD WINAPI Win32DeleteFileW(LPCWSTR path)
return (SHNotifyDeleteFileW(NULL, path) == ERROR_SUCCESS);
}
+#ifdef __REACTOS__
+/************************************************************************
+ * CheckForError [internal]
+ *
+ * Show message box if operation failed
+ *
+ * PARAMS
+ * op [I] File Operation context
+ * error [I] Error code
+ * src [I] Source file full name
+ *
+ */
+static DWORD CheckForError(FILE_OPERATION *op, DWORD error, LPCWSTR src)
+{
+ CStringW strTitle, strMask, strText;
+ LPWSTR lpMsgBuffer;
+
+ if (error == ERROR_SUCCESS || (op->req->fFlags & (FOF_NOERRORUI | FOF_SILENT)))
+ goto exit;
+
+ strTitle.LoadStringW(op->req->wFunc == FO_COPY ? IDS_COPYERRORTITLE : IDS_MOVEERRORTITLE);
+
+ FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
+ NULL,
+ error,
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+ (LPWSTR)&lpMsgBuffer,
+ 0,
+ NULL);
+
+ strText.Format(op->req->wFunc == FO_COPY ? IDS_COPYERROR : IDS_MOVEERROR,
+ PathFindFileNameW(src),
+ lpMsgBuffer);
+
+ MessageBoxW(op->req->hwnd, strText, strTitle, MB_ICONERROR);
+ LocalFree(lpMsgBuffer);
+
+exit:
+ return error;
+}
+#endif
+
/************************************************************************
* SHNotifyMoveFile [internal]
*
@@ -710,7 +752,12 @@ static DWORD SHNotifyMoveFileW(FILE_OPERATION *op, LPCWSTR src, LPCWSTR dest, BO
SHChangeNotify(isdir ? SHCNE_RMDIR : SHCNE_DELETE, SHCNF_PATHW, src, NULL);
return ERROR_SUCCESS;
}
+
+#ifdef __REACTOS__
+ return CheckForError(op, GetLastError(), src);
+#else
return GetLastError();
+#endif
}
/************************************************************************
@@ -757,7 +804,11 @@ static DWORD SHNotifyCopyFileW(FILE_OPERATION *op, LPCWSTR src, LPCWSTR dest, BO
return ERROR_SUCCESS;
}
+#ifdef __REACTOS__
+ return CheckForError(op, GetLastError(), src);
+#else
return GetLastError();
+#endif
}
/*************************************************************************
diff --git a/dll/win32/shell32/shresdef.h b/dll/win32/shell32/shresdef.h
index dcad860d37f..b6bb348d2ba 100644
--- a/dll/win32/shell32/shresdef.h
+++ b/dll/win32/shell32/shresdef.h
@@ -250,6 +250,8 @@
#define IDS_COPYERRORSAME 348
#define IDS_MOVEERRORSUBFOLDER 349
#define IDS_COPYERRORSUBFOLDER 350
+#define IDS_MOVEERROR 351
+#define IDS_COPYERROR 352
#define IDS_MENU_EMPTY 34561
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b7fa746172844f23856b1…
commit b7fa746172844f23856b12cb57087902134815a2
Author: Rubén Mendoza Luna <rbm3ndozal(a)gmail.com>
AuthorDate: Mon Dec 13 15:11:27 2021 -0600
Commit: Stanislav Motylkov <x86corez(a)gmail.com>
CommitDate: Tue Dec 14 03:22:44 2021 +0300
[HELP] Fix (tr-TR) rc sporadic compilation error on VS (#4162)
Fix (tr-TR) resource file compilation error RC2102 on VS2015 and 2017.
Based on the work done at CORE-7405, moves the string split location so
the first part of the message isn't too long anymore.
CORE-17910
---
base/applications/cmdutils/help/lang/tr-TR.rc | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/base/applications/cmdutils/help/lang/tr-TR.rc b/base/applications/cmdutils/help/lang/tr-TR.rc
index 9479d5c91cc..ead3370d2ec 100644
--- a/base/applications/cmdutils/help/lang/tr-TR.rc
+++ b/base/applications/cmdutils/help/lang/tr-TR.rc
@@ -44,8 +44,8 @@ IF Toplu iş dosyalarında şartlı eşleşmeyi gerçekleştirir.\n\
LABEL Bir diskin birim etiketini oluşturur, değiştirir ya da siler.\n\
MD Bir dizin oluşturur.\n\
MKDIR Bir dizin oluşturur.\n\
-MKLINK Bir dosya dizisi bağlantı nesnesi oluşturur.\n\
-MOVE Bir dizinden bir ya da daha çok dosyayı başka bir dizine taşır.\n\
+MKLINK Bir dosya dizisi bağlantı nesnesi oluşturur.\n"
+ IDS_HELP2 "MOVE Bir dizinden bir ya da daha çok dosyayı başka bir dizine taşır.\n\
PATH Çalıştırılabilir dosyalar için varsayılan arama yolunu görüntüler ya da\n\
yeni bir arama yolu oluşturur.\n\
PAUSE Bir toplu iş dosyasında işlemeyi askıya alır ve bir ileti görüntüler.\n\
@@ -62,8 +62,8 @@ RMDIR Bir dizin siler.\n\
SCREEN İmleci taşır ve isteğe bağlı olarak olarak metin yazdır.\n\
SET ReactOS çevresel değişkenlerini görüntüler, ayarlar ya da kaldırır.\n\
SHIFT Toplu iş dosyalarındaki yerine konulabilir değişkenlerin konumunu\n\
- değiştirir.\n"
- IDS_HELP2 "START Belirtilen bir programı ya da komutu çalıştırmak için ayrı bir\n\
+ değiştirir.\n\
+START Belirtilen bir programı ya da komutu çalıştırmak için ayrı bir\n\
pencere başlatır.\n\
Komut çalıştırır.\n\
TIME Sistem saatini görüntüler ya da ayarlar.\n\
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=067c08c23fe20f2dfa874…
commit 067c08c23fe20f2dfa874a0da7a48204e7a78683
Author: Jose Carlos Jesus <zecarlos1957(a)hotmail.com>
AuthorDate: Fri Dec 10 14:16:16 2021 +0000
Commit: GitHub <noreply(a)github.com>
CommitDate: Fri Dec 10 17:16:16 2021 +0300
[USETUP] Improve Portuguese (pt-PT) translation (#4131)
---
base/setup/usetup/lang/pt-PT.h | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/base/setup/usetup/lang/pt-PT.h b/base/setup/usetup/lang/pt-PT.h
index ab895a038de..3338810b0ac 100644
--- a/base/setup/usetup/lang/pt-PT.h
+++ b/base/setup/usetup/lang/pt-PT.h
@@ -1493,35 +1493,35 @@ static MUI_ENTRY ptPTBootLoaderEntries[] =
{
6,
8,
- "O instalador ir\240 configurar o gestor de inicializa\207\306o",
+ "O instalador ir\240 configurar o gestor de arranque.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
8,
12,
- "Instalar o gestor de inicializa\207\306o no disco r\241gido (MBR e VBR)",
+ "Instalar o gestor de arranque no disco r\241gido (MBR e VBR)",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
8,
13,
- "Instalar o gestor de inicializa\207\306o no disco r\241gido (apenas VBR)",
+ "Instalar o gestor de arranque no disco r\241gido (apenas VBR)",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
8,
14,
- "Instalar o gestor de inicializa\207\306o numa disquete",
+ "Instalar o gestor de arranque numa disquete",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
8,
15,
- "Saltar a instala\207\306o do gestor de inicializa\207\306o",
+ "Saltar a instala\207\306o do gestor de arranque",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=8c9b6fdb5cb1fc111d39a…
commit 8c9b6fdb5cb1fc111d39a66920fee5e4351e850f
Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com>
AuthorDate: Fri Dec 10 13:37:43 2021 +0900
Commit: GitHub <noreply(a)github.com>
CommitDate: Fri Dec 10 13:37:43 2021 +0900
[USER32] Partially fix freezing of Task Switcher (#4148)
- Use SendMessageTimeout instead of SendMessage.
- Use SwitchToThisWindow instead of BringWindowToTop.
- Use ShowWindowAsync instead of ShowWindow.
- Use SWP_ASYNCWINDOWPOS for SetWindowPos.
CORE-17894
---
win32ss/user/user32/controls/appswitch.c | 80 +++++++++++++++++---------------
1 file changed, 42 insertions(+), 38 deletions(-)
diff --git a/win32ss/user/user32/controls/appswitch.c b/win32ss/user/user32/controls/appswitch.c
index 03531acfe85..61dff7ab6f5 100644
--- a/win32ss/user/user32/controls/appswitch.c
+++ b/win32ss/user/user32/controls/appswitch.c
@@ -127,8 +127,8 @@ void MakeWindowActive(HWND hwnd)
if (IsIconic(hwnd))
PostMessageW(hwnd, WM_SYSCOMMAND, SC_RESTORE, 0);
- BringWindowToTop(hwnd); // same as: SetWindowPos(hwnd,HWND_TOP,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); ?
- SetForegroundWindow(hwnd);
+ // See also: https://microsoft.public.win32.programmer.ui.narkive.com/RqOdKqZ8/bringwind…
+ SwitchToThisWindow(hwnd, TRUE);
}
void CompleteSwitch(BOOL doSwitch)
@@ -139,7 +139,7 @@ void CompleteSwitch(BOOL doSwitch)
isOpen = FALSE;
TRACE("[ATbot] CompleteSwitch Hiding Window.\n");
- ShowWindow(switchdialog, SW_HIDE);
+ ShowWindowAsync(switchdialog, SW_HIDE);
if(doSwitch)
{
@@ -164,45 +164,49 @@ void CompleteSwitch(BOOL doSwitch)
BOOL CALLBACK EnumerateCallback(HWND window, LPARAM lParam)
{
- HICON hIcon;
+ HICON hIcon = NULL;
+ LRESULT bAlive;
- UNREFERENCED_PARAMETER(lParam);
+ UNREFERENCED_PARAMETER(lParam);
- // First try to get the big icon assigned to the window
- hIcon = (HICON)SendMessageW(window, WM_GETICON, ICON_BIG, 0);
- if (!hIcon)
- {
- // If no icon is assigned, try to get the icon assigned to the windows' class
- hIcon = (HICON)GetClassLongPtrW(window, GCL_HICON);
- if (!hIcon)
- {
- // If we still don't have an icon, see if we can do with the small icon,
- // or a default application icon
- hIcon = (HICON)SendMessageW(window, WM_GETICON, ICON_SMALL2, 0);
- if (!hIcon)
- {
- // using windows logo icon as default
- hIcon = gpsi->hIconWindows;
+ // First try to get the big icon assigned to the window
+#define ICON_TIMEOUT 100 // in milliseconds
+ bAlive = SendMessageTimeoutW(window, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG | SMTO_BLOCK,
+ ICON_TIMEOUT, (PDWORD_PTR)&hIcon);
+ if (!hIcon)
+ {
+ // If no icon is assigned, try to get the icon assigned to the windows' class
+ hIcon = (HICON)GetClassLongPtrW(window, GCL_HICON);
+ if (!hIcon)
+ {
+ // If we still don't have an icon, see if we can do with the small icon,
+ // or a default application icon
+ if (bAlive)
+ {
+ SendMessageTimeoutW(window, WM_GETICON, ICON_SMALL2, 0,
+ SMTO_ABORTIFHUNG | SMTO_BLOCK, ICON_TIMEOUT,
+ (PDWORD_PTR)&hIcon);
+ }
+#undef ICON_TIMEOUT
if (!hIcon)
{
- //if all attempts to get icon fails go to the next window
- return TRUE;
+ // using windows logo icon as default
+ hIcon = gpsi->hIconWindows;
+ if (!hIcon)
+ {
+ //if all attempts to get icon fails go to the next window
+ return TRUE;
+ }
}
- }
- }
- }
-
- windowList[windowCount] = window;
- iconList[windowCount] = CopyIcon(hIcon);
-
- windowCount++;
+ }
+ }
- // If we got to the max number of windows,
- // we won't be able to add any more
- if(windowCount >= MAX_WINDOWS)
- return FALSE;
+ windowList[windowCount] = window;
+ iconList[windowCount] = CopyIcon(hIcon);
+ windowCount++;
- return TRUE;
+ // If we got to the max number of windows, we won't be able to add any more
+ return (windowCount < MAX_WINDOWS);
}
static HWND GetNiceRootOwner(HWND hwnd)
@@ -491,7 +495,7 @@ BOOL ProcessHotKey(VOID)
selectedWindow = 1;
TRACE("[ATbot] HotKey Received. Opening window.\n");
- ShowWindow(switchdialog, SW_SHOWNORMAL);
+ ShowWindowAsync(switchdialog, SW_SHOWNORMAL);
MakeWindowActive(switchdialog);
isOpen = TRUE;
}
@@ -519,7 +523,7 @@ void RotateTasks(BOOL bShift)
{
SetWindowPos(hwndLast, HWND_TOP, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE |
- SWP_NOOWNERZORDER | SWP_NOREPOSITION);
+ SWP_NOOWNERZORDER | SWP_NOREPOSITION | SWP_ASYNCWINDOWPOS);
MakeWindowActive(hwndLast);
@@ -531,7 +535,7 @@ void RotateTasks(BOOL bShift)
{
SetWindowPos(hwndFirst, hwndLast, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE |
- SWP_NOOWNERZORDER | SWP_NOREPOSITION);
+ SWP_NOOWNERZORDER | SWP_NOREPOSITION | SWP_ASYNCWINDOWPOS);
MakeWindowActive(windowList[1]);