diff options
| -rw-r--r-- | rcm-client-hardware-list.c | 10 | 
1 files changed, 10 insertions, 0 deletions
| diff --git a/rcm-client-hardware-list.c b/rcm-client-hardware-list.c index 81f0707..ec29b46 100644 --- a/rcm-client-hardware-list.c +++ b/rcm-client-hardware-list.c @@ -84,6 +84,13 @@ hardware_properties_cb(GtkButton *button, gpointer user_data)  	gtk_widget_hide(dialog);  } +static gint +rcdev_sort(GtkListBoxRow *a, GtkListBoxRow *b, gpointer user_data) +{ +	return strcmp(g_object_get_data(G_OBJECT(a), "rcdev"), +		      g_object_get_data(G_OBJECT(b), "rcdev")); +} +  void rcng_client_hardware_list_add(GDBusObject *hw)  {  	GList *interfaces; @@ -122,6 +129,8 @@ void rcng_client_hardware_list_add(GDBusObject *hw)  	       rcdevice_get_hardware_type(object));  	row = gtk_list_box_row_new(); +	g_object_set_data_full(G_OBJECT(row), "rcdev", rcdevice_dup_sys_name(object), g_free); +  	box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 12);  	gtk_widget_set_margin_top(box, 6);  	gtk_widget_set_margin_bottom(box, 6); @@ -165,6 +174,7 @@ void rcng_client_hardware_list_add(GDBusObject *hw)  	if (!hw_list_box) {  		hw_list_box = gtk_list_box_new();  		gtk_list_box_set_selection_mode(GTK_LIST_BOX(hw_list_box), GTK_SELECTION_NONE); +		gtk_list_box_set_sort_func(GTK_LIST_BOX(hw_list_box), rcdev_sort, NULL, NULL);  		gtk_container_add(GTK_CONTAINER(hw_list_swin), hw_list_box);  		gtk_widget_show_all(hw_list_swin);  	} | 
