| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 | 45 |
| 46 GObjectClass* gobject_class = G_OBJECT_CLASS(klass); | 46 GObjectClass* gobject_class = G_OBJECT_CLASS(klass); |
| 47 g_type_class_add_private(gobject_class, sizeof(GtkPreserveWindowPrivate)); | 47 g_type_class_add_private(gobject_class, sizeof(GtkPreserveWindowPrivate)); |
| 48 } | 48 } |
| 49 | 49 |
| 50 static void gtk_preserve_window_init(GtkPreserveWindow* widget) { | 50 static void gtk_preserve_window_init(GtkPreserveWindow* widget) { |
| 51 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); | 51 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); |
| 52 priv->preserve_window = FALSE; | 52 priv->preserve_window = FALSE; |
| 53 | 53 |
| 54 // These widgets always have their own window. | 54 // These widgets always have their own window. |
| 55 gtk_fixed_set_has_window(GTK_FIXED(widget), TRUE); | 55 gtk_widget_set_has_window(GTK_WIDGET(widget), TRUE); |
| 56 } | 56 } |
| 57 | 57 |
| 58 GtkWidget* gtk_preserve_window_new() { | 58 GtkWidget* gtk_preserve_window_new() { |
| 59 return GTK_WIDGET(g_object_new(GTK_TYPE_PRESERVE_WINDOW, NULL)); | 59 return GTK_WIDGET(g_object_new(GTK_TYPE_PRESERVE_WINDOW, NULL)); |
| 60 } | 60 } |
| 61 | 61 |
| 62 static void gtk_preserve_window_destroy(GtkObject* object) { | 62 static void gtk_preserve_window_destroy(GtkObject* object) { |
| 63 GtkWidget* widget = reinterpret_cast<GtkWidget*>(object); | 63 GtkWidget* widget = reinterpret_cast<GtkWidget*>(object); |
| 64 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); | 64 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); |
| 65 | 65 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 static void gtk_preserve_window_unrealize(GtkWidget* widget) { | 107 static void gtk_preserve_window_unrealize(GtkWidget* widget) { |
| 108 g_return_if_fail(GTK_IS_PRESERVE_WINDOW(widget)); | 108 g_return_if_fail(GTK_IS_PRESERVE_WINDOW(widget)); |
| 109 | 109 |
| 110 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); | 110 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); |
| 111 if (priv->preserve_window) { | 111 if (priv->preserve_window) { |
| 112 GtkWidgetClass* widget_class = | 112 GtkWidgetClass* widget_class = |
| 113 GTK_WIDGET_CLASS(gtk_preserve_window_parent_class); | 113 GTK_WIDGET_CLASS(gtk_preserve_window_parent_class); |
| 114 GtkContainerClass* container_class = | 114 GtkContainerClass* container_class = |
| 115 GTK_CONTAINER_CLASS(gtk_preserve_window_parent_class); | 115 GTK_CONTAINER_CLASS(gtk_preserve_window_parent_class); |
| 116 | 116 |
| 117 // Deprecated as of GTK 2.22. Used for compatibility. | 117 if (gtk_widget_get_mapped(widget)) { |
| 118 // It should be: gtk_widget_get_mapped() | |
| 119 if (GTK_WIDGET_MAPPED(widget)) { | |
| 120 widget_class->unmap(widget); | 118 widget_class->unmap(widget); |
| 121 | 119 |
| 122 // Deprecated as of GTK 2.22. Used for compatibility. | 120 gtk_widget_set_mapped(widget, FALSE); |
| 123 // It should be: gtk_widget_set_mapped(widget, FALSE) | |
| 124 GTK_WIDGET_UNSET_FLAGS(widget, GTK_MAPPED); | |
| 125 } | 121 } |
| 126 | 122 |
| 127 // This is the behavior from GtkWidget, inherited by GtkFixed. | 123 // This is the behavior from GtkWidget, inherited by GtkFixed. |
| 128 // It is unclear why we should not call the potentially overridden | 124 // It is unclear why we should not call the potentially overridden |
| 129 // unrealize method (via the callback), but doing so causes errors. | 125 // unrealize method (via the callback), but doing so causes errors. |
| 130 container_class->forall( | 126 container_class->forall( |
| 131 GTK_CONTAINER(widget), FALSE, | 127 GTK_CONTAINER(widget), FALSE, |
| 132 reinterpret_cast<GtkCallback>(gtk_widget_unrealize), NULL); | 128 reinterpret_cast<GtkCallback>(gtk_widget_unrealize), NULL); |
| 133 | 129 |
| 134 gtk_style_detach(widget->style); | 130 gtk_style_detach(widget->style); |
| 135 gdk_window_reparent(widget->window, gdk_get_default_root_window(), 0, 0); | 131 gdk_window_reparent(widget->window, gdk_get_default_root_window(), 0, 0); |
| 136 gtk_selection_remove_all(widget); | 132 gtk_selection_remove_all(widget); |
| 137 gdk_window_set_user_data(widget->window, NULL); | 133 gdk_window_set_user_data(widget->window, NULL); |
| 138 | 134 |
| 139 // Deprecated as of GTK 2.22. Used for compatibility. | 135 gtk_widget_set_realized(widget, FALSE); |
| 140 // It should be: gtk_widget_set_realized(widget, FALSE) | |
| 141 GTK_WIDGET_UNSET_FLAGS(widget, GTK_REALIZED); | |
| 142 } else { | 136 } else { |
| 143 GTK_WIDGET_CLASS(gtk_preserve_window_parent_class)->unrealize(widget); | 137 GTK_WIDGET_CLASS(gtk_preserve_window_parent_class)->unrealize(widget); |
| 144 } | 138 } |
| 145 } | 139 } |
| 146 | 140 |
| 147 gboolean gtk_preserve_window_get_preserve(GtkPreserveWindow* window) { | 141 gboolean gtk_preserve_window_get_preserve(GtkPreserveWindow* window) { |
| 148 g_return_val_if_fail(GTK_IS_PRESERVE_WINDOW(window), FALSE); | 142 g_return_val_if_fail(GTK_IS_PRESERVE_WINDOW(window), FALSE); |
| 149 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(window); | 143 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(window); |
| 150 | 144 |
| 151 return priv->preserve_window; | 145 return priv->preserve_window; |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 } | 218 } |
| 225 } | 219 } |
| 226 | 220 |
| 227 void gtk_preserve_window_delegate_resize(GtkPreserveWindow* widget, | 221 void gtk_preserve_window_delegate_resize(GtkPreserveWindow* widget, |
| 228 gboolean delegate) { | 222 gboolean delegate) { |
| 229 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); | 223 GtkPreserveWindowPrivate* priv = GTK_PRESERVE_WINDOW_GET_PRIVATE(widget); |
| 230 priv->delegate_resize = delegate; | 224 priv->delegate_resize = delegate; |
| 231 } | 225 } |
| 232 | 226 |
| 233 G_END_DECLS | 227 G_END_DECLS |
| OLD | NEW |