Try this instead.  The gtk_widget_show_all() then gtk_widget_hide() then
gtk_widget_show() is the cause of your problem; unless you were thinking
the window should blink once before appearing.

James,

    #include <gtk/gtk.h>

> 
>     static void
>     button_clicked_cb(GtkButton *button, gpointer data)
>     {
>       GtkWidget *window2;
>       window2 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
>       gtk_widget_show_all(window2);
>     }
> 
>     int
>     main(int argc, char **argv)
>     {
>       GtkWidget *window;
>       GtkWidget *button;
> 
>       gtk_init(&argc, &argv);
> 
>       window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
>       g_signal_connect(G_OBJECT(window), "delete_event",
>                        G_CALLBACK(gtk_main_quit), NULL);
> 
>       button = gtk_button_new_with_label("Click me");
>       g_signal_connect(G_OBJECT(button), "clicked",
>                        G_CALLBACK(button_clicked_cb), NULL);
>       gtk_container_add(GTK_CONTAINER(window), button);
> 
>       gtk_widget_show_all(window);
>       gtk_main();
> 
>       return 0;
>     }


On Mon, 2007-08-27 at 19:00 +0000, G. Paul Ziemba wrote:

> Greetings,
> 
> gtk_widget_show() does not seem to be operating the way I expect;
> could one of the experts please tell me if something is wrong with
> this code or if something is wrong with gtk?
> 
> When I run this small bit of code, the window appears briefly
> and then disappears immediately. The program does not exit.
> I expect the window to stay visible (due to gtk_widget_show()),
> but it's not happening.
> 
> many thanks!
> 
> Versions:
>     OS: FreeBSD 6.2-STABLE #0: Sun Jun  3 19:55:09 PDT 2007
>     gtk: gtk-2.10.12, gtk-2.10.14
> 
> 
> Test program compiled with:
>     gcc -o test test.c `pkg-config --cflags --libs gtk+-2.0`
> 
> Test Program:
>     #include <gtk/gtk.h>
> 
>     static void
>     button_clicked_cb(GtkButton *button, gpointer data)
>     {
>       GtkWidget *window2;
>       window2 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
>       gtk_widget_show_all(window2);
>       gtk_widget_hide(window2);
>       gtk_widget_show(window2);
>     }
> 
>     int
>     main(int argc, char **argv)
>     {
>       GtkWidget *window;
>       GtkWidget *button;
> 
>       gtk_init(&argc, &argv);
> 
>       window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
>       g_signal_connect(G_OBJECT(window), "delete_event",
>                        G_CALLBACK(gtk_main_quit), NULL);
> 
>       button = gtk_button_new_with_label("Click me");
>       g_signal_connect(G_OBJECT(button), "clicked",
>                        G_CALLBACK(button_clicked_cb), NULL);
>       gtk_container_add(GTK_CONTAINER(window), button);
> 
>       gtk_widget_show_all(window);
>       gtk_widget_hide(window);
>       gtk_widget_show(window);
> 
>       gtk_main();
> 
>       return 0;
>     }
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to