| Index: chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc
|
| diff --git a/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc b/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc
|
| index ba41578acef154cb616f516c0b82237cb960fb5f..326112f815c7ae801ba668e81760b7c8faf6f154 100644
|
| --- a/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc
|
| +++ b/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc
|
| @@ -583,7 +583,11 @@ void BrowserActionsToolbarGtk::HidePopup() {
|
|
|
| void BrowserActionsToolbarGtk::AnimateToShowNIcons(int count) {
|
| desired_width_ = WidthForIconCount(count);
|
| - start_width_ = button_hbox_->allocation.width;
|
| +
|
| + GtkAllocation allocation;
|
| + gtk_widget_get_allocation(button_hbox_.get(), &allocation);
|
| + start_width_ = allocation.width;
|
| +
|
| resize_animation_.Reset();
|
| resize_animation_.Show();
|
| }
|
| @@ -762,8 +766,12 @@ gboolean BrowserActionsToolbarGtk::OnDragMotion(GtkWidget* widget,
|
| if (!drag_button_)
|
| return FALSE;
|
|
|
| - if (base::i18n::IsRTL())
|
| - x = widget->allocation.width - x;
|
| + if (base::i18n::IsRTL()) {
|
| + GtkAllocation allocation;
|
| + gtk_widget_get_allocation(widget, &allocation);
|
| + x = allocation.width - x;
|
| + }
|
| +
|
| drop_index_ = x < kButtonWidth ? 0 : x / (kButtonWidth + kButtonPadding);
|
|
|
| // We will go ahead and reorder the child in order to provide visual feedback
|
| @@ -829,10 +837,18 @@ gboolean BrowserActionsToolbarGtk::OnGripperMotionNotify(
|
|
|
| // Calculate how much the user dragged the gripper and subtract that off the
|
| // button container's width.
|
| - int distance_dragged = base::i18n::IsRTL() ?
|
| - -event->x :
|
| - event->x - widget->allocation.width;
|
| - gint new_width = button_hbox_->allocation.width - distance_dragged;
|
| + int distance_dragged;
|
| + if (base::i18n::IsRTL()) {
|
| + distance_dragged = -event->x;
|
| + } else {
|
| + GtkAllocation widget_allocation;
|
| + gtk_widget_get_allocation(widget, &widget_allocation);
|
| + distance_dragged = event->x - widget_allocation.width;
|
| + }
|
| +
|
| + GtkAllocation button_hbox_allocation;
|
| + gtk_widget_get_allocation(button_hbox_.get(), &button_hbox_allocation);
|
| + gint new_width = button_hbox_allocation.width - distance_dragged;
|
| SetButtonHBoxWidth(new_width);
|
|
|
| return FALSE;
|
| @@ -864,8 +880,10 @@ gboolean BrowserActionsToolbarGtk::OnGripperLeaveNotify(
|
|
|
| gboolean BrowserActionsToolbarGtk::OnGripperButtonRelease(
|
| GtkWidget* gripper, GdkEventButton* event) {
|
| - gfx::Rect gripper_rect(0, 0,
|
| - gripper->allocation.width, gripper->allocation.height);
|
| + GtkAllocation allocation;
|
| + gtk_widget_get_allocation(gripper, &allocation);
|
| + gfx::Rect gripper_rect(0, 0, allocation.width, allocation.height);
|
| +
|
| gfx::Point release_point(event->x, event->y);
|
| if (!gripper_rect.Contains(release_point))
|
| gdk_window_set_cursor(gtk_widget_get_window(gripper), NULL);
|
|
|