Commit 2faf120c authored by Roman Sedaikin's avatar Roman Sedaikin

Fixed flickering on Mac OS when using Canvas.saveLayer().

parent 0cf199f8
...@@ -39,10 +39,16 @@ fun createWindow(title: String) { ...@@ -39,10 +39,16 @@ fun createWindow(title: String) {
// Create menu. // Create menu.
val menuBar = JMenuBar() val menuBar = JMenuBar()
try {
System.setProperty("apple.laf.useScreenMenuBar", "true")
java.awt.Desktop.getDesktop().setDefaultMenuBar(menuBar)
} catch (e: UnsupportedOperationException) {
// Not all platforms allow this.
}
val menu = JMenu("File") val menu = JMenu("File")
menuBar.add(menu) menuBar.add(menu)
val menuItem = JMenuItem("Say Hello") val menuItem = JMenuItem("Say Hello")
val ctrlJ = KeyStroke.getKeyStroke(KeyEvent.VK_J, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()) val ctrlJ = KeyStroke.getKeyStroke(KeyEvent.VK_J, Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx())
menuItem.setAccelerator(ctrlJ) menuItem.setAccelerator(ctrlJ)
menuItem.addActionListener(object : ActionListener { menuItem.addActionListener(object : ActionListener {
override fun actionPerformed(actionEvent: ActionEvent?) { override fun actionPerformed(actionEvent: ActionEvent?) {
...@@ -52,11 +58,7 @@ fun createWindow(title: String) { ...@@ -52,11 +58,7 @@ fun createWindow(title: String) {
menu.add(menuItem) menu.add(menuItem)
window.setJMenuBar(menuBar) window.setJMenuBar(menuBar)
try {
java.awt.Desktop.getDesktop().setDefaultMenuBar(menuBar)
} catch (e: UnsupportedOperationException) {
// Not all platforms allow this.
}
val state = State() val state = State()
state.text = title state.text = title
......
...@@ -51,12 +51,11 @@ open class SkiaLayer : HardwareLayer() { ...@@ -51,12 +51,11 @@ open class SkiaLayer : HardwareLayer() {
if (skijaState.context == null) { if (skijaState.context == null) {
skijaState.context = Context.makeGL() skijaState.context = Context.makeGL()
} }
initSkija()
renderer?.onInit() renderer?.onInit()
inited = true inited = true
renderer?.onReshape(width, height) renderer?.onReshape(width, height)
} }
initSkija()
skijaState.apply { skijaState.apply {
canvas!!.clear(-1) canvas!!.clear(-1)
renderer?.onRender(canvas!!, width, height) renderer?.onRender(canvas!!, width, height)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment