aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorArtur Signell <artur.signell@itmill.com>2009-02-06 11:50:52 +0000
committerArtur Signell <artur.signell@itmill.com>2009-02-06 11:50:52 +0000
commitf28f3bb8a5c3a2c4737d64049b2f794de37176c2 (patch)
tree8ffe4f9ea3d2557450b90b385bb2988b1848dbd9 /src
parent5bcbadd9d28dd4055879d85c7a6d41b9ea5da46e (diff)
downloadvaadin-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.java16
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 )