fix: fixed white flash on call to BrowserWindow.show (#48559)

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Cezary Kulakowski <cezary@openfin.co>
This commit is contained in:
trop[bot] 2025-10-14 21:27:13 +02:00 committed by GitHub
commit 2243a25192
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 17 additions and 3 deletions

View file

@ -104,8 +104,8 @@ class BaseWindow : public gin_helper::TrackableObject<BaseWindow>,
virtual void Focus(); virtual void Focus();
virtual void Blur(); virtual void Blur();
bool IsFocused() const; bool IsFocused() const;
void Show(); virtual void Show();
void ShowInactive(); virtual void ShowInactive();
void Hide(); void Hide();
bool IsVisible() const; bool IsVisible() const;
bool IsEnabled() const; bool IsEnabled() const;

View file

@ -280,7 +280,6 @@ v8::Local<v8::Value> BrowserWindow::GetWebContents(v8::Isolate* isolate) {
} }
void BrowserWindow::OnWindowShow() { void BrowserWindow::OnWindowShow() {
web_contents()->WasShown();
BaseWindow::OnWindowShow(); BaseWindow::OnWindowShow();
} }
@ -289,6 +288,19 @@ void BrowserWindow::OnWindowHide() {
BaseWindow::OnWindowHide(); BaseWindow::OnWindowHide();
} }
void BrowserWindow::Show() {
web_contents()->WasShown();
BaseWindow::Show();
}
void BrowserWindow::ShowInactive() {
// This method doesn't make sense for modal window.
if (IsModal())
return;
web_contents()->WasShown();
BaseWindow::ShowInactive();
}
// static // static
gin_helper::WrappableBase* BrowserWindow::New(gin_helper::ErrorThrower thrower, gin_helper::WrappableBase* BrowserWindow::New(gin_helper::ErrorThrower thrower,
gin::Arguments* args) { gin::Arguments* args) {

View file

@ -67,6 +67,8 @@ class BrowserWindow : public BaseWindow,
void SetBackgroundMaterial(const std::string& material) override; void SetBackgroundMaterial(const std::string& material) override;
void OnWindowShow() override; void OnWindowShow() override;
void OnWindowHide() override; void OnWindowHide() override;
void Show() override;
void ShowInactive() override;
// BrowserWindow APIs. // BrowserWindow APIs.
void FocusOnWebView(); void FocusOnWebView();