From 217f3f9ff3f8587fdf4d9fb209710d25ff4a6d72 Mon Sep 17 00:00:00 2001 From: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com> Date: Wed, 28 Jun 2023 21:57:03 +0200 Subject: [PATCH] =?UTF-8?q?Revert=20"[File=20Explorer=20Add-ons]=20Fix=20f?= =?UTF-8?q?ile=20preview=20pane=20flickering=20on=20f=E2=80=A6=20(#27093)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revert "[File Explorer Add-ons] Fix file preview pane flickering on file selection and resizing (#26660)" This reverts commit 9581cd7a273688bca0f42a9d11ecbc8fd079fd32. * Revert "[Build][FileExplorer]Add missing dwmapi.lib to Debug config (#26940)" This reverts commit d190934d61805100dd3ddaeaf2a6edf3b7ad87c9. * Revert "[Build]Fix dwamapi.lib linking error on VS (#26870)" This reverts commit c7f8b696a6fa36b785cf52e839a8d89ef17c2824. --- src/common/Themes/theme_helpers.cpp | 1 - .../MarkdownPreviewHandlerControl.cs | 4 +- .../MarkdownPreviewHandler/Settings.cs | 44 ------------------- .../MarkdownPreviewHandler.cpp | 4 -- .../MarkdownPreviewHandlerCpp.vcxproj | 7 +-- .../MonacoPreviewHandlerControl.cs | 9 ++-- .../MonacoPreviewHandler/Settings.cs | 2 +- .../MonacoPreviewHandler.cpp | 4 -- .../MonacoPreviewHandlerCpp.vcxproj | 7 +-- .../previewpane/SvgPreviewHandler/Settings.cs | 2 +- .../SvgPreviewHandler/SvgPreviewControl.cs | 11 ----- .../SvgPreviewHandler.cpp | 4 -- .../SvgPreviewHandlerCpp.vcxproj | 7 +-- .../powerpreview/powerpreviewConstants.h | 8 +--- 14 files changed, 13 insertions(+), 101 deletions(-) delete mode 100644 src/modules/previewpane/MarkdownPreviewHandler/Settings.cs diff --git a/src/common/Themes/theme_helpers.cpp b/src/common/Themes/theme_helpers.cpp index 4357a38228..c00bd92f76 100644 --- a/src/common/Themes/theme_helpers.cpp +++ b/src/common/Themes/theme_helpers.cpp @@ -3,7 +3,6 @@ #include "dwmapi.h" #include #include -#pragma comment (lib,"Dwmapi.lib") #define DWMWA_USE_IMMERSIVE_DARK_MODE 20 #define HKEY_WINDOWS_THEME L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize" diff --git a/src/modules/previewpane/MarkdownPreviewHandler/MarkdownPreviewHandlerControl.cs b/src/modules/previewpane/MarkdownPreviewHandler/MarkdownPreviewHandlerControl.cs index 4364792cf5..058b2dcb60 100644 --- a/src/modules/previewpane/MarkdownPreviewHandler/MarkdownPreviewHandlerControl.cs +++ b/src/modules/previewpane/MarkdownPreviewHandler/MarkdownPreviewHandlerControl.cs @@ -83,7 +83,6 @@ namespace Microsoft.PowerToys.PreviewHandler.Markdown /// public MarkdownPreviewHandlerControl() { - this.SetBackgroundColor(Settings.BackgroundColor); } /// @@ -122,12 +121,11 @@ namespace Microsoft.PowerToys.PreviewHandler.Markdown _infoBarDisplayed = true; } - string markdownHTML = FilePreviewCommon.MarkdownHelper.MarkdownHtml(fileText, Settings.GetTheme(), filePath, ImagesBlockedCallBack); + string markdownHTML = FilePreviewCommon.MarkdownHelper.MarkdownHtml(fileText, Common.UI.ThemeManager.GetWindowsBaseColor().ToLowerInvariant(), filePath, ImagesBlockedCallBack); _browser = new WebView2() { Dock = DockStyle.Fill, - DefaultBackgroundColor = Color.Transparent, }; var webView2Options = new CoreWebView2EnvironmentOptions("--block-new-web-contents"); diff --git a/src/modules/previewpane/MarkdownPreviewHandler/Settings.cs b/src/modules/previewpane/MarkdownPreviewHandler/Settings.cs deleted file mode 100644 index a69808d2ed..0000000000 --- a/src/modules/previewpane/MarkdownPreviewHandler/Settings.cs +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.PowerToys.PreviewHandler.Markdown -{ - internal sealed class Settings - { - /// - /// Gets the color of the window background. - /// Even though this is not a setting yet, it's retrieved from a "Settings" class to be aligned with other preview handlers that contain this setting. - /// It's possible it can be converted into a setting in the future. - /// - public static Color BackgroundColor - { - get - { - if (GetTheme() == "dark") - { - return Color.FromArgb(30, 30, 30); // #1e1e1e - } - else - { - return Color.White; - } - } - } - - /// - /// Returns the theme. - /// - /// Theme that should be used. - public static string GetTheme() - { - return Common.UI.ThemeManager.GetWindowsBaseColor().ToLowerInvariant(); - } - } -} diff --git a/src/modules/previewpane/MarkdownPreviewHandlerCpp/MarkdownPreviewHandler.cpp b/src/modules/previewpane/MarkdownPreviewHandlerCpp/MarkdownPreviewHandler.cpp index 29e48e192a..3a0210ff3a 100644 --- a/src/modules/previewpane/MarkdownPreviewHandlerCpp/MarkdownPreviewHandler.cpp +++ b/src/modules/previewpane/MarkdownPreviewHandlerCpp/MarkdownPreviewHandler.cpp @@ -1,7 +1,6 @@ #include "pch.h" #include "MarkdownPreviewHandler.h" #include "Generated Files/resource.h" -#include "../powerpreview/powerpreviewConstants.h" #include #include @@ -11,7 +10,6 @@ #include #include #include -#include extern HINSTANCE g_hInst; extern long g_cDllRef; @@ -205,8 +203,6 @@ IFACEMETHODIMP MarkdownPreviewHandler::Unload() IFACEMETHODIMP MarkdownPreviewHandler::SetBackgroundColor(COLORREF color) { - HBRUSH brush = CreateSolidBrush(WindowsColors::is_dark_mode() ? powerpreviewConstants::DARK_THEME_COLOR : powerpreviewConstants::LIGHT_THEME_COLOR); - SetClassLongPtr(m_hwndParent, GCLP_HBRBACKGROUND, reinterpret_cast(brush)); return S_OK; } diff --git a/src/modules/previewpane/MarkdownPreviewHandlerCpp/MarkdownPreviewHandlerCpp.vcxproj b/src/modules/previewpane/MarkdownPreviewHandlerCpp/MarkdownPreviewHandlerCpp.vcxproj index c72913f725..6866ce4f77 100644 --- a/src/modules/previewpane/MarkdownPreviewHandlerCpp/MarkdownPreviewHandlerCpp.vcxproj +++ b/src/modules/previewpane/MarkdownPreviewHandlerCpp/MarkdownPreviewHandlerCpp.vcxproj @@ -55,7 +55,7 @@ true false GlobalExportFunctions.def - Shlwapi.lib;dwmapi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) + Shlwapi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) @@ -76,7 +76,7 @@ true false GlobalExportFunctions.def - Shlwapi.lib;dwmapi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) + Shlwapi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) @@ -109,9 +109,6 @@ {6955446d-23f7-4023-9bb3-8657f904af99} - - {98537082-0fdb-40de-abd8-0dc5a4269bab} - diff --git a/src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandlerControl.cs b/src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandlerControl.cs index 2be1b0117a..d8ba4640a3 100644 --- a/src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandlerControl.cs +++ b/src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandlerControl.cs @@ -77,11 +77,6 @@ namespace Microsoft.PowerToys.PreviewHandler.Monaco /// private string _base64FileCode; - public MonacoPreviewHandlerControl() - { - this.SetBackground(); - } - [STAThread] public override void DoPreview(T dataSource) { @@ -100,12 +95,14 @@ namespace Microsoft.PowerToys.PreviewHandler.Monaco base.DoPreview(dataSource); + // Sets background color + SetBackground(); + // Starts loading screen InitializeLoadingScreen(); // New webview2 element _webView = new WebView2(); - _webView.DefaultBackgroundColor = Color.Transparent; // Checks if dataSource is a string if (!(dataSource is string filePath)) diff --git a/src/modules/previewpane/MonacoPreviewHandler/Settings.cs b/src/modules/previewpane/MonacoPreviewHandler/Settings.cs index dccfc2a5b4..6bc7a11e76 100644 --- a/src/modules/previewpane/MonacoPreviewHandler/Settings.cs +++ b/src/modules/previewpane/MonacoPreviewHandler/Settings.cs @@ -86,7 +86,7 @@ namespace Microsoft.PowerToys.PreviewHandler.Monaco { if (GetTheme() == "dark") { - return Color.FromArgb(30, 30, 30); // #1e1e1e + return System.Drawing.ColorTranslator.FromHtml("#1e1e1e"); } else { diff --git a/src/modules/previewpane/MonacoPreviewHandlerCpp/MonacoPreviewHandler.cpp b/src/modules/previewpane/MonacoPreviewHandlerCpp/MonacoPreviewHandler.cpp index 99afc45d0a..740769c5dd 100644 --- a/src/modules/previewpane/MonacoPreviewHandlerCpp/MonacoPreviewHandler.cpp +++ b/src/modules/previewpane/MonacoPreviewHandlerCpp/MonacoPreviewHandler.cpp @@ -1,6 +1,5 @@ #include "pch.h" #include "MonacoPreviewHandler.h" -#include "../powerpreview/powerpreviewConstants.h" #include #include @@ -10,7 +9,6 @@ #include #include #include -#include extern HINSTANCE g_hInst; extern long g_cDllRef; @@ -204,8 +202,6 @@ IFACEMETHODIMP MonacoPreviewHandler::Unload() IFACEMETHODIMP MonacoPreviewHandler::SetBackgroundColor(COLORREF color) { - HBRUSH brush = CreateSolidBrush(WindowsColors::is_dark_mode() ? powerpreviewConstants::DARK_THEME_COLOR : powerpreviewConstants::LIGHT_THEME_COLOR); - SetClassLongPtr(m_hwndParent, GCLP_HBRBACKGROUND, reinterpret_cast(brush)); return S_OK; } diff --git a/src/modules/previewpane/MonacoPreviewHandlerCpp/MonacoPreviewHandlerCpp.vcxproj b/src/modules/previewpane/MonacoPreviewHandlerCpp/MonacoPreviewHandlerCpp.vcxproj index 49498831f5..41098d30e4 100644 --- a/src/modules/previewpane/MonacoPreviewHandlerCpp/MonacoPreviewHandlerCpp.vcxproj +++ b/src/modules/previewpane/MonacoPreviewHandlerCpp/MonacoPreviewHandlerCpp.vcxproj @@ -51,7 +51,7 @@ true false GlobalExportFunctions.def - Shlwapi.lib;dwmapi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) + Shlwapi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) @@ -72,7 +72,7 @@ true false GlobalExportFunctions.def - Shlwapi.lib;dwmapi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) + Shlwapi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) @@ -103,9 +103,6 @@ {6955446d-23f7-4023-9bb3-8657f904af99} - - {98537082-0fdb-40de-abd8-0dc5a4269bab} - diff --git a/src/modules/previewpane/SvgPreviewHandler/Settings.cs b/src/modules/previewpane/SvgPreviewHandler/Settings.cs index d305bf26dc..ee307e1003 100644 --- a/src/modules/previewpane/SvgPreviewHandler/Settings.cs +++ b/src/modules/previewpane/SvgPreviewHandler/Settings.cs @@ -47,7 +47,7 @@ namespace SvgPreviewHandler { if (Common.UI.ThemeManager.GetWindowsBaseColor().ToLowerInvariant() == "dark") { - return Color.FromArgb(30, 30, 30); // #1e1e1e + return ColorTranslator.FromHtml("#1e1e1e"); } else { diff --git a/src/modules/previewpane/SvgPreviewHandler/SvgPreviewControl.cs b/src/modules/previewpane/SvgPreviewHandler/SvgPreviewControl.cs index 1b89137654..2cb2561729 100644 --- a/src/modules/previewpane/SvgPreviewHandler/SvgPreviewControl.cs +++ b/src/modules/previewpane/SvgPreviewHandler/SvgPreviewControl.cs @@ -20,11 +20,6 @@ namespace Microsoft.PowerToys.PreviewHandler.Svg /// public class SvgPreviewControl : FormHandlerControl { - /// - /// Settings class - /// - private readonly SvgPreviewHandler.Settings _settings = new(); - /// /// Generator for the actual preview file /// @@ -83,11 +78,6 @@ namespace Microsoft.PowerToys.PreviewHandler.Svg private string _webView2UserDataFolder = System.Environment.GetEnvironmentVariable("USERPROFILE") + "\\AppData\\LocalLow\\Microsoft\\PowerToys\\SvgPreview-Temp"; - public SvgPreviewControl() - { - this.SetBackgroundColor(_settings.ThemeColor); - } - /// /// Start the preview on the Control. /// @@ -209,7 +199,6 @@ namespace Microsoft.PowerToys.PreviewHandler.Svg private void AddWebViewControl(string svgData) { _browser = new WebView2(); - _browser.DefaultBackgroundColor = Color.Transparent; _browser.Dock = DockStyle.Fill; // Prevent new windows from being opened. diff --git a/src/modules/previewpane/SvgPreviewHandlerCpp/SvgPreviewHandler.cpp b/src/modules/previewpane/SvgPreviewHandlerCpp/SvgPreviewHandler.cpp index ba81c13e1d..21841329a0 100644 --- a/src/modules/previewpane/SvgPreviewHandlerCpp/SvgPreviewHandler.cpp +++ b/src/modules/previewpane/SvgPreviewHandlerCpp/SvgPreviewHandler.cpp @@ -1,6 +1,5 @@ #include "pch.h" #include "SvgPreviewHandler.h" -#include "../powerpreview/powerpreviewConstants.h" #include #include @@ -10,7 +9,6 @@ #include #include #include -#include extern HINSTANCE g_hInst; extern long g_cDllRef; @@ -200,8 +198,6 @@ IFACEMETHODIMP SvgPreviewHandler::Unload() IFACEMETHODIMP SvgPreviewHandler::SetBackgroundColor(COLORREF color) { - HBRUSH brush = CreateSolidBrush(WindowsColors::is_dark_mode() ? powerpreviewConstants::DARK_THEME_COLOR : powerpreviewConstants::LIGHT_THEME_COLOR); - SetClassLongPtr(m_hwndParent, GCLP_HBRBACKGROUND, reinterpret_cast(brush)); return S_OK; } diff --git a/src/modules/previewpane/SvgPreviewHandlerCpp/SvgPreviewHandlerCpp.vcxproj b/src/modules/previewpane/SvgPreviewHandlerCpp/SvgPreviewHandlerCpp.vcxproj index 5feea9530b..0bf8d3967f 100644 --- a/src/modules/previewpane/SvgPreviewHandlerCpp/SvgPreviewHandlerCpp.vcxproj +++ b/src/modules/previewpane/SvgPreviewHandlerCpp/SvgPreviewHandlerCpp.vcxproj @@ -51,7 +51,7 @@ true false GlobalExportFunctions.def - Shlwapi.lib;dwmapi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) + Shlwapi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) @@ -72,7 +72,7 @@ true false GlobalExportFunctions.def - Shlwapi.lib;dwmapi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) + Shlwapi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) @@ -103,9 +103,6 @@ {6955446d-23f7-4023-9bb3-8657f904af99} - - {98537082-0fdb-40de-abd8-0dc5a4269bab} - diff --git a/src/modules/previewpane/powerpreview/powerpreviewConstants.h b/src/modules/previewpane/powerpreview/powerpreviewConstants.h index 0380df6c7a..3f1c2b58a7 100644 --- a/src/modules/previewpane/powerpreview/powerpreviewConstants.h +++ b/src/modules/previewpane/powerpreview/powerpreviewConstants.h @@ -5,10 +5,4 @@ namespace powerpreviewConstants { // Name of the powertoy module. inline const std::wstring ModuleKey = L"File Explorer"; - - // Dark theme background color - const COLORREF DARK_THEME_COLOR = RGB(0x1e, 0x1e, 0x1e); - - // Light theme background color - const COLORREF LIGHT_THEME_COLOR = RGB(0xff, 0xff, 0xff); -} +} \ No newline at end of file