From 9146caa7aec9f5bd15a3649ef3bd651b35af06dd Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Fri, 27 Feb 2015 21:06:05 +0100 Subject: [PATCH] Added patch to display animations for SHFileOperation progress dialog. --- debian/changelog | 1 + patches/patchinstall.sh | 2 + ...how-animation-during-SHFileOperation.patch | 62 +++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 patches/shell32-Progress_Dialog/0004-shell32-Show-animation-during-SHFileOperation.patch diff --git a/debian/changelog b/debian/changelog index c2d23396..a0fde36d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -15,6 +15,7 @@ wine-staging (1.7.38) UNRELEASED; urgency=low * Added patches for ntoskrnl.ProbeFor{Read,Write}. * Added patch for support of shell32 file operation progress dialog. * Added patch for basic implementation of job objects. + * Added patch to display animations for SHFileOperation progress dialog. * Removed patch to properly call DriverUnload when unloading device drivers (accepted upstream). * Removed patch to allow Accept-Encoding for HTTP/1.0 in wininet (accepted upstream). * Removed patch to declare pDirectInputCreateEx in a MSVC compatible way (accepted upstream). diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 69462e72..4fc2a9e9 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -3437,10 +3437,12 @@ if test "$enable_shell32_Progress_Dialog" -eq 1; then patch_apply shell32-Progress_Dialog/0001-shell32-Correct-indentation-in-shfileop.c.patch patch_apply shell32-Progress_Dialog/0002-shell32-Pass-FILE_INFORMATION-into-SHNotify-function.patch patch_apply shell32-Progress_Dialog/0003-shell32-Implement-file-operation-progress-dialog.patch + patch_apply shell32-Progress_Dialog/0004-shell32-Show-animation-during-SHFileOperation.patch ( echo '+ { "Michael Müller", "shell32: Correct indentation in shfileop.c.", 1 },'; echo '+ { "Michael Müller", "shell32: Pass FILE_INFORMATION into SHNotify* functions.", 1 },'; echo '+ { "Michael Müller", "shell32: Implement file operation progress dialog.", 1 },'; + echo '+ { "Michael Müller", "shell32: Show animation during SHFileOperation.", 1 },'; ) >> "$patchlist" fi diff --git a/patches/shell32-Progress_Dialog/0004-shell32-Show-animation-during-SHFileOperation.patch b/patches/shell32-Progress_Dialog/0004-shell32-Show-animation-during-SHFileOperation.patch new file mode 100644 index 00000000..0fa27f6e --- /dev/null +++ b/patches/shell32-Progress_Dialog/0004-shell32-Show-animation-during-SHFileOperation.patch @@ -0,0 +1,62 @@ +From 29f275d5e7b270af22e40934d29237adc4641be0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michael=20M=C3=BCller?= +Date: Fri, 27 Feb 2015 17:57:05 +0100 +Subject: shell32: Show animation during SHFileOperation. + +--- + dlls/shell32/shlfileop.c | 19 ++++++++++++------- + 1 file changed, 12 insertions(+), 7 deletions(-) + +diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c +index cef2246..05fade1 100644 +--- a/dlls/shell32/shlfileop.c ++++ b/dlls/shell32/shlfileop.c +@@ -1992,7 +1992,7 @@ static void progressbar_calc_totalsize(FILE_OPERATION *op, const FILE_LIST *from + static void progressbar_update_title(FILE_OPERATION *op) + { + WCHAR buf[64]; +- UINT title_id, builder_id; ++ UINT title_id, builder_id, animation_id; + + if (op->progress == NULL) + return; +@@ -2000,18 +2000,21 @@ static void progressbar_update_title(FILE_OPERATION *op) + switch (op->req->wFunc) + { + case FO_COPY: +- title_id = IDS_FILEOP_COPYING; +- builder_id = IDS_FILEOP_FROM_TO; ++ title_id = IDS_FILEOP_COPYING; ++ builder_id = IDS_FILEOP_FROM_TO; ++ animation_id = IDR_AVI_FILECOPY; + break; + + case FO_DELETE: +- title_id = IDS_FILEOP_DELETING; +- builder_id = IDS_FILEOP_FROM; ++ title_id = IDS_FILEOP_DELETING; ++ builder_id = IDS_FILEOP_FROM; ++ animation_id = IDR_AVI_FILEDELETE; + break; + + case FO_MOVE: +- title_id = IDS_FILEOP_MOVING; +- builder_id = IDS_FILEOP_FROM_TO; ++ title_id = IDS_FILEOP_MOVING; ++ builder_id = IDS_FILEOP_FROM_TO; ++ animation_id = IDR_AVI_FILEMOVE; + break; + + default: +@@ -2026,6 +2029,8 @@ static void progressbar_update_title(FILE_OPERATION *op) + + LoadStringW(shell32_hInstance, IDS_FILEOP_PREFLIGHT, buf, sizeof(buf)/sizeof(WCHAR)); + IProgressDialog_SetLine(op->progress, 1, buf, FALSE, NULL); ++ ++ IProgressDialog_SetAnimation(op->progress, shell32_hInstance, animation_id); + } + + static void progressbar_update_files(FILE_OPERATION *op, LPCWSTR src, LPCWSTR dst) +-- +2.3.0 +