From c87250329232dcc4be705ad038d41e1309106838 Mon Sep 17 00:00:00 2001 From: jdramaix Date: Fri, 29 Nov 2013 00:38:43 +0100 Subject: fix ie8 custom event --- .../main/java/com/google/gwt/query/Query.gwt.xml | 9 ++++++++ .../google/gwt/query/client/plugins/Events.java | 25 +++++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/gwtquery-core/src/main/java/com/google/gwt/query/Query.gwt.xml b/gwtquery-core/src/main/java/com/google/gwt/query/Query.gwt.xml index a902fd99..e12b298e 100644 --- a/gwtquery-core/src/main/java/com/google/gwt/query/Query.gwt.xml +++ b/gwtquery-core/src/main/java/com/google/gwt/query/Query.gwt.xml @@ -144,6 +144,15 @@ + + + + + + + + + diff --git a/gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/Events.java b/gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/Events.java index 94d1ab8d..897807f9 100644 --- a/gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/Events.java +++ b/gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/Events.java @@ -13,6 +13,7 @@ */ package com.google.gwt.query.client.plugins; +import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.FormElement; import com.google.gwt.dom.client.NativeEvent; @@ -36,6 +37,8 @@ public class Events extends GQuery { } }); + private static final EventDispatcher EVENT_DISPATCHER = GWT.create(EventDispatcher.class); + /** * Don't apply events on text and comment nodes !! */ @@ -377,7 +380,9 @@ public class Events extends GQuery { for (Element e : elements()) { if (isEventCapable(e)) { $(e).data(EventsListener.EVENT_DATA, datas); - e.dispatchEvent(evt); + + EVENT_DISPATCHER.dispatch(e, evt); + if (!JsUtils.isDefaultPrevented(evt)) { callHandlers(e, evt, funcs); } @@ -393,4 +398,22 @@ public class Events extends GQuery { } } + static class EventDispatcher { + public void dispatch(Element e, NativeEvent evt) { + e.dispatchEvent(evt); + } + } + + @SuppressWarnings("unused") + static class EventDispatcherTrident extends EventDispatcher { + public void dispatch(Element e, NativeEvent evt) { + // bitless event ? + if (Event.getTypeInt(evt.getType()) != -1) { + super.dispatch(e, evt); + } else { + EventsListener.getInstance(e).dispatchEvent(evt.cast()); + } + } + } + } -- cgit v1.2.3 From 2c8e10ae8f56a8d01e09d294c41093e90cc55ec5 Mon Sep 17 00:00:00 2001 From: jdramaix Date: Fri, 29 Nov 2013 11:53:52 +0100 Subject: Code review comment --- .../main/java/com/google/gwt/query/Query.gwt.xml | 9 ------- .../google/gwt/query/client/plugins/Events.java | 29 +++++----------------- 2 files changed, 6 insertions(+), 32 deletions(-) diff --git a/gwtquery-core/src/main/java/com/google/gwt/query/Query.gwt.xml b/gwtquery-core/src/main/java/com/google/gwt/query/Query.gwt.xml index e12b298e..a902fd99 100644 --- a/gwtquery-core/src/main/java/com/google/gwt/query/Query.gwt.xml +++ b/gwtquery-core/src/main/java/com/google/gwt/query/Query.gwt.xml @@ -144,15 +144,6 @@ - - - - - - - - - diff --git a/gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/Events.java b/gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/Events.java index 897807f9..5d09fea8 100644 --- a/gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/Events.java +++ b/gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/Events.java @@ -13,7 +13,6 @@ */ package com.google.gwt.query.client.plugins; -import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.FormElement; import com.google.gwt.dom.client.NativeEvent; @@ -37,8 +36,6 @@ public class Events extends GQuery { } }); - private static final EventDispatcher EVENT_DISPATCHER = GWT.create(EventDispatcher.class); - /** * Don't apply events on text and comment nodes !! */ @@ -381,7 +378,12 @@ public class Events extends GQuery { if (isEventCapable(e)) { $(e).data(EventsListener.EVENT_DATA, datas); - EVENT_DISPATCHER.dispatch(e, evt); + // Ie6-8 don't dispatch bitless event + if ((browser.ie6 || browser.ie8) && Event.getTypeInt(evt.getType()) == -1) { + EventsListener.getInstance(e).dispatchEvent(evt.cast()); + } else { + e.dispatchEvent(evt); + } if (!JsUtils.isDefaultPrevented(evt)) { callHandlers(e, evt, funcs); @@ -397,23 +399,4 @@ public class Events extends GQuery { f.f(e); } } - - static class EventDispatcher { - public void dispatch(Element e, NativeEvent evt) { - e.dispatchEvent(evt); - } - } - - @SuppressWarnings("unused") - static class EventDispatcherTrident extends EventDispatcher { - public void dispatch(Element e, NativeEvent evt) { - // bitless event ? - if (Event.getTypeInt(evt.getType()) != -1) { - super.dispatch(e, evt); - } else { - EventsListener.getInstance(e).dispatchEvent(evt.cast()); - } - } - } - } -- cgit v1.2.3