diff --git a/app/gui/themes.c b/app/gui/themes.c index 2e62c0260a..8a26c0cdcf 100644 --- a/app/gui/themes.c +++ b/app/gui/themes.c @@ -480,6 +480,8 @@ themes_apply_theme (Gimp *gimp, "\n" "* { -GimpDockbook-tab-icon-size: %s; }" "\n" + "* { -GimpColorNotebook-tab-icon-size: %s; }" + "\n" "* { -GimpEditor-button-icon-size: %s; }" "\n" "toolpalette button { padding: %dpx; }" @@ -487,7 +489,7 @@ themes_apply_theme (Gimp *gimp, "button, tab { padding: %dpx; }" "\n" "paned separator { padding: %dpx; }", - tool_icon_size, tab_icon_size, button_icon_size, + tool_icon_size, tab_icon_size, tab_icon_size, button_icon_size, pal_padding, tab_padding, sep_padding); } diff --git a/app/widgets/gimpcolordialog.c b/app/widgets/gimpcolordialog.c index 5a5c6b7406..80c45f80ee 100644 --- a/app/widgets/gimpcolordialog.c +++ b/app/widgets/gimpcolordialog.c @@ -79,6 +79,8 @@ static void gimp_color_dialog_get_property (GObject *object, GValue *value, GParamSpec *pspec); +static void gimp_color_dialog_style_updated (GtkWidget *widget); + static void gimp_color_dialog_response (GtkDialog *dialog, gint response_id); @@ -123,13 +125,16 @@ gimp_color_dialog_class_init (GimpColorDialogClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkDialogClass *dialog_class = GTK_DIALOG_CLASS (klass); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); object_class->constructed = gimp_color_dialog_constructed; object_class->finalize = gimp_color_dialog_finalize; object_class->set_property = gimp_color_dialog_set_property; object_class->get_property = gimp_color_dialog_get_property; - dialog_class->response = gimp_color_dialog_response; + dialog_class->response = gimp_color_dialog_response; + + widget_class->style_updated = gimp_color_dialog_style_updated; color_dialog_signals[UPDATE] = g_signal_new ("update", @@ -328,6 +333,19 @@ gimp_color_dialog_get_property (GObject *object, } } +static void +gimp_color_dialog_style_updated (GtkWidget *widget) +{ + GimpColorDialog *dialog = GIMP_COLOR_DIALOG (widget); + GimpColorNotebook *notebook; + + GTK_WIDGET_CLASS (parent_class)->style_updated (widget); + + notebook = + GIMP_COLOR_NOTEBOOK (gimp_color_selection_get_notebook (GIMP_COLOR_SELECTION (dialog->selection))); + GTK_WIDGET_GET_CLASS (notebook)->style_updated (GTK_WIDGET (notebook)); +} + static void gimp_color_dialog_response (GtkDialog *gtk_dialog, gint response_id) @@ -787,10 +805,23 @@ gimp_color_dialog_show (GimpColorDialog *dialog) g_signal_connect_object (user_context, "image-changed", G_CALLBACK (gimp_color_dialog_image_changed), dialog, 0); + g_signal_connect_object (viewable_dialog->context->gimp->config, + "notify::theme", + G_CALLBACK (gimp_color_dialog_style_updated), + dialog, G_CONNECT_AFTER | G_CONNECT_SWAPPED); + g_signal_connect_object (viewable_dialog->context->gimp->config, + "notify::override-theme-icon-size", + G_CALLBACK (gimp_color_dialog_style_updated), + dialog, G_CONNECT_AFTER | G_CONNECT_SWAPPED); + g_signal_connect_object (viewable_dialog->context->gimp->config, + "notify::custom-icon-size", + G_CALLBACK (gimp_color_dialog_style_updated), + dialog, G_CONNECT_AFTER | G_CONNECT_SWAPPED); gimp_color_dialog_image_changed (viewable_dialog->context, image, dialog); gimp_color_dialog_update_base_type (dialog); + gimp_color_dialog_style_updated (dialog); } else { @@ -809,5 +840,8 @@ gimp_color_dialog_hide (GimpColorDialog *dialog) g_signal_handlers_disconnect_by_func (user_context, G_CALLBACK (gimp_color_dialog_image_changed), dialog); + g_signal_handlers_disconnect_by_func (viewable_dialog->context->gimp->config, + G_CALLBACK (gimp_color_dialog_style_updated), + dialog); } } diff --git a/app/widgets/gimpcoloreditor.c b/app/widgets/gimpcoloreditor.c index 1f4e41d621..08c43d616d 100644 --- a/app/widgets/gimpcoloreditor.c +++ b/app/widgets/gimpcoloreditor.c @@ -540,10 +540,11 @@ gimp_color_editor_new (GimpContext *context) static void gimp_color_editor_style_updated (GtkWidget *widget) { - GimpColorEditor *editor = GIMP_COLOR_EDITOR (widget); - GtkIconSize button_icon_size; - gint icon_width = 40; - gint icon_height = 38; + GimpColorEditor *editor = GIMP_COLOR_EDITOR (widget); + GimpColorNotebook *notebook = GIMP_COLOR_NOTEBOOK (editor->notebook); + GtkIconSize button_icon_size; + gint icon_width = 40; + gint icon_height = 38; GTK_WIDGET_CLASS (parent_class)->style_updated (widget); @@ -557,6 +558,8 @@ gimp_color_editor_style_updated (GtkWidget *widget) gtk_widget_set_size_request (editor->fg_bg, (gint) (icon_width * 1.75), (gint) (icon_height * 1.75)); + + GTK_WIDGET_GET_CLASS (notebook)->style_updated (GTK_WIDGET (notebook)); }