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
This commit is contained in:
		 Hiroyuki Ito
					Hiroyuki Ito
				
			
				
					committed by
					
						 Daniel Boles
						Daniel Boles
					
				
			
			
				
	
			
			
			 Daniel Boles
						Daniel Boles
					
				
			
						parent
						
							4b88560feb
						
					
				
				
					commit
					e7fbfdd067
				
			| @ -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); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user