summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk
diff options
context:
space:
mode:
authormattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-19 00:02:44 +0000
committermattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-19 00:02:44 +0000
commit6f3992d8b7238283c5d7be52a64066b3674e9dc6 (patch)
tree76ad0d9dd7902c5929c2a170673accf449657d16 /chrome/browser/gtk
parentf3e78ff3ac66ac1e8c40bb19639b33db11baead1 (diff)
downloadchromium_src-6f3992d8b7238283c5d7be52a64066b3674e9dc6.zip
chromium_src-6f3992d8b7238283c5d7be52a64066b3674e9dc6.tar.gz
chromium_src-6f3992d8b7238283c5d7be52a64066b3674e9dc6.tar.bz2
Handle middle click on gtk tab close button.
BUG=14636 TEST=middle click on tab close button, left click on tab close button Review URL: http://codereview.chromium.org/131072 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18776 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk')
-rwxr-xr-xchrome/browser/gtk/tabs/tab_renderer_gtk.cc14
-rw-r--r--chrome/browser/gtk/tabs/tab_renderer_gtk.h5
2 files changed, 19 insertions, 0 deletions
diff --git a/chrome/browser/gtk/tabs/tab_renderer_gtk.cc b/chrome/browser/gtk/tabs/tab_renderer_gtk.cc
index e024782..2408d55 100755
--- a/chrome/browser/gtk/tabs/tab_renderer_gtk.cc
+++ b/chrome/browser/gtk/tabs/tab_renderer_gtk.cc
@@ -681,6 +681,8 @@ CustomDrawButton* TabRendererGtk::MakeCloseButton() {
g_signal_connect(G_OBJECT(button->widget()), "clicked",
G_CALLBACK(OnCloseButtonClicked), this);
+ g_signal_connect(G_OBJECT(button->widget()), "button-release-event",
+ G_CALLBACK(OnCloseButtonMouseRelease), this);
GTK_WIDGET_UNSET_FLAGS(button->widget(), GTK_CAN_FOCUS);
gtk_fixed_put(GTK_FIXED(tab_.get()), button->widget(), 0, 0);
@@ -698,6 +700,18 @@ void TabRendererGtk::OnCloseButtonClicked(GtkWidget* widget,
}
// static
+gboolean TabRendererGtk::OnCloseButtonMouseRelease(GtkWidget* widget,
+ GdkEventButton* event,
+ TabRendererGtk* tab) {
+ if (event->button == 2) {
+ tab->CloseButtonClicked();
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+// static
gboolean TabRendererGtk::OnExpose(GtkWidget* widget, GdkEventExpose* event,
TabRendererGtk* tab) {
tab->PaintTab(event);
diff --git a/chrome/browser/gtk/tabs/tab_renderer_gtk.h b/chrome/browser/gtk/tabs/tab_renderer_gtk.h
index 990081f..fd0343c 100644
--- a/chrome/browser/gtk/tabs/tab_renderer_gtk.h
+++ b/chrome/browser/gtk/tabs/tab_renderer_gtk.h
@@ -227,6 +227,11 @@ class TabRendererGtk : public AnimationDelegate {
// Handles the clicked signal for the close button.
static void OnCloseButtonClicked(GtkWidget* widget, TabRendererGtk* tab);
+ // Handles middle clicking the close button.
+ static gboolean OnCloseButtonMouseRelease(GtkWidget* widget,
+ GdkEventButton* event,
+ TabRendererGtk* tab);
+
// expose-event handler that redraws the tab.
static gboolean OnExpose(GtkWidget* widget, GdkEventExpose* e,
TabRendererGtk* tab);