Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(433)

Unified Diff: ui/gfx/gtk_preserve_window.cc

Issue 9030029: GTK: A bunch more removal of deprecated raw GtkWidget access, focusing on GtkWidget->window (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: tony nits Created 8 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/gfx/gtk_preserve_window.cc
diff --git a/ui/gfx/gtk_preserve_window.cc b/ui/gfx/gtk_preserve_window.cc
index 32d6e351e552fa28bf672c06334b9a4404cb5ea1..70d0f11d31a07c7fe7bd948f56b0680fcc373787 100644
--- a/ui/gfx/gtk_preserve_window.cc
+++ b/ui/gfx/gtk_preserve_window.cc
@@ -63,12 +63,13 @@ static void gtk_preserve_window_destroy(GtkObject* object) {
GtkWidget* widget = reinterpret_cast<GtkWidget*>(object);
GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget);
- if (widget->window) {
- gdk_window_set_user_data(widget->window, NULL);
+ GdkWindow* gdk_window = gtk_widget_get_window(widget);
+ if (gdk_window) {
+ gdk_window_set_user_data(gdk_window, NULL);
// If the window is preserved, someone else must destroy it.
if (!priv->preserve_window)
- gdk_window_destroy(widget->window);
- widget->window = NULL;
+ gdk_window_destroy(gdk_window);
+ gtk_widget_set_window(widget, NULL);
}
GTK_OBJECT_CLASS(gtk_preserve_window_parent_class)->destroy(object);
@@ -77,27 +78,29 @@ static void gtk_preserve_window_destroy(GtkObject* object) {
static void gtk_preserve_window_realize(GtkWidget* widget) {
g_return_if_fail(GTK_IS_PRESERVE_WINDOW(widget));
- if (widget->window) {
+ GdkWindow* gdk_window = gtk_widget_get_window(widget);
+ if (gdk_window) {
GtkAllocation allocation;
gtk_widget_get_allocation(widget, &allocation);
- gdk_window_reparent(widget->window,
+ gdk_window_reparent(gdk_window,
gtk_widget_get_parent_window(widget),
allocation.x,
allocation.y);
GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget);
if (!priv->delegate_resize) {
- gdk_window_resize(gtk_widget_get_window(widget),
+ gdk_window_resize(gdk_window,
allocation.width,
allocation.height);
}
widget->style = gtk_style_attach(widget->style, widget->window);
- gtk_style_set_background(widget->style, widget->window, GTK_STATE_NORMAL);
+ gtk_style_set_background(gtk_widget_get_style(widget),
+ gdk_window, GTK_STATE_NORMAL);
gint event_mask = gtk_widget_get_events(widget);
event_mask |= GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK;
- gdk_window_set_events(widget->window, (GdkEventMask) event_mask);
- gdk_window_set_user_data(widget->window, widget);
+ gdk_window_set_events(gdk_window, (GdkEventMask) event_mask);
+ gdk_window_set_user_data(gdk_window, widget);
// Deprecated as of GTK 2.22. Used for compatibility.
// It should be: gtk_widget_set_realized(widget, TRUE)
@@ -130,10 +133,12 @@ static void gtk_preserve_window_unrealize(GtkWidget* widget) {
GTK_CONTAINER(widget), FALSE,
reinterpret_cast<GtkCallback>(gtk_widget_unrealize), NULL);
+ GdkWindow* gdk_window = gtk_widget_get_window(widget);
+
gtk_style_detach(widget->style);
- gdk_window_reparent(widget->window, gdk_get_default_root_window(), 0, 0);
+ gdk_window_reparent(gdk_window, gdk_get_default_root_window(), 0, 0);
gtk_selection_remove_all(widget);
- gdk_window_set_user_data(widget->window, NULL);
+ gdk_window_set_user_data(gdk_window, NULL);
gtk_widget_set_realized(widget, FALSE);
} else {
@@ -155,7 +160,8 @@ void gtk_preserve_window_set_preserve(GtkPreserveWindow* window,
priv->preserve_window = value;
GtkWidget* widget = GTK_WIDGET(window);
- if (value && !widget->window) {
+ GdkWindow* gdk_window = gtk_widget_get_window(widget);
+ if (value && !gdk_window) {
GdkWindowAttr attributes;
gint attributes_mask;
@@ -175,11 +181,12 @@ void gtk_preserve_window_set_preserve(GtkPreserveWindow* window,
attributes.event_mask |= GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK;
attributes_mask = GDK_WA_VISUAL | GDK_WA_COLORMAP | GDK_WA_NOREDIR;
- widget->window = gdk_window_new(
+ gdk_window = gdk_window_new(
gdk_get_default_root_window(), &attributes, attributes_mask);
- } else if (!value && widget->window && !gtk_widget_get_realized(widget)) {
- gdk_window_destroy(widget->window);
- widget->window = NULL;
+ gtk_widget_set_window(widget, gdk_window);
+ } else if (!value && gdk_window && !gtk_widget_get_realized(widget)) {
+ gdk_window_destroy(gdk_window);
+ gtk_widget_set_window(widget, NULL);
}
}
@@ -187,15 +194,16 @@ void gtk_preserve_window_size_allocate(GtkWidget* widget,
GtkAllocation* allocation) {
g_return_if_fail(GTK_IS_PRESERVE_WINDOW(widget));
- widget->allocation = *allocation;
+ gtk_widget_set_allocation(widget, allocation);
if (gtk_widget_get_realized(widget)) {
GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget);
+ GdkWindow* gdk_window = gtk_widget_get_window(widget);
if (priv->delegate_resize) {
- gdk_window_move(widget->window, allocation->x, allocation->y);
+ gdk_window_move(gdk_window, allocation->x, allocation->y);
} else {
gdk_window_move_resize(
- widget->window, allocation->x, allocation->y,
+ gdk_window, allocation->x, allocation->y,
allocation->width, allocation->height);
}
}
« no previous file with comments | « chrome/browser/ui/gtk/location_bar_view_gtk.cc ('k') | webkit/plugins/npapi/gtk_plugin_container_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698