diff options
author | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-18 18:02:27 +0000 |
---|---|---|
committer | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-18 18:02:27 +0000 |
commit | c17a3ac5ea1f8d44ef6a7533c6216ab1ee6b741a (patch) | |
tree | 98a683aec174060d9178c5dcb608553c9c2dc3cd /views/widget/widget_gtk.cc | |
parent | 64b2cb040ca23e74a40b4d10e430169c5c5201a6 (diff) | |
download | chromium_src-c17a3ac5ea1f8d44ef6a7533c6216ab1ee6b741a.zip chromium_src-c17a3ac5ea1f8d44ef6a7533c6216ab1ee6b741a.tar.gz chromium_src-c17a3ac5ea1f8d44ef6a7533c6216ab1ee6b741a.tar.bz2 |
WidgetGtk: connect to "map" signal instead of "show".
If a GtkWidget is gtk_widget_show'n before its parent widget, then the child
widget will not have a GdkWindow when "show" triggers. "map" is a more
appropriate signal to do something on the GdkWindow after it's created and
drawable.
BUG=76573
TEST=CollectedCookiesTest.*
Review URL: http://codereview.chromium.org/6688028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78719 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/widget/widget_gtk.cc')
-rw-r--r-- | views/widget/widget_gtk.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/views/widget/widget_gtk.cc b/views/widget/widget_gtk.cc index 8b74554..1c3d541 100644 --- a/views/widget/widget_gtk.cc +++ b/views/widget/widget_gtk.cc @@ -549,6 +549,8 @@ void WidgetGtk::Init(GtkWidget* parent, G_CALLBACK(&OnDestroyThunk), this); g_signal_connect(widget_, "show", G_CALLBACK(&OnShowThunk), this); + g_signal_connect(widget_, "map", + G_CALLBACK(&OnMapThunk), this); g_signal_connect(widget_, "hide", G_CALLBACK(&OnHideThunk), this); @@ -1247,8 +1249,11 @@ void WidgetGtk::OnDestroy(GtkWidget* object) { } void WidgetGtk::OnShow(GtkWidget* widget) { +} + +void WidgetGtk::OnMap(GtkWidget* widget) { // Force an expose event to trigger OnPaint. This is necessary because earlier - // SchedulePaintInRect calls for the widget may have happened before the + // SchedulePaintInRect calls for the widget will have happened before the // widget was drawable. This means that gtk_widget_queue_draw_area wasn't // called, and so the widget will not get any expose events. Consequently, the // widget won't paint itself until something else triggers a paint call. |