-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
When using SwingPanel in Compose for Desktop, it blocks PopupWindow #3353
Labels
bug
Something isn't working
Comments
It seems to be related to #2926 |
MatkovIvan
added a commit
to JetBrains/compose-multiplatform-core
that referenced
this issue
Dec 15, 2023
## Proposed Changes - Adopt an approach that we're using for iOS - using custom blending to respect clip/shape modifiers and overlapped drawings. - Fix bounds in window calculation - it should work properly inside scaled content now. ## Testing The new behavior is under a feature flag, so you can test it by setting system property: ```kt System.setProperty("compose.interop.blending", "true") ``` Currently it supports Metal (macOS), Direct3D (Windows) (requires JetBrains/skiko#837), and off-screen rendering (might be enable by another feature flag: `compose.swing.render.on.graphics`) ### Clipping ```kt SwingPanel( modifier = Modifier.clip(RoundedCornerShape(6.dp)) ... ) ``` <img width="262" alt="image" src="https://github.com/JetBrains/compose-multiplatform-core/assets/1836384/a03926f5-8977-4530-8894-d84aedfd5939"> ### Overlapping ```kt Box(modifier = Modifier.fillMaxSize()) { SwingPanel(factory = { JPanel().also { panel -> panel.background = java.awt.Color.red panel.add(JButton().also { button -> button.text = "JButton" }) } }) Snackbar( action = { Button(onClick = {}) { Text("OK") } }, modifier = Modifier.padding(8.dp).align(Alignment.BottomCenter), ) { Text("Snackbar") } Popup(alignment = Alignment.Center) { Box( modifier = Modifier.size(200.dp, 100.dp).background(Gray), contentAlignment = Alignment.Center, ) { Text("Popup") } } } ``` <img width="592" alt="Screenshot 2023-11-27 at 13 57 43" src="https://github.com/JetBrains/compose-multiplatform-core/assets/1836384/dda1f2d6-6a1e-456c-8763-46a82d9562a8"> ## Issues Fixed Fixes JetBrains/compose-multiplatform#3823 Fixes JetBrains/compose-multiplatform#3739 Fixes JetBrains/compose-multiplatform#3353 Fixes JetBrains/compose-multiplatform#3474
Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Describe the bug
When using SwingPanel in Compose for Desktop, it blocks PopupWindow
Affected platforms
Select one of the platforms below:
Versions
The text was updated successfully, but these errors were encountered: