Skip to content

Commit

Permalink
Place interop on top if alpha blending doesn't work
Browse files Browse the repository at this point in the history
  • Loading branch information
MatkovIvan committed Nov 28, 2023
1 parent 7493270 commit 2424eee
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ class ComposePanel @ExperimentalComposeUiApi constructor(
}

override fun add(component: Component): Component {
super.setLayer(component, /* layer = */ 0)
super.setLayer(component, componentLayer)
return super.add(component)
}

Expand All @@ -180,6 +180,14 @@ class ComposePanel @ExperimentalComposeUiApi constructor(
super.add(bridge.component)
}

// Place it to top if alpha blending doesn't work
private val componentLayer: Int
get() = if (isAlphaBlendingWorking) 0 else 20

// TODO: Support for all platforms
private val isAlphaBlendingWorking
get() = renderApi == GraphicsApi.METAL || bridge is SwingComposeBridge

override fun addNotify() {
super.addNotify()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ internal class ComposeWindowDelegate(
}

override fun add(component: Component): Component {
super.setLayer(component, /* layer = */ 0)
super.setLayer(component, componentLayer)
return super.add(component)
}

Expand All @@ -83,6 +83,14 @@ internal class ComposeWindowDelegate(
super.add(bridge.component)
}

// Place it to top if alpha blending doesn't work
private val componentLayer: Int
get() = if (isAlphaBlendingWorking) 0 else 20

// TODO: Support for all platforms
private val isAlphaBlendingWorking
get() = renderApi == GraphicsApi.METAL

override fun addNotify() {
super.addNotify()
bridge.component.requestFocus()
Expand Down

0 comments on commit 2424eee

Please sign in to comment.