Changeset 51364 in webkit
- Timestamp:
- Nov 24, 2009 3:46:21 PM (14 years ago)
- Location:
- trunk/WebKit/chromium
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKit/chromium/ChangeLog
r51350 r51364 1 2009-11-24 Evan Stade <estade@chromium.org> 2 3 Reviewed by David Levin. 4 5 Linux Chromium sends too many click events 6 https://bugs.webkit.org/show_bug.cgi?id=31841 7 8 Manually count number of clicks for double/triple click events. This 9 makes us match Firefox on http://www.quirksmode.org/js/events_mouse.html 10 Chromium side of this patch is here: 11 http://codereview.chromium.org/431031/show 12 13 * src/gtk/WebInputEventFactory.cpp: 14 (WebKit::WebInputEventFactory::mouseEvent): 15 1 16 2009-11-24 Darin Fisher <darin@chromium.org> 2 17 -
trunk/WebKit/chromium/src/gtk/WebInputEventFactory.cpp
r50750 r51364 39 39 #include <gdk/gdk.h> 40 40 #include <gdk/gdkkeysyms.h> 41 #include <gtk/gtk.h> 41 42 #include <gtk/gtkversion.h> 42 43 43 44 #include <wtf/Assertions.h> 45 46 namespace { 47 48 gint getDoubleClickTime() 49 { 50 static GtkSettings* settings = gtk_settings_get_default(); 51 gint doubleClickTime = 250; 52 g_object_get(G_OBJECT(settings), "gtk-double-click-time", &doubleClickTime, 0); 53 return doubleClickTime; 54 } 55 56 } // namespace 44 57 45 58 namespace WebKit { … … 322 335 323 336 switch (event->type) { 324 case GDK_3BUTTON_PRESS:325 ++result.clickCount;326 // fallthrough327 case GDK_2BUTTON_PRESS:328 ++result.clickCount;329 // fallthrough330 337 case GDK_BUTTON_PRESS: 331 338 result.type = WebInputEvent::MouseDown; 332 ++result.clickCount;333 339 break; 334 340 case GDK_BUTTON_RELEASE: 335 341 result.type = WebInputEvent::MouseUp; 336 342 break; 337 343 case GDK_3BUTTON_PRESS: 344 case GDK_2BUTTON_PRESS: 338 345 default: 339 346 ASSERT_NOT_REACHED(); 340 347 }; 348 349 if (GDK_BUTTON_PRESS == event->type) { 350 static int numClicks = 0; 351 static GdkWindow* eventWindow = 0; 352 static gint lastLeftClickTime = 0; 353 354 gint time_diff = event->time - lastLeftClickTime; 355 if (eventWindow == event->window && time_diff < getDoubleClickTime()) 356 numClicks++; 357 else 358 numClicks = 1; 359 360 result.clickCount = numClicks; 361 eventWindow = event->window; 362 lastLeftClickTime = event->time; 363 } 341 364 342 365 result.button = WebMouseEvent::ButtonNone;
Note: See TracChangeset
for help on using the changeset viewer.