GtkRequisition *requisition);
static void gtk_image_menu_item_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
+static void gtk_image_menu_item_map (GtkWidget *widget);
static void gtk_image_menu_item_remove (GtkContainer *container,
GtkWidget *child);
static void gtk_image_menu_item_toggle_size_request (GtkMenuItem *menu_item,
widget_class->screen_changed = gtk_image_menu_item_screen_changed;
widget_class->size_request = gtk_image_menu_item_size_request;
widget_class->size_allocate = gtk_image_menu_item_size_allocate;
+ widget_class->map = gtk_image_menu_item_map;
container_class->forall = gtk_image_menu_item_forall;
container_class->remove = gtk_image_menu_item_remove;
return show;
}
+static void
+gtk_image_menu_item_map (GtkWidget *widget)
+{
+ GtkImageMenuItem *image_menu_item = GTK_IMAGE_MENU_ITEM (widget);
+
+ GTK_WIDGET_CLASS (gtk_image_menu_item_parent_class)->map (widget);
+
+ if (image_menu_item->image)
+ g_object_set (image_menu_item->image,
+ "visible", show_image (image_menu_item),
+ NULL);
+}
+
static void
gtk_image_menu_item_destroy (GtkObject *object)
{
*requisition = 0;
- if (image_menu_item->image && show_image (image_menu_item))
+ if (image_menu_item->image && GTK_WIDGET_VISIBLE (image_menu_item->image))
{
GtkRequisition image_requisition;
guint toggle_spacing;
pack_dir = GTK_PACK_DIRECTION_LTR;
image_menu_item = GTK_IMAGE_MENU_ITEM (widget);
-
- if (image_menu_item->image &&
- GTK_WIDGET_VISIBLE (image_menu_item->image) &&
- show_image (image_menu_item))
+
+ if (image_menu_item->image && GTK_WIDGET_VISIBLE (image_menu_item->image))
{
GtkRequisition child_requisition;
GTK_WIDGET_CLASS (gtk_image_menu_item_parent_class)->size_allocate (widget, allocation);
- if (image_menu_item->image && show_image (image_menu_item))
+ if (image_menu_item->image && GTK_WIDGET_VISIBLE (image_menu_item->image))
{
gint x, y, offset;
GtkRequisition child_requisition;
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
}
- gtk_widget_show (image);
return item;
}
return;
gtk_widget_set_parent (image, GTK_WIDGET (image_menu_item));
- g_object_set (image,
+ g_object_set (image,
"visible", show_image (image_menu_item),
"no-show-all", TRUE,
NULL);