| Index: chrome/browser/ui/panels/panel_browser_view.cc
|
| diff --git a/chrome/browser/ui/panels/panel_browser_view.cc b/chrome/browser/ui/panels/panel_browser_view.cc
|
| index 9873a24b7b06df08190efd61f66d09695053000d..7f7676580f6e0acdbb030deeb44ff54221a9400a 100644
|
| --- a/chrome/browser/ui/panels/panel_browser_view.cc
|
| +++ b/chrome/browser/ui/panels/panel_browser_view.cc
|
| @@ -303,6 +303,24 @@ bool PanelBrowserView::IsPanelActive() const {
|
| return IsActive();
|
| }
|
|
|
| +void PanelBrowserView::PreventActivationByOS(bool prevent_activation) {
|
| +#if defined(OS_WIN) && !defined(USE_AURA)
|
| + // Set the flags "NoActivate" and "AppWindow" to make sure
|
| + // the minimized panels do not get activated by the OS, but
|
| + // do appear in the taskbar and Alt-Tab menu.
|
| + gfx::NativeWindow native_window = GetNativePanelHandle();
|
| + int style = ::GetWindowLong(native_window, GWL_EXSTYLE);
|
| +
|
| + if (prevent_activation)
|
| + ::SetWindowLong(native_window, GWL_EXSTYLE,
|
| + style | WS_EX_NOACTIVATE | WS_EX_APPWINDOW);
|
| + else // allow activation
|
| + ::SetWindowLong(native_window, GWL_EXSTYLE,
|
| + style & ~WS_EX_NOACTIVATE & ~WS_EX_APPWINDOW);
|
| +#endif
|
| +}
|
| +
|
| +
|
| gfx::NativeWindow PanelBrowserView::GetNativePanelHandle() {
|
| return GetNativeHandle();
|
| }
|
|
|