[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Problem with clist



I've got a clist which shows a dialog when you select an item, the problem is that when you click on an entry in the list the dialog freezes - it's ok if you use the arrow keys.

Seems to be a combination of GTK_SELECTION_BROWSE and the fact that the dialog is modal.

I've attached a sample program which shows the problem. Not sure if I'm doing something wrong or if it's a gtk bug.

Jon

----------------------------------------------------------------------

#include <gtk/gtk.h>

void selection(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data)
{
GtkWidget *pwDialog, *pwBut;


pwDialog = gtk_dialog_new();
pwBut = gtk_button_new_with_label( ("Try to click me") );
gtk_container_add( GTK_CONTAINER( GTK_DIALOG( pwDialog )->vbox ), pwBut );
gtk_signal_connect_object( GTK_OBJECT( pwBut ), "clicked", GTK_SIGNAL_FUNC( gtk_widget_destroy ), GTK_OBJECT( pwDialog ) );


gtk_window_set_modal( GTK_WINDOW( pwDialog ), TRUE );
g_signal_connect(G_OBJECT(pwDialog), "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show_all( pwDialog );
gtk_main();
}


int main(int argc, char *argv[])
{
	int i;
	char *data[4] = {"Milk", "Water", "Carrots", "Snakes"};
	GtkWidget *window, *clist;

gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK (gtk_main_quit), NULL);


	clist = gtk_clist_new_with_titles (1, NULL);
	for (i = 0; i < 4; i++)
	  gtk_clist_append ((GtkCList *)clist, &data[i]);

gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_BROWSE);
g_signal_connect(G_OBJECT (clist), "select_row", G_CALLBACK (selection), NULL);
gtk_container_add(GTK_CONTAINER(window), clist);


	gtk_widget_show_all(window);
	gtk_main();

	return 0;
}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]