summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/gtk/tabs/tab_gtk.cc18
-rw-r--r--chrome/browser/gtk/tabs/tab_gtk.h8
-rw-r--r--chrome/browser/gtk/tabs/tab_renderer_gtk.cc24
-rw-r--r--chrome/browser/gtk/tabs/tab_renderer_gtk.h11
4 files changed, 26 insertions, 35 deletions
diff --git a/chrome/browser/gtk/tabs/tab_gtk.cc b/chrome/browser/gtk/tabs/tab_gtk.cc
index 56371b3..3a89bf0 100644
--- a/chrome/browser/gtk/tabs/tab_gtk.cc
+++ b/chrome/browser/gtk/tabs/tab_gtk.cc
@@ -121,9 +121,9 @@ TabGtk::TabGtk(TabDelegate* delegate)
g_signal_connect(G_OBJECT(event_box_), "button-release-event",
G_CALLBACK(OnMouseRelease), this);
g_signal_connect(G_OBJECT(event_box_), "enter-notify-event",
- G_CALLBACK(OnEnterNotify), this);
+ G_CALLBACK(OnEnterNotifyEvent), this);
g_signal_connect(G_OBJECT(event_box_), "leave-notify-event",
- G_CALLBACK(OnLeaveNotify), this);
+ G_CALLBACK(OnLeaveNotifyEvent), this);
g_signal_connect_after(G_OBJECT(event_box_), "drag-begin",
G_CALLBACK(OnDragBegin), this);
g_signal_connect_after(G_OBJECT(event_box_), "drag-end",
@@ -183,20 +183,6 @@ gboolean TabGtk::OnMouseRelease(GtkWidget* widget, GdkEventButton* event,
}
// static
-gboolean TabGtk::OnEnterNotify(GtkWidget* widget, GdkEventCrossing* event,
- TabGtk* tab) {
- tab->OnMouseEntered();
- return TRUE;
-}
-
-// static
-gboolean TabGtk::OnLeaveNotify(GtkWidget* widget, GdkEventCrossing* event,
- TabGtk* tab) {
- tab->OnMouseExited();
- return TRUE;
-}
-
-// static
void TabGtk::OnDragBegin(GtkWidget* widget, GdkDragContext* context,
TabGtk* tab) {
MessageLoopForUI::current()->AddObserver(tab);
diff --git a/chrome/browser/gtk/tabs/tab_gtk.h b/chrome/browser/gtk/tabs/tab_gtk.h
index 4d1f704f..933622a 100644
--- a/chrome/browser/gtk/tabs/tab_gtk.h
+++ b/chrome/browser/gtk/tabs/tab_gtk.h
@@ -102,14 +102,6 @@ class TabGtk : public TabRendererGtk,
static gboolean OnMouseRelease(GtkWidget* widget, GdkEventButton* event,
TabGtk* tab);
- // enter-notify-event handler that signals when the mouse enters the tab.
- static gboolean OnEnterNotify(GtkWidget* widget, GdkEventCrossing* event,
- TabGtk* tab);
-
- // leave-notify-event handler that signals when the mouse enters the tab.
- static gboolean OnLeaveNotify(GtkWidget* widget, GdkEventCrossing* event,
- TabGtk* tab);
-
// drag-begin handler that signals when a drag action begins.
static void OnDragBegin(GtkWidget* widget, GdkDragContext* context,
TabGtk* tab);
diff --git a/chrome/browser/gtk/tabs/tab_renderer_gtk.cc b/chrome/browser/gtk/tabs/tab_renderer_gtk.cc
index 0fa5d39..c2c1bc5 100644
--- a/chrome/browser/gtk/tabs/tab_renderer_gtk.cc
+++ b/chrome/browser/gtk/tabs/tab_renderer_gtk.cc
@@ -805,6 +805,10 @@ CustomDrawButton* TabRendererGtk::MakeCloseButton() {
G_CALLBACK(OnCloseButtonClicked), this);
g_signal_connect(G_OBJECT(button->widget()), "button-release-event",
G_CALLBACK(OnCloseButtonMouseRelease), this);
+ g_signal_connect(G_OBJECT(button->widget()), "enter-notify-event",
+ G_CALLBACK(OnEnterNotifyEvent), this);
+ g_signal_connect(G_OBJECT(button->widget()), "leave-notify-event",
+ G_CALLBACK(OnLeaveNotifyEvent), this);
GTK_WIDGET_UNSET_FLAGS(button->widget(), GTK_CAN_FOCUS);
gtk_fixed_put(GTK_FIXED(tab_.get()), button->widget(), 0, 0);
@@ -858,14 +862,22 @@ void TabRendererGtk::OnSizeAllocate(GtkWidget* widget,
tab->Layout();
}
-void TabRendererGtk::OnMouseEntered() {
- hover_animation_->SetTweenType(SlideAnimation::EASE_OUT);
- hover_animation_->Show();
+// static
+gboolean TabRendererGtk::OnEnterNotifyEvent(GtkWidget* widget,
+ GdkEventCrossing* event,
+ TabRendererGtk* tab) {
+ tab->hover_animation_->SetTweenType(SlideAnimation::EASE_OUT);
+ tab->hover_animation_->Show();
+ return FALSE;
}
-void TabRendererGtk::OnMouseExited() {
- hover_animation_->SetTweenType(SlideAnimation::EASE_IN);
- hover_animation_->Hide();
+// static
+gboolean TabRendererGtk::OnLeaveNotifyEvent(GtkWidget* widget,
+ GdkEventCrossing* event,
+ TabRendererGtk* tab) {
+ tab->hover_animation_->SetTweenType(SlideAnimation::EASE_IN);
+ tab->hover_animation_->Hide();
+ return FALSE;
}
// static
diff --git a/chrome/browser/gtk/tabs/tab_renderer_gtk.h b/chrome/browser/gtk/tabs/tab_renderer_gtk.h
index 72f2382..edda57a 100644
--- a/chrome/browser/gtk/tabs/tab_renderer_gtk.h
+++ b/chrome/browser/gtk/tabs/tab_renderer_gtk.h
@@ -178,12 +178,13 @@ class TabRendererGtk : public AnimationDelegate {
// Returns the title of the Tab.
std::wstring GetTitle() const;
- // Called by TabGtk to notify the renderer that the tab is being hovered.
- void OnMouseEntered();
+ // enter-notify-event handler that signals when the mouse enters the tab.
+ static gboolean OnEnterNotifyEvent(GtkWidget* widget, GdkEventCrossing* event,
+ TabRendererGtk* tab);
- // Called by TabGtk to notify the renderer that the tab is no longer being
- // hovered.
- void OnMouseExited();
+ // leave-notify-event handler that signals when the mouse enters the tab.
+ static gboolean OnLeaveNotifyEvent(GtkWidget* widget, GdkEventCrossing* event,
+ TabRendererGtk* tab);
private:
class FavIconCrashAnimation;