diff options
author | Artur Signell <artur.signell@itmill.com> | 2009-02-06 11:50:52 +0000 |
---|---|---|
committer | Artur Signell <artur.signell@itmill.com> | 2009-02-06 11:50:52 +0000 |
commit | f28f3bb8a5c3a2c4737d64049b2f794de37176c2 (patch) | |
tree | 8ffe4f9ea3d2557450b90b385bb2988b1848dbd9 /src | |
parent | 5bcbadd9d28dd4055879d85c7a6d41b9ea5da46e (diff) | |
download | vaadin-framework-f28f3bb8a5c3a2c4737d64049b2f794de37176c2.tar.gz vaadin-framework-f28f3bb8a5c3a2c4737d64049b2f794de37176c2.zip |
Fix for #2504 - IFilterSelect popup in wrong position
svn changeset:6748/svn branch:trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java | 16 |
1 files changed, 13 insertions, 3 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 89d5f482f3..c7d224c70e 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IFilterSelect.java @@ -103,6 +103,8 @@ public class IFilterSelect extends Composite implements Paintable, Field, private int popupOuterPadding = -1; + private int topPosition; + SuggestionPopup() { super(true, false, true); menu = new SuggestionMenu(); @@ -136,9 +138,10 @@ public class IFilterSelect extends Composite implements Paintable, Field, menu.setSuggestions(currentSuggestions); final int x = IFilterSelect.this.getAbsoluteLeft(); - int y = tb.getAbsoluteTop(); - y += tb.getOffsetHeight(); - setPopupPosition(x, y); + topPosition = tb.getAbsoluteTop(); + topPosition += tb.getOffsetHeight(); + setPopupPosition(x, topPosition); + final int first = currentPage * PAGELENTH + (nullSelectionAllowed && currentPage > 0 ? 0 : 1); final int last = first + currentSuggestions.size() - 1; @@ -328,6 +331,13 @@ public class IFilterSelect extends Composite implements Paintable, Field, } } else { top = getPopupTop(); + /* + * Take popup top margin into account. getPopupTop() returns the + * top value including the margin but the value we give must not + * include the margin. + */ + int topMargin = (top - topPosition); + top -= topMargin; } // fetch real width (mac FF bugs here due GWT popups overflow:auto ) |