summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk/browser_actions_toolbar_gtk.cc
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-02 01:51:48 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-02 01:51:48 +0000
commitf24a4640799255a0e868921677e54fe62765d0ce (patch)
tree91daa24f2c3e70ae197301033817aee003564d78 /chrome/browser/gtk/browser_actions_toolbar_gtk.cc
parentf1e157439e0cb7acadc2b385973cff820f436508 (diff)
downloadchromium_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.cc16
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.