diff options
author | amarinichev@chromium.org <amarinichev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-01 17:30:30 +0000 |
---|---|---|
committer | amarinichev@chromium.org <amarinichev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-01 17:30:30 +0000 |
commit | 0a924467c72ad4639b406e69e5a0f0d105df7256 (patch) | |
tree | 52f2efde05845522bdc0b27dabb53f8c4ab4668a /ui/gfx/gtk_preserve_window.cc | |
parent | abd799a4c2df9ba61c892d66f5f858f1ced07da0 (diff) | |
download | chromium_src-0a924467c72ad4639b406e69e5a0f0d105df7256.zip chromium_src-0a924467c72ad4639b406e69e5a0f0d105df7256.tar.gz chromium_src-0a924467c72ad4639b406e69e5a0f0d105df7256.tar.bz2 |
Compiz's interaction with top-level windows confuses GTK.
Set the new window to be override-redirect. This makes the window invisible for the window manager, which makes all reparenting operations safe.
BUG=80017
TEST=Ctrl-Shift-I with and without compiz, tear off tabs with 3D CSS or WebGL
Review URL: http://codereview.chromium.org/6903111
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83698 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/gfx/gtk_preserve_window.cc')
-rw-r--r-- | ui/gfx/gtk_preserve_window.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/ui/gfx/gtk_preserve_window.cc b/ui/gfx/gtk_preserve_window.cc index d00f58e..8348c90 100644 --- a/ui/gfx/gtk_preserve_window.cc +++ b/ui/gfx/gtk_preserve_window.cc @@ -169,6 +169,7 @@ void gtk_preserve_window_set_preserve(GtkPreserveWindow* window, attributes.window_type = GDK_WINDOW_CHILD; attributes.wclass = GDK_INPUT_OUTPUT; + attributes.override_redirect = TRUE; attributes.visual = gtk_widget_get_visual(widget); attributes.colormap = gtk_widget_get_colormap(widget); @@ -176,7 +177,7 @@ void gtk_preserve_window_set_preserve(GtkPreserveWindow* window, attributes.event_mask = gtk_widget_get_events(widget); attributes.event_mask |= GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK; - attributes_mask = GDK_WA_VISUAL | GDK_WA_COLORMAP; + attributes_mask = GDK_WA_VISUAL | GDK_WA_COLORMAP | GDK_WA_NOREDIR; widget->window = gdk_window_new( gdk_get_default_root_window(), &attributes, attributes_mask); } else if (!value && widget->window && !GTK_WIDGET_REALIZED(widget)) { |