Index: chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc |
diff --git a/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc b/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc |
index 8e520f1af40f610c37274daf495e4a3c2c24ae4a..2a86dba86aae12ee3a2286fa6039612a552f54d8 100644 |
--- a/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc |
+++ b/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc |
@@ -296,7 +296,9 @@ void BookmarkBarGtk::SetBookmarkBarState( |
} |
int BookmarkBarGtk::GetHeight() { |
- return event_box_->allocation.height - kBookmarkBarMinimumHeight; |
+ GtkAllocation allocation; |
+ gtk_widget_get_allocation(event_box_.get(), &allocation); |
+ return allocation.height - kBookmarkBarMinimumHeight; |
} |
bool BookmarkBarGtk::IsAnimating() { |
@@ -304,7 +306,6 @@ bool BookmarkBarGtk::IsAnimating() { |
} |
void BookmarkBarGtk::CalculateMaxHeight() { |
- |
if (theme_service_->UsingNativeTheme()) { |
// Get the requisition of our single child instead of the event box itself |
// because the event box probably already has a size request. |
@@ -488,8 +489,11 @@ void BookmarkBarGtk::SetChevronState() { |
} |
int extra_space = 0; |
- if (gtk_widget_get_visible(overflow_button_)) |
- extra_space = overflow_button_->allocation.width; |
+ if (gtk_widget_get_visible(overflow_button_)) { |
+ GtkAllocation allocation; |
+ gtk_widget_get_allocation(overflow_button_, &allocation); |
+ extra_space = allocation.width; |
+ } |
int overflow_idx = GetFirstHiddenBookmark(extra_space, NULL); |
if (overflow_idx == -1) |
@@ -571,7 +575,9 @@ int BookmarkBarGtk::GetFirstHiddenBookmark(int extra_space, |
// last buttons on the bar. |
// TODO(gideonwald): figure out the precise source of these extra two pixels |
// and make this calculation more reliable. |
- int total_width = bookmark_toolbar_.get()->allocation.width - 2; |
+ GtkAllocation allocation; |
+ gtk_widget_get_allocation(bookmark_toolbar_.get(), &allocation); |
+ int total_width = allocation.width - 2; |
bool overflow = false; |
GtkRequisition requested_size_; |
GList* toolbar_items = |
@@ -794,10 +800,13 @@ gboolean BookmarkBarGtk::ItemDraggedOverToolbar(GdkDragContext* context, |
return TRUE; |
} |
-int BookmarkBarGtk::GetToolbarIndexForDragOverFolder( |
- GtkWidget* button, gint x) { |
- int margin = std::min(15, static_cast<int>(0.3 * button->allocation.width)); |
- if (x > margin && x < (button->allocation.width - margin)) |
+int BookmarkBarGtk::GetToolbarIndexForDragOverFolder(GtkWidget* button, |
+ gint x) { |
+ GtkAllocation allocation; |
+ gtk_widget_get_allocation(button, &allocation); |
+ |
+ int margin = std::min(15, static_cast<int>(0.3 * allocation.width)); |
+ if (x > margin && x < (allocation.width - margin)) |
return -1; |
gint index = gtk_toolbar_get_item_index(GTK_TOOLBAR(bookmark_toolbar_.get()), |
@@ -1219,15 +1228,14 @@ gboolean BookmarkBarGtk::OnToolbarDragMotion(GtkWidget* toolbar, |
void BookmarkBarGtk::OnToolbarSizeAllocate(GtkWidget* widget, |
GtkAllocation* allocation) { |
- if (bookmark_toolbar_.get()->allocation.width == |
- last_allocation_width_) { |
+ if (allocation->width == last_allocation_width_) { |
// If the width hasn't changed, then the visibility of the chevron |
// doesn't need to change. This check prevents us from getting stuck in a |
// loop where allocates are queued indefinitely while the visibility of |
// overflow chevron toggles without actual resizes of the toolbar. |
return; |
} |
- last_allocation_width_ = bookmark_toolbar_.get()->allocation.width; |
+ last_allocation_width_ = allocation->width; |
SetChevronState(); |
} |
@@ -1384,9 +1392,12 @@ gboolean BookmarkBarGtk::OnEventBoxExpose(GtkWidget* widget, |
return FALSE; |
gfx::CanvasSkiaPaint canvas(event, true); |
+ GtkAllocation allocation; |
+ gtk_widget_get_allocation(widget, &allocation); |
+ |
gfx::Rect area = GTK_WIDGET_NO_WINDOW(widget) ? |
- gfx::Rect(widget->allocation) : |
- gfx::Rect(0, 0, widget->allocation.width, widget->allocation.height); |
+ gfx::Rect(allocation) : |
+ gfx::Rect(0, 0, allocation.width, allocation.height); |
NtpBackgroundUtil::PaintBackgroundDetachedMode(theme_provider, &canvas, |
area, tab_contents_size.height()); |
} |