static void panel_menu_bar_size_allocate(GtkWidget* widget, GtkAllocation* allocation) { GtkAllocation old_allocation; GtkAllocation widget_allocation; PanelBackground* background; gtk_widget_get_allocation(widget, &widget_allocation); old_allocation.x = widget_allocation.x; old_allocation.y = widget_allocation.y; old_allocation.width = widget_allocation.width; old_allocation.height = widget_allocation.height; GTK_WIDGET_CLASS(panel_menu_bar_parent_class)->size_allocate (widget, allocation); if (old_allocation.x == allocation->x && old_allocation.y == allocation->y && old_allocation.width == allocation->width && old_allocation.height == allocation->height) { return; } background = &PANEL_MENU_BAR(widget)->priv->panel->background; if (background->type == PANEL_BACK_NONE || (background->type == PANEL_BACK_COLOR && !background->has_alpha)) { return; } panel_menu_bar_change_background(PANEL_MENU_BAR(widget)); }
void back_change (AppletInfo *info, PanelWidget *panel) { switch (info->type) { case PANEL_OBJECT_APPLET: mate_panel_applet_frame_change_background ( MATE_PANEL_APPLET_FRAME (info->widget), panel->background.type); break; case PANEL_OBJECT_MENU_BAR: panel_menu_bar_change_background (PANEL_MENU_BAR (info->widget)); break; case PANEL_OBJECT_SEPARATOR: panel_separator_change_background (PANEL_SEPARATOR (info->widget)); break; default: break; } }