Chromium Code Reviews| Index: ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc |
| diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc |
| index 236fb0884bb753694f82dc9af222848015650eb5..71e74fb73bab98378f50ee479fb0cb40e02ccde7 100644 |
| --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc |
| +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc |
| @@ -304,7 +304,8 @@ void DesktopWindowTreeHostX11::OnNativeWidgetCreated( |
| // TODO(erg): Unify this code once the other consumer goes away. |
| SwapNonClientEventHandler( |
| scoped_ptr<ui::EventHandler>(new X11WindowEventFilter(this)).Pass()); |
| - SetUseNativeFrame(params.type == Widget::InitParams::TYPE_WINDOW && |
| + SetUseNativeFrame((params.type == Widget::InitParams::TYPE_WINDOW || |
| + params.type == Widget::InitParams::TYPE_DRAG_BROWSER) && |
| !params.remove_standard_frame); |
| x11_window_move_client_.reset(new X11DesktopWindowMoveClient); |
| @@ -1099,6 +1100,9 @@ void DesktopWindowTreeHostX11::InitX11Window( |
| swa.override_redirect = True; |
| window_type = atom_cache_.GetAtom("_NET_WM_WINDOW_TYPE_DND"); |
| break; |
| + case Widget::InitParams::TYPE_DRAG_BROWSER: |
| + swa.override_redirect = True; |
| + break; |
| default: |
| window_type = atom_cache_.GetAtom("_NET_WM_WINDOW_TYPE_NORMAL"); |
| break; |
| @@ -1279,6 +1283,14 @@ void DesktopWindowTreeHostX11::InitX11Window( |
| OnAcceleratedWidgetAvailable(); |
| } |
| +void DesktopWindowTreeHostX11::RemapWindow() { |
| + XUnmapWindow(xdisplay_, xwindow_); |
| + XSetWindowAttributes swa; |
| + swa.override_redirect = False; |
| + XChangeWindowAttributes(xdisplay_, xwindow_, CWOverrideRedirect, &swa); |
| + XMapWindow(xdisplay_, xwindow_); |
|
Elliot Glaysher
2015/11/18 18:20:21
Have you tested this in other window managers? Thi
Daniel Erat
2015/11/18 18:38:36
oh, yeah. i was recommending creating a new window
stapelberg
2015/12/23 13:17:24
Not entirely sure what you mean by “other window m
|
| +} |
| + |
| gfx::Size DesktopWindowTreeHostX11::AdjustSize( |
| const gfx::Size& requested_size_in_pixels) { |
| std::vector<gfx::Display> displays = |