OSDN Git Service

Fix FloatingToolbar popup positioning.
authorAbodunrinwa Toki <toki@google.com>
Tue, 3 May 2016 15:25:41 +0000 (16:25 +0100)
committerAbodunrinwa Toki <toki@google.com>
Tue, 3 May 2016 15:25:41 +0000 (16:25 +0100)
The FloatingToolbar popup wrongly assumes that the main content panel
is wider than the overflow panel. In situations where this assumption
fails, the toolbar popup is positioned wrongly within it's container
window and items appear truncated. This CL fixes this issue.

Bug: 28550367
Change-Id: I41669b1deed7dd34f0b2bd060d14452482d3d36c

core/java/com/android/internal/widget/FloatingToolbar.java

index bc12391..8cc8509 100644 (file)
@@ -909,8 +909,8 @@ public final class FloatingToolbar {
                     mOverflowPanel.setX(0);  // align left
                 } else {
                     mContentContainer.setX(  // align right
-                            mMarginHorizontal +
-                                    mMainPanelSize.getWidth() - containerSize.getWidth());
+                            mPopupWindow.getWidth() -
+                                    containerSize.getWidth() - mMarginHorizontal);
                     mMainPanel.setX(-mContentContainer.getX());  // align right
                     mOverflowButton.setX(0);  // align left
                     mOverflowPanel.setX(0);  // align left
@@ -949,7 +949,9 @@ public final class FloatingToolbar {
                         mOverflowButton.setX(0);  // align left
                         mOverflowPanel.setX(0);  // align left
                     } else {
-                        mContentContainer.setX(mMarginHorizontal);  // align left
+                        mContentContainer.setX(  // align right
+                                mPopupWindow.getWidth() -
+                                        containerSize.getWidth() - mMarginHorizontal);
                         mMainPanel.setX(0);  // align left
                         mOverflowButton.setX(  // align right
                                 containerSize.getWidth() - mOverflowButtonSize.getWidth());