Skip to content

Commit ec9625b

Browse files
fix: properly placed secondary icon to the top right corner of key.
1 parent 9eed398 commit ec9625b

File tree

1 file changed

+21
-15
lines changed

1 file changed

+21
-15
lines changed

app/src/main/kotlin/com/simplemobiletools/keyboard/views/MyKeyboardView.kt

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -618,30 +618,36 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
618618
val secondaryIcon = key.secondaryIcon
619619

620620
if (secondaryIcon != null) {
621-
val keyIconWidth = (keyIcon.intrinsicWidth * .8).toInt()
622-
val keyIconHeight = (keyIcon.intrinsicWidth * .8).toInt()
623-
val secondaryIconWidth = (secondaryIcon.intrinsicWidth * .4).toInt()
624-
val secondaryIconHeight = (secondaryIcon.intrinsicHeight * .4).toInt()
621+
val keyIconWidth = (keyIcon.intrinsicWidth * .8f).toInt()
622+
val keyIconHeight = (keyIcon.intrinsicHeight * .8f).toInt()
623+
val secondaryIconWidth = (secondaryIcon.intrinsicWidth * .6f).toInt()
624+
val secondaryIconHeight = (secondaryIcon.intrinsicHeight * .6f).toInt()
625625

626-
val drawableX = (key.width - keyIconWidth) / 2
627-
val drawableY = (key.height - keyIconHeight) / 2
626+
val centerX = key.width / 2
627+
val centerY = key.height / 2
628628

629-
canvas.translate(drawableX.toFloat(), drawableY.toFloat())
629+
val keyIconLeft = centerX - keyIconWidth / 2
630+
val keyIconTop = centerY - keyIconHeight / 2
630631

631-
keyIcon.setBounds(0, 0, keyIconWidth, keyIconHeight)
632+
keyIcon.setBounds(keyIconLeft, keyIconTop, keyIconLeft + keyIconWidth, keyIconTop + keyIconHeight)
632633
keyIcon.draw(canvas)
633634

634-
val secIconPaddingBottom = 8
635-
val secIconPaddingRight = 4
635+
val secondaryIconPaddingRight = 8
636+
val secondaryIconLeft = key.width - secondaryIconPaddingRight - secondaryIconWidth
637+
val secondaryIconRight = secondaryIconLeft + secondaryIconWidth
638+
639+
val secondaryIconTop = 12 // This will act as a topPadding
640+
val secondaryIconBottom = secondaryIconTop + secondaryIconHeight
641+
636642
secondaryIcon.setBounds(
637-
keyIconWidth - secIconPaddingRight,
638-
-secIconPaddingBottom,
639-
(keyIconWidth + secondaryIconWidth) - secIconPaddingRight,
640-
secondaryIconHeight - secIconPaddingBottom
643+
secondaryIconLeft,
644+
secondaryIconTop,
645+
secondaryIconRight,
646+
secondaryIconBottom
641647
)
642648
secondaryIcon.draw(canvas)
643649

644-
canvas.translate(-drawableX.toFloat(), -drawableY.toFloat())
650+
secondaryIcon.draw(canvas)
645651
} else {
646652
val drawableX = (key.width - keyIcon.intrinsicWidth) / 2
647653
val drawableY = (key.height - keyIcon.intrinsicHeight) / 2

0 commit comments

Comments
 (0)