Commit e7fbfdd0 authored by Hiroyuki Ito's avatar Hiroyuki Ito Committed by Daniel Boles

ColorButton: Don’t destroy dialog @ ::delete-event

Without specifically connecting ::delete-event to something, the dialog
will be destroyed when it is closed, for example by pressing Esc. This
meant that when dismissing it this way, unlike by pressing Cancel, any
custom palette would be lost when the dialog was next opened, and so on.

Resolve this by making ::delete-event just do GTK_RESPONSE_CANCEL, so
closing the dialog has the same effect as clicking its Cancel button.

https://bugzilla.gnome.org/show_bug.cgi?id=787444
parent 4b88560f
......@@ -494,6 +494,16 @@ gtk_color_button_new_with_rgba (const GdkRGBA *rgba)
return g_object_new (GTK_TYPE_COLOR_BUTTON, "rgba", rgba, NULL);
}
static gboolean
dialog_delete_event (GtkWidget *dialog,
GdkEvent *event,
gpointer user_data)
{
g_signal_emit_by_name (dialog, "response", GTK_RESPONSE_CANCEL);
return TRUE;
}
static gboolean
dialog_destroy (GtkWidget *widget,
gpointer data)
......@@ -561,6 +571,8 @@ ensure_dialog (GtkColorButton *button)
G_CALLBACK (dialog_response), button);
g_signal_connect (dialog, "destroy",
G_CALLBACK (dialog_destroy), button);
g_signal_connect (dialog, "delete-event",
G_CALLBACK (dialog_delete_event), button);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment