]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkcolorchooserdialog.c
Make saving custom colors work as intended
[~andy/gtk] / gtk / gtkcolorchooserdialog.c
index 76355409e7557f8413eac8ed5ce1cb199d8b699b..dc211ec96f7e62285c13aa367da7a4acab4349cc 100644 (file)
@@ -121,6 +121,19 @@ gtk_color_chooser_dialog_init (GtkColorChooserDialog *cc)
   gtk_widget_pop_composite_child ();
 }
 
+static void
+gtk_color_chooser_dialog_response (GtkDialog *dialog,
+                                   gint       response_id)
+{
+  if (response_id == GTK_RESPONSE_OK)
+    {
+      GdkRGBA color;
+
+      gtk_color_chooser_get_color (GTK_COLOR_CHOOSER (dialog), &color);
+      gtk_color_chooser_set_color (GTK_COLOR_CHOOSER (dialog), &color);
+    }
+}
+
 static void
 gtk_color_chooser_dialog_get_property (GObject    *object,
                                        guint       prop_id,
@@ -168,10 +181,13 @@ static void
 gtk_color_chooser_dialog_class_init (GtkColorChooserDialogClass *class)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (class);
+  GtkDialogClass *dialog_class = GTK_DIALOG_CLASS (class);
 
   object_class->get_property = gtk_color_chooser_dialog_get_property;
   object_class->set_property = gtk_color_chooser_dialog_set_property;
 
+  dialog_class->response = gtk_color_chooser_dialog_response;
+
   g_object_class_override_property (object_class, PROP_COLOR, "color");
 
   g_type_class_add_private (class, sizeof (GtkColorChooserDialogPrivate));