From: Matti Tahvonen Date: Tue, 10 Jun 2008 08:43:41 +0000 (+0000) Subject: fixes #1091 X-Git-Tag: 6.7.0.beta1~4628 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=b4dc847a2868f09622b712b2820251fa3c83c582;p=vaadin-framework.git fixes #1091 svn changeset:4827/svn branch:trunk --- diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IWindow.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IWindow.java index 764e7ebe65..1df4f0f683 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IWindow.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IWindow.java @@ -157,8 +157,6 @@ public class IWindow extends PopupPanel implements Paintable, ScrollListener { DOM.setElementProperty(closeBox, "className", CLASSNAME + "-closebox"); DOM.appendChild(footer, resizeBox); - DOM.sinkEvents(header, Event.MOUSEEVENTS); - DOM.sinkEvents(resizeBox, Event.MOUSEEVENTS); DOM.sinkEvents(getElement(), Event.ONLOSECAPTURE); DOM.sinkEvents(closeBox, Event.ONCLICK); DOM.sinkEvents(contents, Event.ONCLICK); @@ -180,6 +178,8 @@ public class IWindow extends PopupPanel implements Paintable, ScrollListener { DOM.appendChild(super.getContainerElement(), wrapper); DOM.setElementProperty(getElement(), "className", CLASSNAME); + sinkEvents(Event.MOUSEEVENTS); + setWidget(contentPanel); } @@ -487,16 +487,18 @@ public class IWindow extends PopupPanel implements Paintable, ScrollListener { } final Element target = DOM.eventGetTarget(event); - if (dragging || DOM.isOrHasChild(header, target)) { - onHeaderEvent(event); - DOM.eventCancelBubble(event, true); - } else if (resizing || DOM.compare(resizeBox, target)) { + if (resizing || DOM.compare(resizeBox, target)) { onResizeEvent(event); DOM.eventCancelBubble(event, true); - } else if (DOM.compare(target, closeBox) && type == Event.ONCLICK) { - onCloseClick(); + } else if (DOM.compare(target, closeBox)) { + if (type == Event.ONCLICK) { + onCloseClick(); + DOM.eventCancelBubble(event, true); + } + } else if (dragging || !DOM.isOrHasChild(contents, target)) { + onDragEvent(event); DOM.eventCancelBubble(event, true); - } else { + } else if (type == Event.ONCLICK) { // clicked inside window, ensure to be on top if (!isActive()) { bringToFront(); @@ -576,7 +578,7 @@ public class IWindow extends PopupPanel implements Paintable, ScrollListener { } } - private void onHeaderEvent(Event event) { + private void onDragEvent(Event event) { switch (DOM.eventGetType(event)) { case Event.ONMOUSEDOWN: if (!isActive()) { @@ -615,7 +617,7 @@ public class IWindow extends PopupPanel implements Paintable, ScrollListener { public boolean onEventPreview(Event event) { if (dragging) { - onHeaderEvent(event); + onDragEvent(event); return false; } else if (resizing) { onResizeEvent(event);