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

Side by Side Diff: chrome/browser/renderer_host/render_widget_host_view_gtk.cc

Issue 155250: Linux: For mouse button clicks, only send buttons 1, 2, 3 to the renderer.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 // Notify the GtkIMContext object of this focus-in event and 213 // Notify the GtkIMContext object of this focus-in event and
214 // detach this GtkIMContext object from this window. 214 // detach this GtkIMContext object from this window.
215 gtk_im_context_focus_out(host_view->im_context_); 215 gtk_im_context_focus_out(host_view->im_context_);
216 gtk_im_context_set_client_window(host_view->im_context_, NULL); 216 gtk_im_context_set_client_window(host_view->im_context_, NULL);
217 return FALSE; 217 return FALSE;
218 } 218 }
219 219
220 static gboolean ButtonPressReleaseEvent( 220 static gboolean ButtonPressReleaseEvent(
221 GtkWidget* widget, GdkEventButton* event, 221 GtkWidget* widget, GdkEventButton* event,
222 RenderWidgetHostViewGtk* host_view) { 222 RenderWidgetHostViewGtk* host_view) {
223 if (!(event->button == 1 || event->button == 2 || event->button == 3))
224 return FALSE; // We do not forward any other buttons to the renderer.
225
223 // We want to translate the coordinates of events that do not originate 226 // We want to translate the coordinates of events that do not originate
224 // from this widget to be relative to the top left of the widget. 227 // from this widget to be relative to the top left of the widget.
225 GtkWidget* event_widget = gtk_get_event_widget( 228 GtkWidget* event_widget = gtk_get_event_widget(
226 reinterpret_cast<GdkEvent*>(event)); 229 reinterpret_cast<GdkEvent*>(event));
227 if (event_widget != widget) { 230 if (event_widget != widget) {
228 int x = 0; 231 int x = 0;
229 int y = 0; 232 int y = 0;
230 gtk_widget_get_pointer(widget, &x, &y); 233 gtk_widget_get_pointer(widget, &x, &y);
231 // If the mouse event happens outside our popup, force the popup to 234 // If the mouse event happens outside our popup, force the popup to
232 // close. We do this so a hung renderer doesn't prevent us from 235 // close. We do this so a hung renderer doesn't prevent us from
(...skipping 11 matching lines...) Expand all
244 event->x = x; 247 event->x = x;
245 event->y = y; 248 event->y = y;
246 } 249 }
247 host_view->is_popup_first_mouse_release_ = false; 250 host_view->is_popup_first_mouse_release_ = false;
248 host_view->GetRenderWidgetHost()->ForwardMouseEvent( 251 host_view->GetRenderWidgetHost()->ForwardMouseEvent(
249 WebInputEventFactory::mouseEvent(event)); 252 WebInputEventFactory::mouseEvent(event));
250 253
251 // TODO(evanm): why is this necessary here but not in test shell? 254 // TODO(evanm): why is this necessary here but not in test shell?
252 // This logic is the same as GtkButton. 255 // This logic is the same as GtkButton.
253 if (event->type == GDK_BUTTON_PRESS && !GTK_WIDGET_HAS_FOCUS(widget)) 256 if (event->type == GDK_BUTTON_PRESS && !GTK_WIDGET_HAS_FOCUS(widget))
254 gtk_widget_grab_focus(widget); 257 gtk_widget_grab_focus(widget);
Evan Martin 2009/07/09 00:01:08 I wonder if this bit of code is related to the mys
Evan Stade 2009/07/09 00:11:08 I wouldn't be too surprised, it's worth messing ar
255 258
256 return FALSE; 259 return TRUE; // We did handle the mouse event.
257 } 260 }
258 261
259 static gboolean MouseMoveEvent(GtkWidget* widget, GdkEventMotion* event, 262 static gboolean MouseMoveEvent(GtkWidget* widget, GdkEventMotion* event,
260 RenderWidgetHostViewGtk* host_view) { 263 RenderWidgetHostViewGtk* host_view) {
261 // We want to translate the coordinates of events that do not originate 264 // We want to translate the coordinates of events that do not originate
262 // from this widget to be relative to the top left of the widget. 265 // from this widget to be relative to the top left of the widget.
263 GtkWidget* event_widget = gtk_get_event_widget( 266 GtkWidget* event_widget = gtk_get_event_widget(
264 reinterpret_cast<GdkEvent*>(event)); 267 reinterpret_cast<GdkEvent*>(event));
265 if (event_widget != widget) { 268 if (event_widget != widget) {
266 int x = 0; 269 int x = 0;
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after
712 } 715 }
713 716
714 gfx::PluginWindowHandle RenderWidgetHostViewGtk::CreatePluginContainer() { 717 gfx::PluginWindowHandle RenderWidgetHostViewGtk::CreatePluginContainer() {
715 return plugin_container_manager_.CreatePluginContainer(); 718 return plugin_container_manager_.CreatePluginContainer();
716 } 719 }
717 720
718 void RenderWidgetHostViewGtk::DestroyPluginContainer( 721 void RenderWidgetHostViewGtk::DestroyPluginContainer(
719 gfx::PluginWindowHandle container) { 722 gfx::PluginWindowHandle container) {
720 plugin_container_manager_.DestroyPluginContainer(container); 723 plugin_container_manager_.DestroyPluginContainer(container);
721 } 724 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698