diff --git a/src/ephy-page-row.c b/src/ephy-page-row.c index 7914f6775ab29fead2416724be6674b2cb7715f3..ca63e16973da9c11e4c13116af6285aafacbbe88 100644 --- a/src/ephy-page-row.c +++ b/src/ephy-page-row.c @@ -82,6 +82,22 @@ close_clicked_cb (EphyPageRow *self) g_signal_emit (self, signals[CLOSED], 0); } +static gboolean +button_release_event (GtkWidget *widget, + GdkEvent *event, + EphyPageRow *self) +{ + GdkEventButton *button_event = (GdkEventButton *)event; + + if (button_event->button == GDK_BUTTON_MIDDLE) { + g_signal_emit (self, signals[CLOSED], 0); + + return GDK_EVENT_STOP; + } + + return GDK_EVENT_PROPAGATE; +} + static void ephy_page_row_class_init (EphyPageRowClass *klass) { @@ -102,6 +118,7 @@ ephy_page_row_class_init (EphyPageRowClass *klass) gtk_widget_class_bind_template_child (widget_class, EphyPageRow, spinner); gtk_widget_class_bind_template_child (widget_class, EphyPageRow, title); gtk_widget_class_bind_template_callback (widget_class, close_clicked_cb); + gtk_widget_class_bind_template_callback (widget_class, button_release_event); } static void diff --git a/src/resources/gtk/page-row.ui b/src/resources/gtk/page-row.ui index 6bc64369a6d1764f140a4ee55613b4693b82a4ac..2b6fcadfbd4a67fdf7cf78fd0ee0fae225ca6f69 100644 --- a/src/resources/gtk/page-row.ui +++ b/src/resources/gtk/page-row.ui @@ -1,70 +1,109 @@ + - +