New preference for candidate window corner radius (#711)

Co-authored-by: Rocka <i@rocka.me>
This commit is contained in:
mokapsing 2025-05-09 21:02:54 +08:00 committed by GitHub
parent 37bbbd8c47
commit e414817d01
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 14 additions and 2 deletions

View File

@ -294,6 +294,9 @@ class AppPrefs(private val sharedPreferences: SharedPreferences) {
val fontSize =
int(R.string.candidates_font_size, "candidates_window_font_size", 20, 4, 64, "sp")
val windowRadius =
int(R.string.candidates_window_radius, "candidates_window_radius", 0, 0, 48, "dp")
val itemPaddingVertical: ManagedPreference.PInt
val itemPaddingHorizontal: ManagedPreference.PInt

View File

@ -6,8 +6,10 @@
package org.fcitx.fcitx5.android.input
import android.annotation.SuppressLint
import android.graphics.drawable.GradientDrawable
import android.os.Build
import android.view.ViewGroup
import android.view.ViewOutlineProvider
import android.view.ViewTreeObserver.OnGlobalLayoutListener
import android.view.ViewTreeObserver.OnPreDrawListener
import android.view.WindowInsets
@ -22,7 +24,6 @@ import org.fcitx.fcitx5.android.data.theme.Theme
import org.fcitx.fcitx5.android.input.candidates.floating.PagedCandidatesUi
import org.fcitx.fcitx5.android.input.preedit.PreeditUi
import splitties.dimensions.dp
import splitties.views.backgroundColor
import splitties.views.dsl.constraintlayout.below
import splitties.views.dsl.constraintlayout.bottomOfParent
import splitties.views.dsl.constraintlayout.centerHorizontally
@ -49,6 +50,7 @@ class CandidatesView(
private val orientation by candidatesPrefs.orientation
private val windowMinWidth by candidatesPrefs.windowMinWidth
private val windowPadding by candidatesPrefs.windowPadding
private val windowRadius by candidatesPrefs.windowRadius
private val fontSize by candidatesPrefs.fontSize
private val itemPaddingVertical by candidatesPrefs.itemPaddingVertical
private val itemPaddingHorizontal by candidatesPrefs.itemPaddingHorizontal
@ -186,7 +188,13 @@ class CandidatesView(
minWidth = dp(windowMinWidth)
padding = dp(windowPadding)
backgroundColor = theme.backgroundColor
background = GradientDrawable().apply {
setColor(theme.backgroundColor)
shape = GradientDrawable.RECTANGLE
cornerRadius = dp(windowRadius).toFloat()
}
clipToOutline = true
outlineProvider = ViewOutlineProvider.BACKGROUND
add(preeditUi.root, lParams(wrapContent, wrapContent) {
topOfParent()
startOfParent()

View File

@ -270,6 +270,7 @@
<string name="crop">Crop</string>
<string name="candidates_window">Candidates Window</string>
<string name="show_candidates_window">Show candidates window</string>
<string name="candidates_window_radius">Candidates window radius</string>
<string name="follow_input_device">Depends on input device</string>
<string name="candidates_orientation">Candidates list orientation</string>
<string name="automatic">Automatic</string>