On Sun, 15 Oct 2023 13:25:15 GMT, Thiago Milczarek Sayao <tsa...@openjdk.org> wrote:
>> The bug on the title happens because `gtk_widget_realize()` was called on >> the constructor. It creates the internal underlying window `GdkWindow` and >> `XWindow` messing the Gtk expected order. It actually it's probably a Mutter >> change rather than Gtk. But makes sense to not realize it before expected on >> the gtk/mutter flow. >> >> I moved the code to get the `GdkWindow` to the realize event. >> >> Had to change the background function because it's called before realize. >> >> The initial **Maximized** and **FullScreen** situations are probably a bug >> on Mutter [filed here](https://gitlab.gnome.org/GNOME/mutter/-/issues/3092). >> >> I could work-around it on this situation, but it would still happen on later >> focus request. >> >> >> This also fixes [JDK-8316425](https://bugs.openjdk.org/browse/JDK-8316425) > > Thiago Milczarek Sayao has updated the pull request incrementally with one > additional commit since the last revision: > > Fix background This pure gtk program also reports: Window is now iconified (minimized). Window is now de-iconified (unminimized). Window is now iconified (minimized). #include <gtk/gtk.h> // Callback function for handling window state changes void on_window_state_event(GtkWidget *window, GdkEventWindowState *event, gpointer user_data) { if (event->changed_mask & GDK_WINDOW_STATE_ICONIFIED) { if (event->new_window_state & GDK_WINDOW_STATE_ICONIFIED) { g_print("Window is now iconified (minimized).\n"); } else { g_print("Window is now de-iconified (unminimized).\n"); } } } int main(int argc, char *argv[]) { GtkWidget *window; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "Iconified Window"); gtk_window_set_default_size(GTK_WINDOW(window), 400, 300); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); // Connect the callback to the window state event g_signal_connect(G_OBJECT(window), "window-state-event", G_CALLBACK(on_window_state_event), NULL); // Start the window iconified (minimized) gtk_window_iconify(GTK_WINDOW(window)); gtk_widget_show_all(window); gtk_main(); return 0; } `gcc -o testiconified testiconified.c $(pkg-config --cflags --libs gtk+-3.0)` I would guess it's some X11 requirement to get window properties or something like that. ------------- PR Comment: https://git.openjdk.org/jfx/pull/1249#issuecomment-1778166223