OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/renderer_host/render_widget_host_view_win.h" | 5 #include "chrome/browser/renderer_host/render_widget_host_view_win.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 } | 157 } |
158 return TRUE; | 158 return TRUE; |
159 } | 159 } |
160 | 160 |
161 // Draw the contents of |backing_store_dc| onto |paint_rect| with a 70% grey | 161 // Draw the contents of |backing_store_dc| onto |paint_rect| with a 70% grey |
162 // filter. | 162 // filter. |
163 void DrawDeemphasized(const SkColor& color, | 163 void DrawDeemphasized(const SkColor& color, |
164 const gfx::Rect& paint_rect, | 164 const gfx::Rect& paint_rect, |
165 HDC backing_store_dc, | 165 HDC backing_store_dc, |
166 HDC paint_dc) { | 166 HDC paint_dc) { |
167 gfx::CanvasSkia canvas(paint_rect.width(), paint_rect.height(), true); | 167 gfx::CanvasSkia canvas; |
168 HDC dc = canvas.beginPlatformPaint(); | 168 canvas.Init(paint_rect.width(), paint_rect.height(), true); |
| 169 HDC dc = canvas.BeginPlatformPaint(); |
169 BitBlt(dc, | 170 BitBlt(dc, |
170 0, | 171 0, |
171 0, | 172 0, |
172 paint_rect.width(), | 173 paint_rect.width(), |
173 paint_rect.height(), | 174 paint_rect.height(), |
174 backing_store_dc, | 175 backing_store_dc, |
175 paint_rect.x(), | 176 paint_rect.x(), |
176 paint_rect.y(), | 177 paint_rect.y(), |
177 SRCCOPY); | 178 SRCCOPY); |
178 canvas.endPlatformPaint(); | 179 canvas.EndPlatformPaint(); |
179 canvas.FillRectInt(color, 0, 0, paint_rect.width(), paint_rect.height()); | 180 canvas.FillRectInt(color, 0, 0, paint_rect.width(), paint_rect.height()); |
180 canvas.getTopPlatformDevice().drawToHDC(paint_dc, paint_rect.x(), | 181 canvas.BlitToNativeContext(gfx::Rect(paint_rect.size()), |
181 paint_rect.y(), NULL); | 182 paint_rect.origin(), paint_dc); |
182 } | 183 } |
183 | 184 |
184 // The plugin wrapper window which lives in the browser process has this proc | 185 // The plugin wrapper window which lives in the browser process has this proc |
185 // as its window procedure. We only handle the WM_PARENTNOTIFY message sent by | 186 // as its window procedure. We only handle the WM_PARENTNOTIFY message sent by |
186 // windowed plugins for mouse input. This is forwarded off to the wrappers | 187 // windowed plugins for mouse input. This is forwarded off to the wrappers |
187 // parent which is typically the RVH window which turns on user gesture. | 188 // parent which is typically the RVH window which turns on user gesture. |
188 LRESULT CALLBACK PluginWrapperWindowProc(HWND window, unsigned int message, | 189 LRESULT CALLBACK PluginWrapperWindowProc(HWND window, unsigned int message, |
189 WPARAM wparam, LPARAM lparam) { | 190 WPARAM wparam, LPARAM lparam) { |
190 if (message == WM_PARENTNOTIFY) { | 191 if (message == WM_PARENTNOTIFY) { |
191 switch (LOWORD(wparam)) { | 192 switch (LOWORD(wparam)) { |
(...skipping 747 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
939 } else { | 940 } else { |
940 DrawBackground(paint_dc.m_ps.rcPaint, &paint_dc); | 941 DrawBackground(paint_dc.m_ps.rcPaint, &paint_dc); |
941 if (whiteout_start_time_.is_null()) | 942 if (whiteout_start_time_.is_null()) |
942 whiteout_start_time_ = TimeTicks::Now(); | 943 whiteout_start_time_ = TimeTicks::Now(); |
943 } | 944 } |
944 } | 945 } |
945 | 946 |
946 void RenderWidgetHostViewWin::DrawBackground(const RECT& dirty_rect, | 947 void RenderWidgetHostViewWin::DrawBackground(const RECT& dirty_rect, |
947 CPaintDC* dc) { | 948 CPaintDC* dc) { |
948 if (!background_.empty()) { | 949 if (!background_.empty()) { |
949 gfx::CanvasSkia canvas(dirty_rect.right - dirty_rect.left, | 950 gfx::CanvasSkia canvas; |
950 dirty_rect.bottom - dirty_rect.top, | 951 int width = dirty_rect.right - dirty_rect.left; |
951 true); // opaque | 952 int height = dirty_rect.bottom - dirty_rect.top; |
| 953 canvas.Init(width, height, true); // opaque |
952 canvas.TranslateInt(-dirty_rect.left, -dirty_rect.top); | 954 canvas.TranslateInt(-dirty_rect.left, -dirty_rect.top); |
953 | 955 |
954 const RECT& dc_rect = dc->m_ps.rcPaint; | 956 const RECT& dc_rect = dc->m_ps.rcPaint; |
955 canvas.TileImageInt(background_, 0, 0, | 957 canvas.TileImageInt(background_, 0, 0, |
956 dc_rect.right - dc_rect.left, | 958 dc_rect.right - dc_rect.left, |
957 dc_rect.bottom - dc_rect.top); | 959 dc_rect.bottom - dc_rect.top); |
958 | 960 |
959 canvas.getTopPlatformDevice().drawToHDC(*dc, dirty_rect.left, | 961 canvas.BlitToNativeContext(gfx::Rect(width, height), |
960 dirty_rect.top, NULL); | 962 gfx::Point(dirty_rect.left, dirty_rect.top), *dc); |
961 } else { | 963 } else { |
962 HBRUSH white_brush = reinterpret_cast<HBRUSH>(GetStockObject(WHITE_BRUSH)); | 964 HBRUSH white_brush = reinterpret_cast<HBRUSH>(GetStockObject(WHITE_BRUSH)); |
963 dc->FillRect(&dirty_rect, white_brush); | 965 dc->FillRect(&dirty_rect, white_brush); |
964 } | 966 } |
965 } | 967 } |
966 | 968 |
967 void RenderWidgetHostViewWin::OnNCPaint(HRGN update_region) { | 969 void RenderWidgetHostViewWin::OnNCPaint(HRGN update_region) { |
968 // Do nothing. This suppresses the resize corner that Windows would | 970 // Do nothing. This suppresses the resize corner that Windows would |
969 // otherwise draw for us. | 971 // otherwise draw for us. |
970 } | 972 } |
(...skipping 833 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1804 } | 1806 } |
1805 | 1807 |
1806 // static | 1808 // static |
1807 RenderWidgetHostView* | 1809 RenderWidgetHostView* |
1808 RenderWidgetHostView::GetRenderWidgetHostViewFromNativeView( | 1810 RenderWidgetHostView::GetRenderWidgetHostViewFromNativeView( |
1809 gfx::NativeView native_view) { | 1811 gfx::NativeView native_view) { |
1810 return ::IsWindow(native_view) ? | 1812 return ::IsWindow(native_view) ? |
1811 reinterpret_cast<RenderWidgetHostView*>( | 1813 reinterpret_cast<RenderWidgetHostView*>( |
1812 ViewProp::GetValue(native_view, kRenderWidgetHostViewKey)) : NULL; | 1814 ViewProp::GetValue(native_view, kRenderWidgetHostViewKey)) : NULL; |
1813 } | 1815 } |
OLD | NEW |