mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-10-06 13:42:40 +02:00
gui, widgets: Connect GimpColorNotebook to icon size changes
Inspired by Mark Sweeney's work. GimpColorNotebook has existing code to update the color selector tab icon sizes via CSS. However, it was not set up to be notified of icon size changes from the GUI. Since GimpColorNotebook is in libgimpwidgets, we call its style_updated () function from the style_updated () functions of the two widgets its created in - GimpColorEditor and GimpColorDialog.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user