diff options
author | mattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-19 00:02:44 +0000 |
---|---|---|
committer | mattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-19 00:02:44 +0000 |
commit | 6f3992d8b7238283c5d7be52a64066b3674e9dc6 (patch) | |
tree | 76ad0d9dd7902c5929c2a170673accf449657d16 /chrome/browser/gtk | |
parent | f3e78ff3ac66ac1e8c40bb19639b33db11baead1 (diff) | |
download | chromium_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-x | chrome/browser/gtk/tabs/tab_renderer_gtk.cc | 14 | ||||
-rw-r--r-- | chrome/browser/gtk/tabs/tab_renderer_gtk.h | 5 |
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); |