diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-02 01:51:48 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-02 01:51:48 +0000 |
commit | f24a4640799255a0e868921677e54fe62765d0ce (patch) | |
tree | 91daa24f2c3e70ae197301033817aee003564d78 /chrome/browser/gtk/browser_actions_toolbar_gtk.cc | |
parent | f1e157439e0cb7acadc2b385973cff820f436508 (diff) | |
download | chromium_src-f24a4640799255a0e868921677e54fe62765d0ce.zip chromium_src-f24a4640799255a0e868921677e54fe62765d0ce.tar.gz chromium_src-f24a4640799255a0e868921677e54fe62765d0ce.tar.bz2 |
Hide the browser actions gripper when it's not in use.
BUG=45765
TEST=manual
Review URL: http://codereview.chromium.org/2861040
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51475 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk/browser_actions_toolbar_gtk.cc')
-rw-r--r-- | chrome/browser/gtk/browser_actions_toolbar_gtk.cc | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/chrome/browser/gtk/browser_actions_toolbar_gtk.cc b/chrome/browser/gtk/browser_actions_toolbar_gtk.cc index b1126bc..b60489a 100644 --- a/chrome/browser/gtk/browser_actions_toolbar_gtk.cc +++ b/chrome/browser/gtk/browser_actions_toolbar_gtk.cc @@ -350,6 +350,7 @@ BrowserActionsToolbarGtk::BrowserActionsToolbarGtk(Browser* browser) resize_animation_(this), desired_width_(0), start_width_(0), + draw_gripper_(false), method_factory_(this) { ExtensionsService* extension_service = profile_->GetExtensionsService(); // The |extension_service| can be NULL in Incognito. @@ -753,6 +754,9 @@ gboolean BrowserActionsToolbarGtk::OnGripperMotionNotify( gboolean BrowserActionsToolbarGtk::OnGripperExpose(GtkWidget* gripper, GdkEventExpose* expose) { + if (!draw_gripper_) + return TRUE; + cairo_t* cr = gdk_cairo_create(GDK_DRAWABLE(expose->window)); CairoCachedSurface* surface = theme_provider_->GetSurfaceNamed( @@ -777,13 +781,18 @@ gboolean BrowserActionsToolbarGtk::OnGripperEnterNotify( GtkWidget* gripper, GdkEventCrossing* event) { gdk_window_set_cursor(gripper->window, gtk_util::GetCursor(GDK_SB_H_DOUBLE_ARROW)); + draw_gripper_ = true; + return FALSE; } gboolean BrowserActionsToolbarGtk::OnGripperLeaveNotify( GtkWidget* gripper, GdkEventCrossing* event) { - if (!(event->state & GDK_BUTTON1_MASK)) + if (!(event->state & GDK_BUTTON1_MASK)) { gdk_window_set_cursor(gripper->window, NULL); + draw_gripper_ = false; + } + return FALSE; } @@ -792,8 +801,11 @@ gboolean BrowserActionsToolbarGtk::OnGripperButtonRelease( gfx::Rect gripper_rect(0, 0, gripper->allocation.width, gripper->allocation.height); gfx::Point release_point(event->x, event->y); - if (!gripper_rect.Contains(release_point)) + if (!gripper_rect.Contains(release_point)) { gdk_window_set_cursor(gripper->window, NULL); + draw_gripper_ = false; + gtk_widget_queue_draw(gripper); + } // After the user resizes the toolbar, we want to smartly resize it to be // the perfect size to fit the buttons. |