summaryrefslogtreecommitdiffstats
path: root/views/widget
diff options
context:
space:
mode:
authoroshima@google.com <oshima@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-04 20:33:11 +0000
committeroshima@google.com <oshima@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-04 20:33:11 +0000
commite0c08be228891c1cf5c150dc6136d945585b5ea8 (patch)
tree01d87df1e56769055ebd6257dcec472107725e5d /views/widget
parentabf9eacc6f2181c29549053ac73aa1e63882b500 (diff)
downloadchromium_src-e0c08be228891c1cf5c150dc6136d945585b5ea8.zip
chromium_src-e0c08be228891c1cf5c150dc6136d945585b5ea8.tar.gz
chromium_src-e0c08be228891c1cf5c150dc6136d945585b5ea8.tar.bz2
Fix for regressions caused by FREEZE_UPDATE property
* menu can be closed before being shown. (native_menu_gtk.cc) * virtual keyboard doesn't get expose event on window_contents_ due to renderer covering the entire area. BUG=chromium-os:13760, chromium-os:11514 TEST=refer to bugs. Review URL: http://codereview.chromium.org/6794026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80366 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/widget')
-rw-r--r--views/widget/widget_gtk.cc7
-rw-r--r--views/widget/widget_gtk.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/views/widget/widget_gtk.cc b/views/widget/widget_gtk.cc
index 9de4fa1..6253245 100644
--- a/views/widget/widget_gtk.cc
+++ b/views/widget/widget_gtk.cc
@@ -1395,6 +1395,13 @@ gboolean WidgetGtk::OnWindowPaint(GtkWidget* widget, GdkEventExpose* event) {
// paint the root view here as that is done by OnPaint.
DCHECK(transparent_);
DrawTransparentBackground(widget, event);
+ // The Keyboard layout view has a renderer that covers the entire
+ // window, which prevents OnPaint from being called on window_contents_,
+ // so we need to remove the FREEZE_UPDATES property here.
+ if (!painted_) {
+ painted_ = true;
+ UpdateFreezeUpdatesProperty(GTK_WINDOW(widget_), false /* remove */);
+ }
return false;
}
diff --git a/views/widget/widget_gtk.h b/views/widget/widget_gtk.h
index 3217900..33c00620 100644
--- a/views/widget/widget_gtk.h
+++ b/views/widget/widget_gtk.h
@@ -303,6 +303,7 @@ class WidgetGtk : public Widget,
// Overridden from internal::InputMethodDelegate
virtual void DispatchKeyEventPostIME(const KeyEvent& key) OVERRIDE;
+ // This is called only when the window is transparent.
CHROMEGTK_CALLBACK_1(WidgetGtk, gboolean, OnWindowPaint, GdkEventExpose*);
// Returns the first ancestor of |widget| that is a window.