OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/gfx/gtk_preserve_window.h" | 5 #include "ui/gfx/gtk_preserve_window.h" |
6 | 6 |
7 #include <gdk/gdk.h> | 7 #include <gdk/gdk.h> |
8 #include <gtk/gtk.h> | 8 #include <gtk/gtk.h> |
9 | 9 |
10 #include "ui/base/gtk/gtk_compat.h" | 10 #include "ui/base/gtk/gtk_compat.h" |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 gdk_window_reparent(gdk_window, | 86 gdk_window_reparent(gdk_window, |
87 gtk_widget_get_parent_window(widget), | 87 gtk_widget_get_parent_window(widget), |
88 allocation.x, | 88 allocation.x, |
89 allocation.y); | 89 allocation.y); |
90 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); | 90 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); |
91 if (!priv->delegate_resize) { | 91 if (!priv->delegate_resize) { |
92 gdk_window_resize(gdk_window, | 92 gdk_window_resize(gdk_window, |
93 allocation.width, | 93 allocation.width, |
94 allocation.height); | 94 allocation.height); |
95 } | 95 } |
| 96 widget->style = gtk_style_attach(widget->style, widget->window); |
| 97 gtk_style_set_background(gtk_widget_get_style(widget), |
| 98 gdk_window, GTK_STATE_NORMAL); |
| 99 |
96 gint event_mask = gtk_widget_get_events(widget); | 100 gint event_mask = gtk_widget_get_events(widget); |
97 event_mask |= GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK; | 101 event_mask |= GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK; |
98 gdk_window_set_events(gdk_window, (GdkEventMask) event_mask); | 102 gdk_window_set_events(gdk_window, (GdkEventMask) event_mask); |
99 gdk_window_set_user_data(gdk_window, widget); | 103 gdk_window_set_user_data(gdk_window, widget); |
100 | 104 |
101 gtk_widget_set_realized(widget, TRUE); | 105 // Deprecated as of GTK 2.22. Used for compatibility. |
102 | 106 // It should be: gtk_widget_set_realized(widget, TRUE) |
103 gtk_widget_style_attach(widget); | 107 GTK_WIDGET_SET_FLAGS(widget, GTK_REALIZED); |
104 gtk_style_set_background(gtk_widget_get_style(widget), | |
105 gdk_window, GTK_STATE_NORMAL); | |
106 } else { | 108 } else { |
107 GTK_WIDGET_CLASS(gtk_preserve_window_parent_class)->realize(widget); | 109 GTK_WIDGET_CLASS(gtk_preserve_window_parent_class)->realize(widget); |
108 } | 110 } |
109 } | 111 } |
110 | 112 |
111 static void gtk_preserve_window_unrealize(GtkWidget* widget) { | 113 static void gtk_preserve_window_unrealize(GtkWidget* widget) { |
112 g_return_if_fail(GTK_IS_PRESERVE_WINDOW(widget)); | 114 g_return_if_fail(GTK_IS_PRESERVE_WINDOW(widget)); |
113 | 115 |
114 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); | 116 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); |
115 if (priv->preserve_window) { | 117 if (priv->preserve_window) { |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 } | 229 } |
228 } | 230 } |
229 | 231 |
230 void gtk_preserve_window_delegate_resize(GtkPreserveWindow* widget, | 232 void gtk_preserve_window_delegate_resize(GtkPreserveWindow* widget, |
231 gboolean delegate) { | 233 gboolean delegate) { |
232 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); | 234 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); |
233 priv->delegate_resize = delegate; | 235 priv->delegate_resize = delegate; |
234 } | 236 } |
235 | 237 |
236 G_END_DECLS | 238 G_END_DECLS |
OLD | NEW |