diff options
-rw-r--r-- | src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java index 3352ed26a7..89d5f482f3 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java @@ -404,6 +404,19 @@ public class IFilterSelect extends Composite implements Paintable, Field, while (it.hasNext()) { final FilterSelectSuggestion s = it.next(); final MenuItem mi = new MenuItem(s.getDisplayString(), true, s); + + com.google.gwt.dom.client.Element child = mi.getElement() + .getFirstChildElement(); + while (child != null) { + if (child.getNodeName().toLowerCase().equals("img")) { + DOM + .sinkEvents((Element) child.cast(), + (DOM.getEventsSunk((Element) child + .cast()) | Event.ONLOAD)); + } + child = child.getNextSiblingElement(); + } + this.addItem(mi); if (s == currentSuggestion) { selectItem(mi); @@ -458,6 +471,19 @@ public class IFilterSelect extends Composite implements Paintable, Field, } suggestionPopup.hide(); } + + @Override + public void onBrowserEvent(Event event) { + if (event.getTypeInt() == Event.ONLOAD) { + if (suggestionPopup.isVisible()) { + setWidth(""); + DOM.setStyleAttribute(DOM.getFirstChild(getElement()), + "width", ""); + suggestionPopup.setPopupPositionAndShow(suggestionPopup); + } + } + super.onBrowserEvent(event); + } } public static final int FILTERINGMODE_OFF = 0; @@ -897,6 +923,12 @@ public class IFilterSelect extends Composite implements Paintable, Field, updateRootWidth(); } + @Override + public void setHeight(String height) { + super.setHeight(height); + Util.setHeightExcludingPaddingAndBorder(tb, height, 3); + } + private void updateRootWidth() { if (width == null) { /* |