RFR: 8269429: Linux: Only the last APPLICATION_MODAL window behaves corretly
Kevin Rushforth
kcr at openjdk.java.net
Tue Jun 29 21:08:06 UTC 2021
On Mon, 28 Jun 2021 16:56:44 GMT, Thiago Milczarek Sayao <tsayao at openjdk.org> wrote:
> The PR approach is to set `gtk_window_set_keep_above` to true on APPLICATION_MODAL windows, so they will not stay behind non APPLICATION_MODAL windows.
>
> This is passed on WindowStage.java:198 as a mask.
>
> The weird thing is that `_enterModal()` is never called. This seems the right function to be called for `APPLICATION_MODAL`, as `_enterModalWithWindow` fits for `WINDOW_MODAL`.
I tried the test program attached to the JBS bug, and I'm not seeing the problem. Are there any special steps I need to take to see the bug? I also left a question about `WINDOW_MODAL` vs `APPLICATION_MODAL` windows.
Regarding the `{enter/exit/is}Modal` methods in `Window.java`, it looks like they stubs that are never called. Modality is handled by the toolkit using (as you found out) only the `setEnabled` method.
Finally, you have a typo in the title of both this PR and the JBS bug: `corretly` --> `correctly`
modules/javafx.graphics/src/main/native-glass/gtk/glass_window.cpp line 741:
> 739: } else if (modal) {
> 740: //this is used for APPLICATION_MODAL
> 741: gtk_window_set_keep_above(GTK_WINDOW(gtk_widget), TRUE);
Won't this also be set for `WINDOW_MODAL` windows? And if so, is this really what we want?
-------------
PR: https://git.openjdk.java.net/jfx/pull/551
More information about the openjfx-dev
mailing list