Skip to content

Commit 42e800f

Browse files
committed
Position PopupContainerUi relative to PopupComponent root view
1 parent d34dc17 commit 42e800f

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

app/src/main/java/org/fcitx/fcitx5/android/input/popup/PopupComponent.kt

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -131,13 +131,7 @@ class PopupComponent :
131131
keys,
132132
labels
133133
)
134-
root.apply {
135-
add(keyboardUi.root, lParams {
136-
leftMargin = bounds.left + keyboardUi.offsetX
137-
topMargin = bounds.top + keyboardUi.offsetY
138-
})
139-
}
140-
showingContainerUi[viewId] = keyboardUi
134+
showPopupContainer(viewId, keyboardUi)
141135
}
142136

143137
private fun showMenu(viewId: Int, menu: KeyDef.Popup.Menu, bounds: Rect) {
@@ -152,13 +146,17 @@ class PopupComponent :
152146
{ dismissPopup(viewId) },
153147
menu.items,
154148
)
149+
showPopupContainer(viewId, menuUi)
150+
}
151+
152+
private fun showPopupContainer(viewId: Int, ui: PopupContainerUi) {
155153
root.apply {
156-
add(menuUi.root, lParams {
157-
leftMargin = bounds.left + menuUi.offsetX
158-
topMargin = bounds.top + menuUi.offsetY
154+
add(ui.root, lParams {
155+
leftMargin = ui.triggerBounds.left + ui.offsetX - rootBounds.left
156+
topMargin = ui.triggerBounds.top + ui.offsetY - rootBounds.top
159157
})
160158
}
161-
showingContainerUi[viewId] = menuUi
159+
showingContainerUi[viewId] = ui
162160
}
163161

164162
private fun changeFocus(viewId: Int, x: Float, y: Float): Boolean {

0 commit comments

Comments
 (0)