| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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_gtk.h" | 5 #include "chrome/browser/renderer_host/render_widget_host_view_gtk.h" |
| 6 | 6 |
| 7 #include <gtk/gtk.h> | 7 #include <gtk/gtk.h> |
| 8 #include <gdk/gdk.h> | 8 #include <gdk/gdk.h> |
| 9 #include <gdk/gdkkeysyms.h> | 9 #include <gdk/gdkkeysyms.h> |
| 10 #include <gdk/gdkx.h> | 10 #include <gdk/gdkx.h> |
| (...skipping 855 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 866 parent_ = parent_host_view->GetNativeView(); | 866 parent_ = parent_host_view->GetNativeView(); |
| 867 GtkWidget* popup = gtk_window_new(GTK_WINDOW_POPUP); | 867 GtkWidget* popup = gtk_window_new(GTK_WINDOW_POPUP); |
| 868 view_.Own(RenderWidgetHostViewGtkWidget::CreateNewWidget(this)); | 868 view_.Own(RenderWidgetHostViewGtkWidget::CreateNewWidget(this)); |
| 869 plugin_container_manager_.set_host_widget(view_.get()); | 869 plugin_container_manager_.set_host_widget(view_.get()); |
| 870 gtk_container_add(GTK_CONTAINER(popup), view_.get()); | 870 gtk_container_add(GTK_CONTAINER(popup), view_.get()); |
| 871 | 871 |
| 872 // If we are not activatable, we don't want to grab keyboard input, | 872 // If we are not activatable, we don't want to grab keyboard input, |
| 873 // and webkit will manage our destruction. | 873 // and webkit will manage our destruction. |
| 874 if (activatable()) { | 874 if (activatable()) { |
| 875 // Grab all input for the app. If a click lands outside the bounds of the | 875 // Grab all input for the app. If a click lands outside the bounds of the |
| 876 // popup, WebKit will notice and destroy us. | 876 // popup, WebKit will notice and destroy us. Before doing this we need |
| 877 // to ensure that the the popup is added to the browser's window group, |
| 878 // to allow for the grabs to work correctly. |
| 879 gtk_window_group_add_window(gtk_window_get_group( |
| 880 GTK_WINDOW(gtk_widget_get_toplevel(parent_))), GTK_WINDOW(popup)); |
| 877 gtk_grab_add(view_.get()); | 881 gtk_grab_add(view_.get()); |
| 882 |
| 878 // Now grab all of X's input. | 883 // Now grab all of X's input. |
| 879 gdk_pointer_grab( | 884 gdk_pointer_grab( |
| 880 parent_->window, | 885 parent_->window, |
| 881 TRUE, // Only events outside of the window are reported with respect | 886 TRUE, // Only events outside of the window are reported with respect |
| 882 // to |parent_->window|. | 887 // to |parent_->window|. |
| 883 static_cast<GdkEventMask>(GDK_BUTTON_PRESS_MASK | | 888 static_cast<GdkEventMask>(GDK_BUTTON_PRESS_MASK | |
| 884 GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK), | 889 GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK), |
| 885 NULL, | 890 NULL, |
| 886 NULL, | 891 NULL, |
| 887 GDK_CURRENT_TIME); | 892 GDK_CURRENT_TIME); |
| (...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1191 } | 1196 } |
| 1192 } | 1197 } |
| 1193 | 1198 |
| 1194 void RenderWidgetHostViewGtk::PluginProcessCrashed(base::ProcessId pid) { | 1199 void RenderWidgetHostViewGtk::PluginProcessCrashed(base::ProcessId pid) { |
| 1195 for (PluginPidMap::iterator i = plugin_pid_map_.find(pid); | 1200 for (PluginPidMap::iterator i = plugin_pid_map_.find(pid); |
| 1196 i != plugin_pid_map_.end() && i->first == pid; ++i) { | 1201 i != plugin_pid_map_.end() && i->first == pid; ++i) { |
| 1197 plugin_container_manager_.DestroyPluginContainer(i->second); | 1202 plugin_container_manager_.DestroyPluginContainer(i->second); |
| 1198 } | 1203 } |
| 1199 plugin_pid_map_.erase(pid); | 1204 plugin_pid_map_.erase(pid); |
| 1200 } | 1205 } |
| OLD | NEW |