mirror of
https://github.com/jlengrand/compose-multiplatform.git
synced 2026-05-08 15:51:08 +00:00
Codeviewer. Refactor
This commit is contained in:
@@ -45,10 +45,7 @@ fun Editor(file: File) = Editor(
|
||||
|
||||
fun content(index: Int): Editor.Content {
|
||||
val text = textLines.get(index)
|
||||
.trim('\n') // fix for native crash in Skia.
|
||||
// Workaround for another Skia problem with empty line layout.
|
||||
// TODO: maybe use another symbols, i.e. \u2800 or \u00a0.
|
||||
val state = mutableStateOf(if (text.isEmpty()) " " else text)
|
||||
val state = mutableStateOf(text)
|
||||
return Editor.Content(state, isCode)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
package org.jetbrains.codeviewer.platform
|
||||
|
||||
import androidx.compose.desktop.LocalAppWindow
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.composed
|
||||
import androidx.compose.ui.geometry.Offset
|
||||
import androidx.compose.ui.input.pointer.awtCursor
|
||||
import androidx.compose.ui.input.pointer.pointerIcon
|
||||
import androidx.compose.ui.input.pointer.pointerMoveFilter
|
||||
import java.awt.Cursor
|
||||
|
||||
@@ -17,17 +19,20 @@ actual fun Modifier.pointerMoveFilter(
|
||||
onMove: (Offset) -> Boolean
|
||||
): Modifier = this.pointerMoveFilter(onEnter = onEnter, onExit = onExit, onMove = onMove)
|
||||
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
actual fun Modifier.cursorForHorizontalResize(): Modifier = composed {
|
||||
var isHover by remember { mutableStateOf(false) }
|
||||
|
||||
if (isHover) {
|
||||
LocalAppWindow.current.window.cursor = Cursor(Cursor.E_RESIZE_CURSOR)
|
||||
} else {
|
||||
LocalAppWindow.current.window.cursor = Cursor.getDefaultCursor()
|
||||
}
|
||||
|
||||
pointerMoveFilter(
|
||||
onEnter = { isHover = true; true },
|
||||
onExit = { isHover = false; true }
|
||||
).pointerIcon(
|
||||
awtCursor(
|
||||
if (isHover) {
|
||||
Cursor(Cursor.E_RESIZE_CURSOR)
|
||||
} else {
|
||||
Cursor.getDefaultCursor()
|
||||
}
|
||||
)
|
||||
)
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.jetbrains.codeviewer.platform
|
||||
|
||||
import androidx.compose.desktop.DesktopTheme
|
||||
import androidx.compose.desktop.DesktopMaterialTheme
|
||||
import androidx.compose.runtime.Composable
|
||||
|
||||
@Composable
|
||||
actual fun PlatformTheme(content: @Composable () -> Unit) = DesktopTheme(content = content)
|
||||
actual fun PlatformTheme(content: @Composable () -> Unit) = DesktopMaterialTheme(content = content)
|
||||
Reference in New Issue
Block a user