OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/gdkwindow.h> | 7 #include <gdk/gdkwindow.h> |
8 #include <gtk/gtk.h> | 8 #include <gtk/gtk.h> |
9 #include <gtk/gtkwidget.h> | 9 #include <gtk/gtkwidget.h> |
10 #include <gtk/gtkfixed.h> | 10 #include <gtk/gtkfixed.h> |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 } | 75 } |
76 | 76 |
77 static void gtk_preserve_window_realize(GtkWidget* widget) { | 77 static void gtk_preserve_window_realize(GtkWidget* widget) { |
78 g_return_if_fail(GTK_IS_PRESERVE_WINDOW(widget)); | 78 g_return_if_fail(GTK_IS_PRESERVE_WINDOW(widget)); |
79 | 79 |
80 if (widget->window) { | 80 if (widget->window) { |
81 gdk_window_reparent(widget->window, | 81 gdk_window_reparent(widget->window, |
82 gtk_widget_get_parent_window(widget), | 82 gtk_widget_get_parent_window(widget), |
83 widget->allocation.x, | 83 widget->allocation.x, |
84 widget->allocation.y); | 84 widget->allocation.y); |
| 85 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); |
| 86 if (!priv->delegate_resize) { |
| 87 gdk_window_resize(widget->window, |
| 88 widget->allocation.width, |
| 89 widget->allocation.height); |
| 90 } |
85 widget->style = gtk_style_attach(widget->style, widget->window); | 91 widget->style = gtk_style_attach(widget->style, widget->window); |
86 gtk_style_set_background(widget->style, widget->window, GTK_STATE_NORMAL); | 92 gtk_style_set_background(widget->style, widget->window, GTK_STATE_NORMAL); |
87 | 93 |
88 gint event_mask = gtk_widget_get_events(widget); | 94 gint event_mask = gtk_widget_get_events(widget); |
89 event_mask |= GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK; | 95 event_mask |= GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK; |
90 gdk_window_set_events(widget->window, (GdkEventMask) event_mask); | 96 gdk_window_set_events(widget->window, (GdkEventMask) event_mask); |
91 gdk_window_set_user_data(widget->window, widget); | 97 gdk_window_set_user_data(widget->window, widget); |
92 | 98 |
93 // Deprecated as of GTK 2.22. Used for compatibility. | 99 // Deprecated as of GTK 2.22. Used for compatibility. |
94 // It should be: gtk_widget_set_realized(widget, TRUE) | 100 // It should be: gtk_widget_set_realized(widget, TRUE) |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
193 } | 199 } |
194 } | 200 } |
195 | 201 |
196 void gtk_preserve_window_delegate_resize(GtkPreserveWindow* widget, | 202 void gtk_preserve_window_delegate_resize(GtkPreserveWindow* widget, |
197 gboolean delegate) { | 203 gboolean delegate) { |
198 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); | 204 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); |
199 priv->delegate_resize = delegate; | 205 priv->delegate_resize = delegate; |
200 } | 206 } |
201 | 207 |
202 G_END_DECLS | 208 G_END_DECLS |
OLD | NEW |