OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ui/base/win/hidden_window.h" | 5 #include "ui/base/win/hidden_window.h" |
6 | 6 |
7 #include "ui/base/win/window_impl.h" | 7 #include "ui/gfx/win/window_impl.h" |
8 | 8 |
9 namespace ui { | 9 namespace ui { |
10 | 10 |
11 namespace { | 11 namespace { |
12 | 12 |
13 // We need to have a parent window for the compositing code to work correctly. | 13 // We need to have a parent window for the compositing code to work correctly. |
14 // | 14 // |
15 // A tab will not have a parent HWND whenever it is not active in its | 15 // A tab will not have a parent HWND whenever it is not active in its |
16 // host window - for example at creation time and when it's in the | 16 // host window - for example at creation time and when it's in the |
17 // background, so we provide a default widget to host them. | 17 // background, so we provide a default widget to host them. |
18 // | 18 // |
19 // It may be tempting to use GetDesktopWindow() instead, but this is | 19 // It may be tempting to use GetDesktopWindow() instead, but this is |
20 // problematic as the shell sends messages to children of the desktop | 20 // problematic as the shell sends messages to children of the desktop |
21 // window that interact poorly with us. | 21 // window that interact poorly with us. |
22 // | 22 // |
23 // See: http://crbug.com/16476 | 23 // See: http://crbug.com/16476 |
24 class TempParent : public ui::WindowImpl { | 24 class TempParent : public gfx::WindowImpl { |
25 public: | 25 public: |
26 static TempParent* Get() { | 26 static TempParent* Get() { |
27 static TempParent* g_temp_parent; | 27 static TempParent* g_temp_parent; |
28 if (!g_temp_parent) { | 28 if (!g_temp_parent) { |
29 g_temp_parent = new TempParent(); | 29 g_temp_parent = new TempParent(); |
30 | 30 |
31 g_temp_parent->set_window_style(WS_POPUP); | 31 g_temp_parent->set_window_style(WS_POPUP); |
32 g_temp_parent->set_window_ex_style(WS_EX_TOOLWINDOW); | 32 g_temp_parent->set_window_ex_style(WS_EX_TOOLWINDOW); |
33 g_temp_parent->Init(GetDesktopWindow(), gfx::Rect()); | 33 g_temp_parent->Init(GetDesktopWindow(), gfx::Rect()); |
34 EnableWindow(g_temp_parent->hwnd(), FALSE); | 34 EnableWindow(g_temp_parent->hwnd(), FALSE); |
(...skipping 12 matching lines...) Expand all Loading... |
47 END_MSG_MAP() | 47 END_MSG_MAP() |
48 }; | 48 }; |
49 | 49 |
50 } // namespace | 50 } // namespace |
51 | 51 |
52 HWND GetHiddenWindow() { | 52 HWND GetHiddenWindow() { |
53 return TempParent::Get()->hwnd(); | 53 return TempParent::Get()->hwnd(); |
54 } | 54 } |
55 | 55 |
56 } // namespace ui | 56 } // namespace ui |
OLD | NEW |