| Summary: | [Wayland] Eclipse modal dialog shows without decorations, cannot be moved, renders partially off screen | ||
|---|---|---|---|
| Product: | [Plasma] kwin | Reporter: | Oded Arbel <oded> |
| Component: | general | Assignee: | KWin default assignee <kwin-bugs-null> |
| Status: | RESOLVED DOWNSTREAM | ||
| Severity: | normal | CC: | kde |
| Priority: | NOR | ||
| Version First Reported In: | git-stable-Plasma/5.27 | ||
| Target Milestone: | --- | ||
| Platform: | Other | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: |
A screenshot showing the problem
Screenshot showing how the windows are rendered Screenshot showing how the modal dialog is rendered relative to a floating window Kwin debug console showing the surfaces |
||
|
Description
Oded Arbel
2023-11-10 07:00:23 UTC
Created attachment 162999 [details]
Screenshot showing how the windows are rendered
With Spectactle's "window screenshot" we can see how the certificate dialog is rendered relative to the maximized Eclipse window. Everything that is rendered below the bottom edge of the main window is obscured by the panel or is actually off screen.
Created attachment 163000 [details]
Screenshot showing how the modal dialog is rendered relative to a floating window
If the Eclipse window is not maximized, the certificate dialog is rendered completely under the main window. By moving Eclipse to my vertical screen, I can access the dialog's action buttons.
Created attachment 163001 [details]
Kwin debug console showing the surfaces
KWin debug console's window list only shows the main Eclipse window.
I can use kwin's Kwin/org.kde.Kwin::queryWindowInfo DBus method to get the window info for the modal dialog - it is basically the details for the Eclipse main window:
Arguments: [Argument: a{sv} {"activities" = [Variant(QStringList): {"114ebbc8-f947-493d-bc5e-3762eab23c9a"}], "caption" = [Variant(QString): "kappas - java-server/src/main/java/club/kappas/api/entities/Users.java - Eclipse Platform"], "clientMachine" = [Variant(QString): ""], "desktopFile" = [Variant(QString): "Eclipse"], "desktops" = [Variant(QStringList): {"{e3664924-83a8-4444-b84a-d2b1a5d0d071}"}], "fullscreen" = [Variant(bool): false], "height" = [Variant(double): 741], "keepAbove" = [Variant(bool): false], "keepBelow" = [Variant(bool): false], "localhost" = [Variant(bool): true], "maximizeHorizontal" = [Variant(int): 2], "maximizeVertical" = [Variant(int): 0], "minimized" = [Variant(bool): false], "noBorder" = [Variant(bool): false], "resourceClass" = [Variant(QString): "Eclipse"], "resourceName" = [Variant(QString): "java"], "role" = [Variant(QString): ""], "shaded" = [Variant(bool): false], "skipPager" = [Variant(bool): false], "skipSwitcher" = [Variant(bool): false], "skipTaskbar" = [Variant(bool): false], "type" = [Variant(int): 0], "uuid" = [Variant(QString): "{c18f6283-452c-416f-8d75-fc421d608efe}"], "width" = [Variant(double): 1200], "x" = [Variant(double): 0], "y" = [Variant(double): 0]}]
When I do the same thing for an Eclipse modal dialog that shows correctly (such as the "Find" or "Open type" dialogs), I can see it has a different UUID than the main window, for example:
Arguments: [Argument: a{sv} {"activities" = [Variant(QStringList): {"114ebbc8-f947-493d-bc5e-3762eab23c9a"}], "caption" = [Variant(QString): "Open Type"], "clientMachine" = [Variant(QString): ""], "desktopFile" = [Variant(QString): "Eclipse"], "desktops" = [Variant(QStringList): {"{a31763c5-0597-4253-9438-632318c6a38f}"}], "fullscreen" = [Variant(bool): false], "height" = [Variant(double): 618], "keepAbove" = [Variant(bool): false], "keepBelow" = [Variant(bool): false], "localhost" = [Variant(bool): true], "maximizeHorizontal" = [Variant(int): 0], "maximizeVertical" = [Variant(int): 0], "minimized" = [Variant(bool): false], "noBorder" = [Variant(bool): false], "resourceClass" = [Variant(QString): "Eclipse"], "resourceName" = [Variant(QString): "java"], "role" = [Variant(QString): ""], "shaded" = [Variant(bool): false], "skipPager" = [Variant(bool): false], "skipSwitcher" = [Variant(bool): false], "skipTaskbar" = [Variant(bool): false], "type" = [Variant(int): 0], "uuid" = [Variant(QString): "{e23f241e-dcb6-4647-b641-11640aa43043}"], "width" = [Variant(double): 398], "x" = [Variant(double): 402], "y" = [Variant(double): 652]}]
A normal working modal dialog also shows in KWin debug console's window list, which the broken certificates dialog does not.
Another thing about the KWin debug console - in screenshot 4 we can see that the certificates dialog is shown as a "child surface" of the main Eclipse widow (not that I know what it means): this is also different than standard Eclipse modal dialogs, with which the KWin debug console lists their surfaces as independent on the surfaces list. I'm using kwin from Neon stable (user) build: 4:5.27.9-0xneon+22.04+jammy+release+build47 This is an eclipse bug Please report it there. |