Index: chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc |
diff --git a/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc b/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc |
index 1d5435ace724128359464784984e4b415e63e811..0863e02be9a9d481506155dd141743f41d1abb5f 100644 |
--- a/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc |
+++ b/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc |
@@ -1450,9 +1450,12 @@ void TabStripGtk::GenerateIdealBounds() { |
void TabStripGtk::LayoutNewTabButton(double last_tab_right, |
double unselected_width) { |
GtkWidget* toplevel = gtk_widget_get_ancestor(widget(), GTK_TYPE_WINDOW); |
- bool is_maximized = toplevel && |
- ((gdk_window_get_state(toplevel->window) & GDK_WINDOW_STATE_MAXIMIZED) |
- != 0); |
+ bool is_maximized = false; |
+ if (toplevel) { |
+ GdkWindow* gdk_window = gtk_widget_get_window(toplevel); |
+ is_maximized = (gdk_window_get_state(gdk_window) & |
+ GDK_WINDOW_STATE_MAXIMIZED) != 0; |
+ } |
int y = is_maximized ? 0 : kNewTabButtonVOffset; |
int height = newtab_surface_bounds_.height() + kNewTabButtonVOffset - y; |
@@ -1750,7 +1753,7 @@ void TabStripGtk::SetDropIndex(int index, bool drop_before) { |
drop_bounds.width(), drop_bounds.height()); |
} |
-bool TabStripGtk::CompleteDrop(guchar* data, bool is_plain_text) { |
+bool TabStripGtk::CompleteDrop(const guchar* data, bool is_plain_text) { |
if (!drop_info_.get()) |
return false; |
@@ -1767,11 +1770,11 @@ bool TabStripGtk::CompleteDrop(guchar* data, bool is_plain_text) { |
if (is_plain_text) { |
AutocompleteMatch match; |
model_->profile()->GetAutocompleteClassifier()->Classify( |
- UTF8ToUTF16(reinterpret_cast<char*>(data)), string16(), false, false, |
- &match, NULL); |
+ UTF8ToUTF16(reinterpret_cast<const char*>(data)), string16(), |
+ false, false, &match, NULL); |
url = match.destination_url; |
} else { |
- std::string url_string(reinterpret_cast<char*>(data)); |
+ std::string url_string(reinterpret_cast<const char*>(data)); |
url = GURL(url_string.substr(0, url_string.find_first_of('\n'))); |
} |
if (!url.is_valid()) |
@@ -1824,7 +1827,7 @@ gboolean TabStripGtk::DropInfo::OnExposeEvent(GtkWidget* widget, |
SetContainerShapeMask(); |
} |
- cairo_t* cr = gdk_cairo_create(GDK_DRAWABLE(widget->window)); |
+ cairo_t* cr = gdk_cairo_create(gtk_widget_get_window(widget)); |
gdk_cairo_rectangle(cr, &event->area); |
cairo_clip(cr); |
@@ -1852,7 +1855,7 @@ void TabStripGtk::DropInfo::SetContainerColorMap() { |
// Sets full transparency for the container window. This is used if |
// compositing is available for the screen. |
void TabStripGtk::DropInfo::SetContainerTransparency() { |
- cairo_t* cairo_context = gdk_cairo_create(container->window); |
+ cairo_t* cairo_context = gdk_cairo_create(gtk_widget_get_window(container)); |
if (!cairo_context) |
return; |
@@ -1890,7 +1893,8 @@ void TabStripGtk::DropInfo::SetContainerShapeMask() { |
cairo_destroy(cairo_context); |
// Set the shape mask. |
- gdk_window_shape_combine_mask(container->window, pixmap, 0, 0); |
+ GdkWindow* gdk_window = gtk_widget_get_window(container); |
+ gdk_window_shape_combine_mask(gdk_window, pixmap, 0, 0); |
g_object_unref(pixmap); |
} |
@@ -2157,7 +2161,8 @@ gboolean TabStripGtk::OnDragDataReceived(GtkWidget* widget, |
if (info == ui::TEXT_URI_LIST || |
info == ui::NETSCAPE_URL || |
info == ui::TEXT_PLAIN) { |
- success = CompleteDrop(data->data, info == ui::TEXT_PLAIN); |
+ success = CompleteDrop(gtk_selection_data_get_data(data), |
+ info == ui::TEXT_PLAIN); |
} |
gtk_drag_finish(context, success, FALSE, time); |