Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(143)

Unified Diff: webkit/tools/test_shell/test_webview_delegate_gtk.cc

Issue 146078: linux: OOP windowed plugins (Closed)
Patch Set: new version Created 11 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/glue/plugins/webplugin_delegate_impl_gtk.cc ('k') | webkit/tools/test_shell/webview_host.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/tools/test_shell/test_webview_delegate_gtk.cc
diff --git a/webkit/tools/test_shell/test_webview_delegate_gtk.cc b/webkit/tools/test_shell/test_webview_delegate_gtk.cc
index 10ba40f3860cf06bed05eda0d6baf1fc14a1171d..b89a389fe86454c435b0e22a6164a563bba77cd4 100644
--- a/webkit/tools/test_shell/test_webview_delegate_gtk.cc
+++ b/webkit/tools/test_shell/test_webview_delegate_gtk.cc
@@ -23,7 +23,7 @@
#include "webkit/glue/webplugin.h"
#include "webkit/glue/webkit_glue.h"
#include "webkit/glue/webview.h"
-#include "webkit/glue/plugins/gtk_plugin_container.h"
+#include "webkit/glue/plugins/gtk_plugin_container_host.h"
#include "webkit/glue/plugins/plugin_list.h"
#include "webkit/glue/window_open_disposition.h"
#include "webkit/glue/plugins/webplugin_delegate_impl.h"
@@ -230,61 +230,9 @@ void TestWebViewDelegate::GetRootWindowResizerRect(WebWidget* webwidget,
void TestWebViewDelegate::DidMove(WebWidget* webwidget,
const WebPluginGeometry& move) {
WebWidgetHost* host = GetHostForWidget(webwidget);
-
- // The "window" on WebPluginGeometry is actually the XEmbed parent
- // X window id.
- GtkWidget* widget = ((WebViewHost*)host)->MapIDToWidget(move.window);
- // If we don't know about this plugin (maybe we're shutting down the
- // window?), ignore the message.
- if (!widget)
- return;
- DCHECK(!GTK_WIDGET_NO_WINDOW(widget));
- DCHECK(GTK_WIDGET_REALIZED(widget));
-
- if (!move.visible) {
- gtk_widget_hide(widget);
- return;
- } else {
- gtk_widget_show(widget);
- }
-
- // Update the clipping region on the GdkWindow.
- GdkRectangle clip_rect = move.clip_rect.ToGdkRectangle();
- GdkRegion* clip_region = gdk_region_rectangle(&clip_rect);
- gfx::SubtractRectanglesFromRegion(clip_region, move.cutout_rects);
- gdk_window_shape_combine_region(widget->window, clip_region, 0, 0);
- gdk_region_destroy(clip_region);
-
- // Update the window position. Resizing is handled by WebPluginDelegate.
- // TODO(deanm): Verify that we only need to move and not resize.
- // TODO(evanm): we should cache the last shape and position and skip all
- // of this business in the common case where nothing has changed.
- int current_x, current_y;
-
- // Until the above TODO is resolved, we can grab the last position
- // off of the GtkFixed with a bit of hackery.
- GValue value = {0};
- g_value_init(&value, G_TYPE_INT);
- gtk_container_child_get_property(GTK_CONTAINER(host->view_handle()), widget,
- "x", &value);
- current_x = g_value_get_int(&value);
- gtk_container_child_get_property(GTK_CONTAINER(host->view_handle()), widget,
- "y", &value);
- current_y = g_value_get_int(&value);
- g_value_unset(&value);
-
- if (move.window_rect.x() != current_x || move.window_rect.y() != current_y) {
- // Calling gtk_fixed_move unnecessarily is a no-no, as it causes the parent
- // window to repaint!
- gtk_fixed_move(GTK_FIXED(host->view_handle()),
- widget,
- move.window_rect.x(),
- move.window_rect.y());
- }
-
- gtk_plugin_container_set_size(widget,
- move.window_rect.width(),
- move.window_rect.height());
+ GtkPluginContainerHost &plugin_container_host =
+ static_cast<WebViewHost*>(host)->plugin_container_host();
+ plugin_container_host.MovePluginContainer(move);
}
void TestWebViewDelegate::RunModal(WebWidget* webwidget) {
« no previous file with comments | « webkit/glue/plugins/webplugin_delegate_impl_gtk.cc ('k') | webkit/tools/test_shell/webview_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698