diff options
Diffstat (limited to 'gtk')
| -rw-r--r-- | gtk/PlatGTK.cxx | 15 | 
1 files changed, 14 insertions, 1 deletions
| diff --git a/gtk/PlatGTK.cxx b/gtk/PlatGTK.cxx index 3e2d10f99..47e32118c 100644 --- a/gtk/PlatGTK.cxx +++ b/gtk/PlatGTK.cxx @@ -670,7 +670,8 @@ void Window::SetTitle(const char *s) {  	gtk_window_set_title(GTK_WINDOW(id), s);  } -ListBox::ListBox() : list(0), current(0), desiredVisibleRows(5), maxItemCharacters(0) {} +ListBox::ListBox() : list(0), current(0), desiredVisibleRows(5), maxItemCharacters(0), +	doubleClickAction(NULL), doubleClickActionData(NULL) {}  ListBox::~ListBox() {} @@ -680,6 +681,16 @@ static void SelectionAC(GtkWidget *, gint row, gint,  	*pi = row;  } +static gboolean ButtonPress(GtkWidget *, GdkEventButton* ev, gpointer p) { +	ListBox* lb = reinterpret_cast<ListBox*>(p); +	if (ev->type == GDK_2BUTTON_PRESS && lb->doubleClickAction != NULL) { +		lb->doubleClickAction(lb->doubleClickActionData); +		return TRUE; +	} + +	return FALSE; +} +  void ListBox::Create(Window &, int) {  	id = gtk_window_new(GTK_WINDOW_POPUP); @@ -703,6 +714,8 @@ void ListBox::Create(Window &, int) {  	gtk_clist_set_selection_mode(GTK_CLIST(list), GTK_SELECTION_BROWSE);  	gtk_signal_connect(GTK_OBJECT(list), "select_row",  	                   GTK_SIGNAL_FUNC(SelectionAC), ¤t); +	gtk_signal_connect(GTK_OBJECT(list), "button_press_event", +	                   GTK_SIGNAL_FUNC(ButtonPress), this);  	gtk_clist_set_shadow_type(GTK_CLIST(list), GTK_SHADOW_NONE);  	gtk_widget_realize(id); | 
