diff --git a/docs/breaking-changes.md b/docs/breaking-changes.md index 6546293be547..bf21c28534b9 100644 --- a/docs/breaking-changes.md +++ b/docs/breaking-changes.md @@ -12,6 +12,13 @@ This document uses the following convention to categorize breaking changes: * **Deprecated:** An API was marked as deprecated. The API will continue to function, but will emit a deprecation warning, and will be removed in a future release. * **Removed:** An API or feature was removed, and is no longer supported by Electron. +## Planned Breaking API Changes (37.0) + +### Behavior Changed: `BrowserWindow.IsVisibleOnAllWorkspaces()` on Linux + +`BrowserWindow.IsVisibleOnAllWorkspaces()` will now return false on Linux if the +window is not currently visible. + ## Planned Breaking API Changes (36.0) ### Utility Process unhandled rejection behavior change diff --git a/shell/browser/native_window_views.cc b/shell/browser/native_window_views.cc index 8987ee026c9d..c011a9dd6e8b 100644 --- a/shell/browser/native_window_views.cc +++ b/shell/browser/native_window_views.cc @@ -1527,20 +1527,8 @@ void NativeWindowViews::SetVisibleOnAllWorkspaces( } bool NativeWindowViews::IsVisibleOnAllWorkspaces() const { -#if BUILDFLAG(IS_LINUX) - if (IsX11()) { - // Use the presence/absence of _NET_WM_STATE_STICKY in _NET_WM_STATE to - // determine whether the current window is visible on all workspaces. - x11::Atom sticky_atom = x11::GetAtom("_NET_WM_STATE_STICKY"); - std::vector wm_states; - auto* connection = x11::Connection::Get(); - connection->GetArrayProperty( - static_cast(GetAcceleratedWidget()), - x11::GetAtom("_NET_WM_STATE"), &wm_states); - return base::Contains(wm_states, sticky_atom); - } -#endif - return false; + // On Windows this always returns false. + return widget()->IsVisibleOnAllWorkspaces(); } content::DesktopMediaID NativeWindowViews::GetDesktopMediaID() const {