fix: the parent window remained interactive after the modal window was opened (#48866)

fix: fix the issue where the parent window remained interactive after the modal window was opened in somecases.

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Bill Shen <15865969+cucbin@users.noreply.github.com>
This commit is contained in:
trop[bot] 2025-11-13 16:08:29 +01:00 committed by GitHub
commit 41bcdd71fe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 5 additions and 2 deletions

View file

@ -104,7 +104,8 @@ NativeWindow::NativeWindow(const gin_helper::Dictionary& options,
transparent_{options.ValueOrDefault(options::kTransparent, false)},
enable_larger_than_screen_{
options.ValueOrDefault(options::kEnableLargerThanScreen, false)},
is_modal_{parent != nullptr && options.ValueOrDefault("modal", false)},
is_modal_{parent != nullptr &&
options.ValueOrDefault(options::kModal, false)},
has_frame_{options.ValueOrDefault(options::kFrame, true) &&
title_bar_style_ == TitleBarStyle::kNormal},
parent_{parent} {

View file

@ -555,7 +555,7 @@ bool NativeWindowViews::IsFocused() const {
}
void NativeWindowViews::Show() {
if (is_modal() && NativeWindow::parent() && !widget()->IsVisible())
if (is_modal() && NativeWindow::parent())
static_cast<NativeWindowViews*>(parent())->IncrementChildModals();
widget()->native_widget_private()->Show(GetRestoredState(), gfx::Rect());

View file

@ -219,6 +219,8 @@ inline constexpr std::string_view kSpellcheck = "spellcheck";
inline constexpr std::string_view kEnableDeprecatedPaste =
"enableDeprecatedPaste";
inline constexpr std::string_view kModal = "modal";
} // namespace options
// Following are actually command line switches, should be moved to other files.