OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/views/panels/panel_stack_view.h" | 5 #include "chrome/browser/ui/views/panels/panel_stack_view.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/utf_string_conversions.h" | 8 #include "base/utf_string_conversions.h" |
9 #include "chrome/browser/profiles/profile.h" | 9 #include "chrome/browser/profiles/profile.h" |
10 #include "chrome/browser/ui/panels/panel.h" | 10 #include "chrome/browser/ui/panels/panel.h" |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
183 #endif | 183 #endif |
184 } | 184 } |
185 | 185 |
186 void PanelStackView::UpdateWindowOwnerForTaskbarIconAppearance(Panel* panel) { | 186 void PanelStackView::UpdateWindowOwnerForTaskbarIconAppearance(Panel* panel) { |
187 #if defined(OS_WIN) | 187 #if defined(OS_WIN) |
188 HWND panel_window = views::HWNDForWidget( | 188 HWND panel_window = views::HWNDForWidget( |
189 static_cast<PanelView*>(panel->native_panel())->window()); | 189 static_cast<PanelView*>(panel->native_panel())->window()); |
190 | 190 |
191 HWND stack_window = NULL; | 191 HWND stack_window = NULL; |
192 StackedPanelCollection* stack = panel->stack(); | 192 StackedPanelCollection* stack = panel->stack(); |
193 if (stack) { | 193 if (stack) |
194 stack_window = views::HWNDForWidget( | 194 stack_window = views::HWNDForWidget(window_); |
195 static_cast<PanelStackView*>(stack->native_stack())->window_); | |
196 } | |
197 | 195 |
198 // The extended style WS_EX_APPWINDOW is used to force a top-level window onto | 196 // The extended style WS_EX_APPWINDOW is used to force a top-level window onto |
199 // the taskbar. In order for multiple stacked panels to appear as one, this | 197 // the taskbar. In order for multiple stacked panels to appear as one, this |
200 // bit needs to be cleared. | 198 // bit needs to be cleared. |
201 int value = ::GetWindowLong(panel_window, GWL_EXSTYLE); | 199 int value = ::GetWindowLong(panel_window, GWL_EXSTYLE); |
202 ::SetWindowLong( | 200 ::SetWindowLong( |
203 panel_window, | 201 panel_window, |
204 GWL_EXSTYLE, | 202 GWL_EXSTYLE, |
205 stack_window ? (value & ~WS_EX_APPWINDOW) : (value | WS_EX_APPWINDOW)); | 203 stack_window ? (value & ~WS_EX_APPWINDOW) : (value | WS_EX_APPWINDOW)); |
206 | 204 |
(...skipping 27 matching lines...) Expand all Loading... |
234 stacked_collection_->panels().begin(); | 232 stacked_collection_->panels().begin(); |
235 iter != stacked_collection_->panels().end(); ++iter) { | 233 iter != stacked_collection_->panels().end(); ++iter) { |
236 Panel* panel = *iter; | 234 Panel* panel = *iter; |
237 native_panel_windows.push_back( | 235 native_panel_windows.push_back( |
238 views::HWNDForWidget( | 236 views::HWNDForWidget( |
239 static_cast<PanelView*>(panel->native_panel())->window())); | 237 static_cast<PanelView*>(panel->native_panel())->window())); |
240 } | 238 } |
241 thumbnailer_->Start(native_panel_windows); | 239 thumbnailer_->Start(native_panel_windows); |
242 #endif | 240 #endif |
243 } | 241 } |
OLD | NEW |