[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.16-1409-g5afdf4d
eric at webkit.org
eric at webkit.org
Thu Dec 3 13:44:06 UTC 2009
The following commit has been merged in the webkit-1.1 branch:
commit a095095f5692dc620543231a7f9fca1343356243
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Nov 24 23:46:21 2009 +0000
2009-11-24 Evan Stade <estade at chromium.org>
Reviewed by David Levin.
Linux Chromium sends too many click events
https://bugs.webkit.org/show_bug.cgi?id=31841
Manually count number of clicks for double/triple click events. This
makes us match Firefox on http://www.quirksmode.org/js/events_mouse.html
Chromium side of this patch is here:
http://codereview.chromium.org/431031/show
* src/gtk/WebInputEventFactory.cpp:
(WebKit::WebInputEventFactory::mouseEvent):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51364 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 80dceaf..fe771d7 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,18 @@
+2009-11-24 Evan Stade <estade at chromium.org>
+
+ Reviewed by David Levin.
+
+ Linux Chromium sends too many click events
+ https://bugs.webkit.org/show_bug.cgi?id=31841
+
+ Manually count number of clicks for double/triple click events. This
+ makes us match Firefox on http://www.quirksmode.org/js/events_mouse.html
+ Chromium side of this patch is here:
+ http://codereview.chromium.org/431031/show
+
+ * src/gtk/WebInputEventFactory.cpp:
+ (WebKit::WebInputEventFactory::mouseEvent):
+
2009-11-24 Darin Fisher <darin at chromium.org>
Reviewed by Adam Barth.
diff --git a/WebKit/chromium/src/gtk/WebInputEventFactory.cpp b/WebKit/chromium/src/gtk/WebInputEventFactory.cpp
index 890767c..449dee1 100644
--- a/WebKit/chromium/src/gtk/WebInputEventFactory.cpp
+++ b/WebKit/chromium/src/gtk/WebInputEventFactory.cpp
@@ -38,10 +38,23 @@
#include <gdk/gdk.h>
#include <gdk/gdkkeysyms.h>
+#include <gtk/gtk.h>
#include <gtk/gtkversion.h>
#include <wtf/Assertions.h>
+namespace {
+
+gint getDoubleClickTime()
+{
+ static GtkSettings* settings = gtk_settings_get_default();
+ gint doubleClickTime = 250;
+ g_object_get(G_OBJECT(settings), "gtk-double-click-time", &doubleClickTime, 0);
+ return doubleClickTime;
+}
+
+} // namespace
+
namespace WebKit {
static double gdkEventTimeToWebEventTime(guint32 time)
@@ -321,24 +334,34 @@ WebMouseEvent WebInputEventFactory::mouseEvent(const GdkEventButton* event)
result.clickCount = 0;
switch (event->type) {
- case GDK_3BUTTON_PRESS:
- ++result.clickCount;
- // fallthrough
- case GDK_2BUTTON_PRESS:
- ++result.clickCount;
- // fallthrough
case GDK_BUTTON_PRESS:
result.type = WebInputEvent::MouseDown;
- ++result.clickCount;
break;
case GDK_BUTTON_RELEASE:
result.type = WebInputEvent::MouseUp;
break;
-
+ case GDK_3BUTTON_PRESS:
+ case GDK_2BUTTON_PRESS:
default:
ASSERT_NOT_REACHED();
};
+ if (GDK_BUTTON_PRESS == event->type) {
+ static int numClicks = 0;
+ static GdkWindow* eventWindow = 0;
+ static gint lastLeftClickTime = 0;
+
+ gint time_diff = event->time - lastLeftClickTime;
+ if (eventWindow == event->window && time_diff < getDoubleClickTime())
+ numClicks++;
+ else
+ numClicks = 1;
+
+ result.clickCount = numClicks;
+ eventWindow = event->window;
+ lastLeftClickTime = event->time;
+ }
+
result.button = WebMouseEvent::ButtonNone;
if (event->button == 1)
result.button = WebMouseEvent::ButtonLeft;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list