[gimp] app, libgimpwidgets: reset "old" selection color of GimpColor{Button, Panel} ...
- From: N/A <ell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app, libgimpwidgets: reset "old" selection color of GimpColor{Button, Panel} ...
- Date: Mon, 16 May 2016 12:57:41 +0000 (UTC)
commit 4132c0b3e782cdde11540cf3cf7aefa62099f3e6
Author: Ell <ell_se yahoo com>
Date: Sun May 15 15:36:26 2016 +0000
app, libgimpwidgets: reset "old" selection color of GimpColor{Button,Panel} ...
... when the button is clicked
Previously, the old color retained its previous value, so when the color
selection dialog was canceled, the button's color would go back to a
potentially outdated value, instead of the color it had when it was
clicked (for continuously-updated color buttons, at least.)
app/widgets/gimpcolorpanel.c | 5 +++++
libgimpwidgets/gimpcolorbutton.c | 28 +++++++++++++++++++++-------
2 files changed, 26 insertions(+), 7 deletions(-)
---
diff --git a/app/widgets/gimpcolorpanel.c b/app/widgets/gimpcolorpanel.c
index 7bc5a7c..0eb7e65 100644
--- a/app/widgets/gimpcolorpanel.c
+++ b/app/widgets/gimpcolorpanel.c
@@ -178,6 +178,11 @@ gimp_color_panel_clicked (GtkButton *button)
G_CALLBACK (gimp_color_panel_dialog_update),
panel);
}
+ else
+ {
+ gimp_color_dialog_set_color (GIMP_COLOR_DIALOG (panel->color_dialog),
+ &color);
+ }
gtk_window_present (GTK_WINDOW (panel->color_dialog));
}
diff --git a/libgimpwidgets/gimpcolorbutton.c b/libgimpwidgets/gimpcolorbutton.c
index 12a2f46..6b67d6f 100644
--- a/libgimpwidgets/gimpcolorbutton.c
+++ b/libgimpwidgets/gimpcolorbutton.c
@@ -524,14 +524,12 @@ static void
gimp_color_button_clicked (GtkButton *button)
{
GimpColorButton *color_button = GIMP_COLOR_BUTTON (button);
+ GtkWidget *selection;
+ GimpRGB color;
if (! color_button->dialog)
{
GtkWidget *dialog;
- GtkWidget *selection;
- GimpRGB color;
-
- gimp_color_button_get_color (color_button, &color);
dialog = color_button->dialog =
gimp_dialog_new (color_button->title, COLOR_SELECTION_KEY,
@@ -561,9 +559,6 @@ gimp_color_button_clicked (GtkButton *button)
gtk_container_set_border_width (GTK_CONTAINER (selection), 6);
gimp_color_selection_set_show_alpha (GIMP_COLOR_SELECTION (selection),
gimp_color_button_has_alpha (color_button));
- gimp_color_selection_set_color (GIMP_COLOR_SELECTION (selection), &color);
- gimp_color_selection_set_old_color (GIMP_COLOR_SELECTION (selection),
- &color);
gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
selection, TRUE, TRUE, 0);
gtk_widget_show (selection);
@@ -575,6 +570,25 @@ gimp_color_button_clicked (GtkButton *button)
g_object_set_data (G_OBJECT (color_button->dialog), COLOR_SELECTION_KEY,
selection);
}
+ else
+ {
+ selection = g_object_get_data (G_OBJECT (color_button->dialog),
+ COLOR_SELECTION_KEY);
+ }
+
+ gimp_color_button_get_color (color_button, &color);
+
+ g_signal_handlers_block_by_func (selection,
+ gimp_color_button_selection_changed,
+ button);
+
+ gimp_color_selection_set_color (GIMP_COLOR_SELECTION (selection), &color);
+ gimp_color_selection_set_old_color (GIMP_COLOR_SELECTION (selection),
+ &color);
+
+ g_signal_handlers_unblock_by_func (selection,
+ gimp_color_button_selection_changed,
+ button);
gtk_window_present (GTK_WINDOW (color_button->dialog));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]