GNOME Bugzilla – Bug 172798
gtk_set_locale is already run by gtk_init and gtk about does not have the gcalctool icon
Last modified: 2005-04-06 15:34:39 UTC
Please describe the problem: Index: gcalctool/gtk.c =================================================================== RCS file: /cvs/gnome/gcalctool/gcalctool/gtk.c,v retrieving revision 1.165 diff -u -r1.165 gtk.c --- gcalctool/gtk.c 31 Mar 2005 18:38:27 -0000 1.165 +++ gcalctool/gtk.c 6 Apr 2005 12:20:55 -0000 @@ -454,7 +454,6 @@ client = gnome_master_client(); g_signal_connect(client, "die", G_CALLBACK(die_cb), NULL); #else - gtk_set_locale(); gtk_init(&argc, &argv); #ifdef WANTED add_pixmap_directory(PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps"); @@ -1232,7 +1231,7 @@ gtk_widget_show(X->adv_panel); gtk_window_add_accel_group(GTK_WINDOW(X->kframe), X->kbd_accel); grey_buttons(v->base); - gtk_window_set_icon(GTK_WINDOW(X->kframe), X->icon); + /*gtk_window_set_icon(GTK_WINDOW(X->kframe), X->icon);*/ if (v->modetype == BASIC) { gtk_window_set_focus(GTK_WINDOW(X->kframe), GTK_WIDGET(BUT_CLR_BAS)); } else { @@ -1432,7 +1431,7 @@ g_object_set_data(G_OBJECT(X->rframe), "rframe", X->rframe); gtk_window_set_resizable(GTK_WINDOW(X->rframe), TRUE); gtk_window_set_title(GTK_WINDOW(X->rframe), _("Memory Registers")); - gtk_window_set_icon(GTK_WINDOW(X->rframe), X->icon); + /*gtk_window_set_icon(GTK_WINDOW(X->rframe), X->icon); */ vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(X->rframe), vbox); @@ -2788,6 +2787,7 @@ { X->icon = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(), "gnome-calculator", 48, 0, NULL); + gtk_window_set_default_icon(X->icon); } Steps to reproduce: 1. 2. 3. Actual results: Expected results: Does this happen every time? Other information:
Index: gcalctool/gtk.c =================================================================== RCS file: /cvs/gnome/gcalctool/gcalctool/gtk.c,v retrieving revision 1.165 diff -u -r1.165 gtk.c --- gcalctool/gtk.c 31 Mar 2005 18:38:27 -0000 1.165 +++ gcalctool/gtk.c 6 Apr 2005 12:42:24 -0000 @@ -92,7 +92,6 @@ GtkWidget *kframe; /* Main window. */ GtkWidget *kvbox; GtkWidget *ktable; - GdkPixbuf *icon; /* Main window icon. */ GtkWidget *menubar; GtkWidget *mode_panel; @@ -454,7 +453,6 @@ client = gnome_master_client(); g_signal_connect(client, "die", G_CALLBACK(die_cb), NULL); #else - gtk_set_locale(); gtk_init(&argc, &argv); #ifdef WANTED add_pixmap_directory(PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps"); @@ -518,8 +516,7 @@ "authors", authors, "documenters", documenters, "translator-credits", strcmp(translator_credits, "translator_credits") != 0 ? translator_credits : NULL, - "logo", X->icon, - NULL); + "logo", GDK_PIXBUF(gtk_window_get_icon (GTK_WINDOW (X->kframe))), NULL); } @@ -1232,7 +1229,6 @@ gtk_widget_show(X->adv_panel); gtk_window_add_accel_group(GTK_WINDOW(X->kframe), X->kbd_accel); grey_buttons(v->base); - gtk_window_set_icon(GTK_WINDOW(X->kframe), X->icon); if (v->modetype == BASIC) { gtk_window_set_focus(GTK_WINDOW(X->kframe), GTK_WIDGET(BUT_CLR_BAS)); } else { @@ -1432,8 +1428,7 @@ g_object_set_data(G_OBJECT(X->rframe), "rframe", X->rframe); gtk_window_set_resizable(GTK_WINDOW(X->rframe), TRUE); gtk_window_set_title(GTK_WINDOW(X->rframe), _("Memory Registers")); - gtk_window_set_icon(GTK_WINDOW(X->rframe), X->icon); - + vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(X->rframe), vbox); gtk_widget_realize(X->rframe); @@ -2786,8 +2781,9 @@ static void set_gcalctool_icon(void) { - X->icon = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(), + GdkPixbuf *icon = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(), "gnome-calculator", 48, 0, NULL); + gtk_window_set_default_icon(icon); }
I think this is the cleanest code: Index: gcalctool/gtk.c =================================================================== RCS file: /cvs/gnome/gcalctool/gcalctool/gtk.c,v retrieving revision 1.165 diff -u -r1.165 gtk.c --- gcalctool/gtk.c 31 Mar 2005 18:38:27 -0000 1.165 +++ gcalctool/gtk.c 6 Apr 2005 14:22:27 -0000 @@ -92,7 +92,6 @@ GtkWidget *kframe; /* Main window. */ GtkWidget *kvbox; GtkWidget *ktable; - GdkPixbuf *icon; /* Main window icon. */ GtkWidget *menubar; GtkWidget *mode_panel; @@ -454,7 +453,6 @@ client = gnome_master_client(); g_signal_connect(client, "die", G_CALLBACK(die_cb), NULL); #else - gtk_set_locale(); gtk_init(&argc, &argv); #ifdef WANTED add_pixmap_directory(PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps"); @@ -510,7 +508,7 @@ }; const gchar *translator_credits = _("translator_credits"); - gtk_show_about_dialog(GTK_WINDOW (X->kframe), + gtk_show_about_dialog(GTK_WINDOW (X->kframe), "name",_("Gcalctool"), "version", VERSION, "copyright", "(C) 2004 the Free Software Foundation", @@ -518,8 +516,8 @@ "authors", authors, "documenters", documenters, "translator-credits", strcmp(translator_credits, "translator_credits") != 0 ? translator_credits : NULL, - "logo", X->icon, - NULL); + "logo-icon-name", "gnome-calculator", + NULL); } @@ -1232,7 +1230,6 @@ gtk_widget_show(X->adv_panel); gtk_window_add_accel_group(GTK_WINDOW(X->kframe), X->kbd_accel); grey_buttons(v->base); - gtk_window_set_icon(GTK_WINDOW(X->kframe), X->icon); if (v->modetype == BASIC) { gtk_window_set_focus(GTK_WINDOW(X->kframe), GTK_WIDGET(BUT_CLR_BAS)); } else { @@ -1432,8 +1429,7 @@ g_object_set_data(G_OBJECT(X->rframe), "rframe", X->rframe); gtk_window_set_resizable(GTK_WINDOW(X->rframe), TRUE); gtk_window_set_title(GTK_WINDOW(X->rframe), _("Memory Registers")); - gtk_window_set_icon(GTK_WINDOW(X->rframe), X->icon); - + vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(X->rframe), vbox); gtk_widget_realize(X->rframe); @@ -2786,8 +2782,7 @@ static void set_gcalctool_icon(void) { - X->icon = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(), - "gnome-calculator", 48, 0, NULL); + gtk_window_set_default_icon_name("gnome-calculator"); }
Thanks guys! I'll try to get this integrated today. I agree that the last version is the cleanest.
Changes checked into CVS HEAD. Version number in configure.in bumped to 5.6.5.