From f28f3bb8a5c3a2c4737d64049b2f794de37176c2 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Fri, 6 Feb 2009 11:50:52 +0000 Subject: [PATCH] Fix for #2504 - IFilterSelect popup in wrong position svn changeset:6748/svn branch:trunk --- .../terminal/gwt/client/ui/IFilterSelect.java | 16 +++++++++++++--- 1 file 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 ) -- 2.39.5