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

Side by Side Diff: ui/gfx/gtk_preserve_window.cc

Issue 9151007: GTK: Seal up GSEALs, focusing on GtkSelectionData. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Add gtk_widget_style_attach to make minimal version 2.18 Created 8 years, 11 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 unified diff | Download patch
« no previous file with comments | « ui/gfx/gtk_native_view_id_manager.cc ('k') | ui/gfx/screen_gtk.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « ui/gfx/gtk_native_view_id_manager.cc ('k') | ui/gfx/screen_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698