Resizing stage while it is maximized breaks scene size on Linux
Christopher Schnick
crschnick at xpipe.io
Sat Mar 29 12:52:41 UTC 2025
Thanks, yeah I did not submit an issue there because I don't like the
bug report website form. But that is another story.
I looked at the PR, seems to be pretty straightforward. Thinking about
this, I have not tested how it behaves with the fullscreen property
instead of the maximized property as I rarely use that. Maybe that also
needs to be covered.
On 29/03/2025 13:24, Thiago Milczarek Sayão wrote:
> I did not find a bug report, so I did one and provided a fix:
>
> https://github.com/openjdk/jfx/pull/1748
>
>
>
> Em sáb., 29 de mar. de 2025 às 08:26, Thiago Milczarek Sayão
> <thiago.sayao at gmail.com> escreveu:
>
> @Christopher Schnick <mailto:crschnick at xpipe.io>
>
> Hi, did you open a bug? I have a fix for this.
>
> Thanks
>
> -- Thiago.
>
> Em seg., 17 de mar. de 2025 às 09:49, Christopher Schnick
> <crschnick at xpipe.io> escreveu:
>
> So on Windows at least, it will change the width temporarily
> and then revert back to the original width value. So you will
> receive two width change events if you listen to the stage
> width property. The maximized property is not changed.
>
> I guess this also not optimal handling of this. Ideally, no
> changes would be made in that case.
>
> On 17/03/2025 10:53, Thiago Milczarek Sayão wrote:
>> Hi Christopher,
>>
>> It seems like a simple fix.
>>
>> How does it behave on other platforms? Does it ignore the
>> resize, restore the window to its unmaximized state before
>> resizing, or keep it maximized while adjusting the
>> unmaximized size.
>>
>> -- Thiago
>>
>>
>>
>>
>>
>>
>> Em dom., 16 de mar. de 2025 às 05:25, Christopher Schnick
>> <crschnick at xpipe.io> escreveu:
>>
>> Hello,
>>
>> we encountered an issue on Linux where resizing the stage
>> while it is maximized breaks the size of the scene. You
>> can see a video of this at
>> https://github.com/xpipe-io/xpipe/issues/485 . The root
>> cause is that the stage size is modified.
>>
>> When doing this, it temporarily or permanently switches
>> to the size the stage had prior to being maximized,
>> leading to either a flicker or a permanently broken scene
>> that has the wrong size. This happens on Gnome and KDE
>> for me with the latest JavaFX ea version.
>>
>> Here is a simple reproducer:
>>
>> import javafx.application.Application;
>> import javafx.scene.Scene;
>> import javafx.scene.control.Button;
>> import javafx.scene.layout.Region;
>> import javafx.scene.layout.StackPane;
>> import javafx.stage.Stage;
>>
>> import java.io.IOException;
>> import java.util.Base64;
>>
>> public class MaximizeLinuxBugextends Application {
>>
>> @Override public void start(Stage stage)throws IOException {
>> Scene scene =new Scene(createContent(),640,480);
>> var s ="data:text/css;base64," + Base64.getEncoder().encodeToString(createCss().getBytes());
>> scene.getStylesheets().add(s);
>> stage.setTitle("Hello!");
>> stage.setScene(scene);
>> stage.show();
>> stage.centerOnScreen();
>> stage.setMaximized(true);
>> }
>>
>> private StringcreateCss() {
>> return """ * { -fx-border-color: red; -fx-border-width:
>> 1; } """;
>> }
>>
>> private RegioncreateContent() {
>> var button =new Button("Click me!");
>> button.setOnAction(event -> {
>> var w =button.getScene().getWindow();
>> w.setWidth(w.getWidth() -1);
>> event.consume();
>> });
>> var stack =new StackPane(button);
>> return stack;
>> }
>>
>> public static void main(String[] args) {
>> launch();
>> }
>> }
>>
>>
>> Best
>> Christopher Schnick
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250329/aca96724/attachment.htm>
More information about the openjfx-dev
mailing list