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 | |
100 gint event_mask = gtk_widget_get_events(widget); | 96 gint event_mask = gtk_widget_get_events(widget); |
101 event_mask |= GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK; | 97 event_mask |= GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK; |
102 gdk_window_set_events(gdk_window, (GdkEventMask) event_mask); | 98 gdk_window_set_events(gdk_window, (GdkEventMask) event_mask); |
103 gdk_window_set_user_data(gdk_window, widget); | 99 gdk_window_set_user_data(gdk_window, widget); |
104 | 100 |
105 // Deprecated as of GTK 2.22. Used for compatibility. | 101 gtk_widget_set_realized(widget, TRUE); |
106 // It should be: gtk_widget_set_realized(widget, TRUE) | 102 |
107 GTK_WIDGET_SET_FLAGS(widget, GTK_REALIZED); | 103 gtk_widget_style_attach(widget); |
| 104 gtk_style_set_background(gtk_widget_get_style(widget), |
| 105 gdk_window, GTK_STATE_NORMAL); |
108 } else { | 106 } else { |
109 GTK_WIDGET_CLASS(gtk_preserve_window_parent_class)->realize(widget); | 107 GTK_WIDGET_CLASS(gtk_preserve_window_parent_class)->realize(widget); |
110 } | 108 } |
111 } | 109 } |
112 | 110 |
113 static void gtk_preserve_window_unrealize(GtkWidget* widget) { | 111 static void gtk_preserve_window_unrealize(GtkWidget* widget) { |
114 g_return_if_fail(GTK_IS_PRESERVE_WINDOW(widget)); | 112 g_return_if_fail(GTK_IS_PRESERVE_WINDOW(widget)); |
115 | 113 |
116 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); | 114 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); |
117 if (priv->preserve_window) { | 115 if (priv->preserve_window) { |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 } | 227 } |
230 } | 228 } |
231 | 229 |
232 void gtk_preserve_window_delegate_resize(GtkPreserveWindow* widget, | 230 void gtk_preserve_window_delegate_resize(GtkPreserveWindow* widget, |
233 gboolean delegate) { | 231 gboolean delegate) { |
234 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); | 232 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); |
235 priv->delegate_resize = delegate; | 233 priv->delegate_resize = delegate; |
236 } | 234 } |
237 | 235 |
238 G_END_DECLS | 236 G_END_DECLS |
OLD | NEW |