forked from AuroraMiddleware/gtk
Set the image of a button proxy to the "icon-name" property.
* gtk/gtkaction.c (connect_proxy): Set the image of a button proxy to the "icon-name" property. (gtk_action_set_short_label): If the "image" property is set on the button proxy, also tries to set the "label" property on the GtkButton. svn path=/trunk/; revision=20363
This commit is contained in:
parent
128a478b9b
commit
3fb401be61
13
ChangeLog
13
ChangeLog
@ -1,3 +1,16 @@
|
||||
2008-06-12 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
Bug 517706 – Connecting GtkButton with "use-stock" == FALSE to a
|
||||
GtkAction has problems
|
||||
Patch by Peter Johanson
|
||||
|
||||
* gtk/gtkaction.c (connect_proxy): Set the image of a button
|
||||
proxy to the "icon-name" property.
|
||||
|
||||
(gtk_action_set_short_label): If the "image" property is set
|
||||
on the button proxy, also tries to set the "label" property on
|
||||
the GtkButton.
|
||||
|
||||
2008-06-12 Michael Natterer <mitch@imendio.com>
|
||||
|
||||
* gtk/gtkmain.c
|
||||
|
@ -817,7 +817,12 @@ connect_proxy (GtkAction *action,
|
||||
}
|
||||
else
|
||||
{
|
||||
if (GTK_BIN (proxy)->child == NULL ||
|
||||
GtkWidget *image;
|
||||
|
||||
image = gtk_button_get_image (GTK_BUTTON (proxy));
|
||||
|
||||
if (GTK_IS_IMAGE (image) ||
|
||||
GTK_BIN (proxy)->child == NULL ||
|
||||
GTK_IS_LABEL (GTK_BIN (proxy)->child))
|
||||
{
|
||||
/* synchronise the label */
|
||||
@ -826,6 +831,12 @@ connect_proxy (GtkAction *action,
|
||||
"use-underline", TRUE,
|
||||
NULL);
|
||||
}
|
||||
|
||||
if (GTK_IS_IMAGE (image) &&
|
||||
(gtk_image_get_storage_type (GTK_IMAGE (image)) == GTK_IMAGE_EMPTY ||
|
||||
gtk_image_get_storage_type (GTK_IMAGE (image)) == GTK_IMAGE_ICON_NAME))
|
||||
gtk_image_set_from_icon_name (GTK_IMAGE (image),
|
||||
action->private_data->icon_name, GTK_ICON_SIZE_MENU);
|
||||
}
|
||||
/* we leave the button alone if there is a custom child */
|
||||
g_signal_connect_object (proxy, "clicked",
|
||||
@ -1379,9 +1390,13 @@ gtk_action_set_short_label (GtkAction *action,
|
||||
else if (GTK_IS_BUTTON (proxy) &&
|
||||
!gtk_button_get_use_stock (GTK_BUTTON (proxy)))
|
||||
{
|
||||
GtkImage *image;
|
||||
child = GTK_BIN (proxy)->child;
|
||||
|
||||
image = gtk_button_get_image (GTK_BUTTON (proxy));
|
||||
|
||||
if (child == NULL || GTK_IS_LABEL (child))
|
||||
if (GTK_IS_IMAGE (image) ||
|
||||
child == NULL || GTK_IS_LABEL (child))
|
||||
gtk_button_set_label (GTK_BUTTON (proxy),
|
||||
action->private_data->short_label);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user