From 3088fae40b3c32dc20ce480b7a5399b61cd21bfc Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Wed, 4 Feb 2009 15:49:40 +0000 Subject: [PATCH] fixes #2504, filterselect now compatible with ridiculous sized item icons svn changeset:6732/svn branch:trunk --- .../terminal/gwt/client/ui/IFilterSelect.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) 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) { /* -- 2.39.5