From a1fcd05baa1a6a5cae0bd8740a3f5ee7bb44b203 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Wed, 7 Dec 2022 10:05:37 +0800 Subject: [PATCH] FIX: [STUDIO-1570] wkwebview background color Change-Id: I6b18a2dbf654b71bff88e0c14317d4479358218a --- src/slic3r/GUI/WebViewDialog.cpp | 2 ++ src/slic3r/GUI/Widgets/WebView.cpp | 4 ++++ src/slic3r/Utils/MacDarkMode.hpp | 1 + src/slic3r/Utils/MacDarkMode.mm | 7 +++++++ 4 files changed, 14 insertions(+) diff --git a/src/slic3r/GUI/WebViewDialog.cpp b/src/slic3r/GUI/WebViewDialog.cpp index 640ee10b6..a7f52b584 100644 --- a/src/slic3r/GUI/WebViewDialog.cpp +++ b/src/slic3r/GUI/WebViewDialog.cpp @@ -95,6 +95,8 @@ WebViewPanel::WebViewPanel(wxWindow *parent) } GetSizer()->Add(m_browser, wxSizerFlags().Expand().Proportion(1)); GetSizer()->Layout(); +#else + (void) this; #endif }); diff --git a/src/slic3r/GUI/Widgets/WebView.cpp b/src/slic3r/GUI/Widgets/WebView.cpp index 78a294221..f60f7bdb8 100644 --- a/src/slic3r/GUI/Widgets/WebView.cpp +++ b/src/slic3r/GUI/Widgets/WebView.cpp @@ -125,6 +125,10 @@ wxWebView* WebView::CreateWebView(wxWindow * parent, wxString const & url) webView->SetUserAgent(wxString::Format("BBL-Slicer/v%s (%s) Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko)", SLIC3R_VERSION, Slic3r::GUI::wxGetApp().dark_mode() ? "dark" : "light")); #endif +#ifdef __WXMAC__ + WKWebView * wkWebView = (WKWebView *) webView->GetNativeBackend(); + Slic3r::GUI::WKWebView_setTransparentBackground(wkWebView); +#endif #ifndef __WIN32__ Slic3r::GUI::wxGetApp().CallAfter([webView] { #endif diff --git a/src/slic3r/Utils/MacDarkMode.hpp b/src/slic3r/Utils/MacDarkMode.hpp index 6696bf45e..9a450c1f3 100644 --- a/src/slic3r/Utils/MacDarkMode.hpp +++ b/src/slic3r/Utils/MacDarkMode.hpp @@ -11,6 +11,7 @@ extern bool mac_dark_mode(); extern double mac_max_scaling_factor(); extern void set_miniaturizable(void * window); void WKWebView_evaluateJavaScript(void * web, wxString const & script, void (*callback)(wxString const &)); +void WKWebView_setTransparentBackground(void * web); void set_tag_when_enter_full_screen(bool isfullscreen); void set_title_colour_after_set_title(void * window); void initGestures(void * view, wxEvtHandler * handler); diff --git a/src/slic3r/Utils/MacDarkMode.mm b/src/slic3r/Utils/MacDarkMode.mm index a7662e9dc..f005987f5 100644 --- a/src/slic3r/Utils/MacDarkMode.mm +++ b/src/slic3r/Utils/MacDarkMode.mm @@ -8,6 +8,7 @@ #import #import #import +#import #include @@ -91,6 +92,12 @@ void WKWebView_evaluateJavaScript(void * web, wxString const & script, void (*ca } }]; } + +void WKWebView_setTransparentBackground(void * web) +{ + WKWebView * webView = (WKWebView*)web; + [webView layer].backgroundColor = [NSColor clearColor].CGColor; +} void openFolderForFile(wxString const & file) {