summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorTingPing <tingping@tingping.se>2014-01-02 18:03:32 -0500
committerTingPing <tingping@tingping.se>2014-01-02 18:03:32 -0500
commit537fb85696031182cb6a79879a0f5e7ce6374779 (patch)
treea650f1b92294acd27dcc26ccdd2885458d916e88
parent2bd1c3f99d7782d7208f48ce11867093b711afb8 (diff)
Bind middle-click to close tab
Closes #832
-rw-r--r--src/fe-gtk/chanview-tree.c8
-rw-r--r--src/fe-gtk/maingui.c4
2 files changed, 2 insertions, 10 deletions
diff --git a/src/fe-gtk/chanview-tree.c b/src/fe-gtk/chanview-tree.c
index ca70214e..09ca2dbb 100644
--- a/src/fe-gtk/chanview-tree.c
+++ b/src/fe-gtk/chanview-tree.c
@@ -62,17 +62,9 @@ cv_tree_click_cb (GtkTreeView *tree, GdkEventButton *event, chanview *cv)
 	GtkTreeIter iter;
 	int ret = FALSE;
 
-	if (event->button != 3 && event->state == 0)
-		return FALSE;
-
 	sel = gtk_tree_view_get_selection (tree);
 	if (gtk_tree_view_get_path_at_pos (tree, event->x, event->y, &path, 0, 0, 0))
 	{
-		if (event->button == 2)
-		{
-			gtk_tree_selection_unselect_all (sel);
-			gtk_tree_selection_select_path (sel, path);
-		}
 		if (gtk_tree_model_get_iter (GTK_TREE_MODEL (cv->store), &iter, path))
 		{
 			gtk_tree_model_get (GTK_TREE_MODEL (cv->store), &iter, COL_CHAN, &ch, -1);
diff --git a/src/fe-gtk/maingui.c b/src/fe-gtk/maingui.c
index 0f8db0bf..4bd5d370 100644
--- a/src/fe-gtk/maingui.c
+++ b/src/fe-gtk/maingui.c
@@ -1605,8 +1605,8 @@ mg_create_tabmenu (session *sess, GdkEventButton *event, chan *ch)
 static gboolean
 mg_tab_contextmenu_cb (chanview *cv, chan *ch, int tag, gpointer ud, GdkEventButton *event)
 {
-	/* shift-click to close a tab */
-	if ((event->state & STATE_SHIFT) && event->type == GDK_BUTTON_PRESS)
+	/* middle-click or shift-click to close a tab */
+	if ((event->button == 2 || event->state & STATE_SHIFT) && event->type == GDK_BUTTON_PRESS)
 	{
 		mg_xbutton_cb (cv, ch, tag, ud);
 		return FALSE;