compose-multiplatform
compose-multiplatform copied to clipboard
Window content sometimes has wrong offset (by 1px) and overlapped by window border and titlebar (Windows 10)
import androidx.compose.desktop.Window
import androidx.compose.foundation.Canvas
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.nativeCanvas
import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.unit.IntSize
import org.jetbrains.skija.Canvas
import org.jetbrains.skija.Paint
fun main() = Window(size = IntSize(100, 100)) {
Canvas(
modifier = Modifier.fillMaxSize()
) {
val canvas = drawContext.canvas.nativeCanvas
val paint = Paint().apply {
strokeWidth = 1f
color = Color.Red.toArgb()
}
canvas.drawLine(10f, 0f, 20f, 0f, paint)
canvas.drawLine(20f, 0.5f, 30f, 0.5f, paint)
canvas.drawLine(30f, 1f, 40f, 1f, paint)
canvas.drawLine(40f, 1.5f, 50f, 1.5f, paint)
canvas.drawLine(50f, 2f, 60f, 2f, paint)
canvas.drawLine(0f, 10f, 0f, 20f, paint)
canvas.drawLine(0.5f, 20f, 0.5f, 30f, paint)
canvas.drawLine(1f, 30f, 1f, 40f, paint)
canvas.drawLine(1.5f, 40f, 1.5f, 50f, paint)
canvas.drawLine(2f, 50f, 2f, 60f, paint)
}
}

Image painted with Skija directly into file:

Offset differs if we change size of the window or scale in the system.
Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.