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 "webkit/plugins/npapi/webplugin_delegate_impl.h" | 5 #include "webkit/plugins/npapi/webplugin_delegate_impl.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include <gtk/gtk.h> | 10 #include <gtk/gtk.h> |
11 #include <gdk/gdkx.h> | 11 #include <gdk/gdkx.h> |
12 | 12 |
13 #include "base/basictypes.h" | 13 #include "base/basictypes.h" |
14 #include "base/file_util.h" | 14 #include "base/file_util.h" |
15 #include "base/message_loop.h" | 15 #include "base/message_loop.h" |
16 #include "base/process_util.h" | 16 #include "base/process_util.h" |
17 #include "base/metrics/stats_counters.h" | 17 #include "base/metrics/stats_counters.h" |
18 #include "base/string_util.h" | 18 #include "base/string_util.h" |
19 #include "skia/ext/platform_canvas.h" | 19 #include "skia/ext/platform_canvas.h" |
20 #include "third_party/WebKit/Source/WebKit/chromium/public/WebCursorInfo.h" | 20 #include "third_party/WebKit/Source/WebKit/chromium/public/WebCursorInfo.h" |
21 #include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h" | 21 #include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h" |
| 22 #include "ui/base/gtk/gtk_compat.h" |
22 #include "ui/gfx/blit.h" | 23 #include "ui/gfx/blit.h" |
23 #include "webkit/plugins/npapi/gtk_plugin_container.h" | 24 #include "webkit/plugins/npapi/gtk_plugin_container.h" |
24 #include "webkit/plugins/npapi/plugin_constants_win.h" | 25 #include "webkit/plugins/npapi/plugin_constants_win.h" |
25 #include "webkit/plugins/npapi/plugin_instance.h" | 26 #include "webkit/plugins/npapi/plugin_instance.h" |
26 #include "webkit/plugins/npapi/plugin_lib.h" | 27 #include "webkit/plugins/npapi/plugin_lib.h" |
27 #include "webkit/plugins/npapi/plugin_list.h" | 28 #include "webkit/plugins/npapi/plugin_list.h" |
28 #include "webkit/plugins/npapi/plugin_stream_url.h" | 29 #include "webkit/plugins/npapi/plugin_stream_url.h" |
29 #include "webkit/plugins/npapi/webplugin.h" | 30 #include "webkit/plugins/npapi/webplugin.h" |
30 | 31 |
31 #include "third_party/npapi/bindings/npapi_x11.h" | 32 #include "third_party/npapi/bindings/npapi_x11.h" |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
235 return; | 236 return; |
236 | 237 |
237 clip_rect_ = clip_rect; | 238 clip_rect_ = clip_rect; |
238 window_rect_ = window_rect; | 239 window_rect_ = window_rect; |
239 WindowlessSetWindow(); | 240 WindowlessSetWindow(); |
240 } | 241 } |
241 | 242 |
242 void WebPluginDelegateImpl::EnsurePixmapAtLeastSize(int width, int height) { | 243 void WebPluginDelegateImpl::EnsurePixmapAtLeastSize(int width, int height) { |
243 if (pixmap_) { | 244 if (pixmap_) { |
244 gint cur_width, cur_height; | 245 gint cur_width, cur_height; |
245 gdk_drawable_get_size(pixmap_, &cur_width, &cur_height); | 246 gdk_pixmap_get_size(pixmap_, &cur_width, &cur_height); |
246 if (cur_width >= width && cur_height >= height) | 247 if (cur_width >= width && cur_height >= height) |
247 return; // We are already the appropriate size. | 248 return; // We are already the appropriate size. |
248 | 249 |
249 // Otherwise, we need to recreate ourselves. | 250 // Otherwise, we need to recreate ourselves. |
250 g_object_unref(pixmap_); | 251 g_object_unref(pixmap_); |
251 pixmap_ = NULL; | 252 pixmap_ = NULL; |
252 } | 253 } |
253 | 254 |
254 // |sys_visual| is owned by gdk; we shouldn't free it. | 255 // |sys_visual| is owned by gdk; we shouldn't free it. |
255 GdkVisual* sys_visual = gdk_visual_get_system(); | 256 GdkVisual* sys_visual = gdk_visual_get_system(); |
256 pixmap_ = gdk_pixmap_new(NULL, // use width/height/depth params | 257 pixmap_ = gdk_pixmap_new(NULL, // use width/height/depth params |
257 std::max(1, width), std::max(1, height), | 258 std::max(1, width), std::max(1, height), |
258 sys_visual->depth); | 259 sys_visual->depth); |
| 260 // TODO(erg): Replace this with GdkVisual when we move to GTK3. |
259 GdkColormap* colormap = gdk_colormap_new(gdk_visual_get_system(), | 261 GdkColormap* colormap = gdk_colormap_new(gdk_visual_get_system(), |
260 FALSE); | 262 FALSE); |
261 gdk_drawable_set_colormap(GDK_DRAWABLE(pixmap_), colormap); | 263 gdk_drawable_set_colormap(pixmap_, colormap); |
262 // The GdkDrawable now owns the GdkColormap. | 264 // The GdkDrawable now owns the GdkColormap. |
263 g_object_unref(colormap); | 265 g_object_unref(colormap); |
264 } | 266 } |
265 | 267 |
266 #ifdef DEBUG_RECTANGLES | 268 #ifdef DEBUG_RECTANGLES |
267 namespace { | 269 namespace { |
268 | 270 |
269 // Draw a rectangle on a Cairo context. | 271 // Draw a rectangle on a Cairo context. |
270 // Useful for debugging various rectangles involved in drawing plugins. | 272 // Useful for debugging various rectangles involved in drawing plugins. |
271 void DrawDebugRectangle(cairo_t* cairo, | 273 void DrawDebugRectangle(cairo_t* cairo, |
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
756 // as someone might be setting the cursor in the main process as well. | 758 // as someone might be setting the cursor in the main process as well. |
757 *cursor = current_windowless_cursor_; | 759 *cursor = current_windowless_cursor_; |
758 } | 760 } |
759 #endif | 761 #endif |
760 | 762 |
761 return ret; | 763 return ret; |
762 } | 764 } |
763 | 765 |
764 } // namespace npapi | 766 } // namespace npapi |
765 } // namespace webkit | 767 } // namespace webkit |
OLD | NEW |