| 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 39aad4945ec208e406acd0d8f561894924b8675d..d827e3bbc8232e65f49cf52ab82a64e00c62f135 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
|
| @@ -166,7 +166,6 @@
|
| window_mapped_(false),
|
| is_fullscreen_(false),
|
| is_always_on_top_(false),
|
| - is_override_redirect_(false),
|
| use_native_frame_(false),
|
| should_maximize_after_map_(false),
|
| use_argb_visual_(false),
|
| @@ -970,11 +969,6 @@
|
| if (window_mapped_) {
|
| XWithdrawWindow(xdisplay_, xwindow_, 0);
|
| window_mapped_ = false;
|
| - if (is_override_redirect_) {
|
| - // If we're override-redirect, we won't receive an UnmapNotify message,
|
| - // so run the unmap handler directly.
|
| - OnX11WindowUnmapped();
|
| - }
|
| }
|
| native_widget_delegate_->OnNativeWidgetVisibilityChanged(false);
|
| }
|
| @@ -1128,8 +1122,6 @@
|
|
|
| if (swa.override_redirect)
|
| attribute_mask |= CWOverrideRedirect;
|
| -
|
| - is_override_redirect_ = swa.override_redirect;
|
|
|
| Visual* visual;
|
| int depth;
|
| @@ -1388,38 +1380,6 @@
|
| } else {
|
| native_window_frame_borders_in_pixels_ = gfx::Insets();
|
| }
|
| -}
|
| -
|
| -void DesktopWindowTreeHostX11::OnX11WindowMapped() {
|
| - if (!window_mapped_) {
|
| - window_mapped_ = true;
|
| -
|
| - FOR_EACH_OBSERVER(DesktopWindowTreeHostObserverX11,
|
| - observer_list_,
|
| - OnWindowMapped(xwindow_));
|
| -
|
| - UpdateMinAndMaxSize();
|
| -
|
| - // Some WMs only respect maximize hints after the window has been mapped.
|
| - // Check whether we need to re-do a maximization.
|
| - if (should_maximize_after_map_) {
|
| - Maximize();
|
| - should_maximize_after_map_ = false;
|
| - }
|
| - }
|
| -
|
| - // If we're an override redirect window, we need to perform a full redraw
|
| - // because on AMD drivers we might get a MapNotify event after performing the
|
| - // initial draw, which can result in a blank window. crbug.com/606661.
|
| - if (is_override_redirect_)
|
| - compositor()->ScheduleFullRedraw();
|
| -}
|
| -
|
| -void DesktopWindowTreeHostX11::OnX11WindowUnmapped() {
|
| - window_mapped_ = false;
|
| - FOR_EACH_OBSERVER(DesktopWindowTreeHostObserverX11,
|
| - observer_list_,
|
| - OnWindowUnmapped(xwindow_));
|
| }
|
|
|
| void DesktopWindowTreeHostX11::UpdateMinAndMaxSize() {
|
| @@ -1694,17 +1654,12 @@
|
| }
|
|
|
| XMapWindow(xdisplay_, xwindow_);
|
| - if (is_override_redirect_) {
|
| - // Override redirect windows don't get routed through the window manager;
|
| - // we won't reliably get a MapNotify.
|
| - OnX11WindowMapped();
|
| - } else {
|
| - // We now block until our window is mapped. Some X11 APIs will crash and
|
| - // burn if passed |xwindow_| before the window is mapped, and XMapWindow is
|
| - // asynchronous.
|
| - if (ui::X11EventSource::GetInstance())
|
| - ui::X11EventSource::GetInstance()->BlockUntilWindowMapped(xwindow_);
|
| - }
|
| +
|
| + // We now block until our window is mapped. Some X11 APIs will crash and
|
| + // burn if passed |xwindow_| before the window is mapped, and XMapWindow is
|
| + // asynchronous.
|
| + if (ui::X11EventSource::GetInstance())
|
| + ui::X11EventSource::GetInstance()->BlockUntilWindowMapped(xwindow_);
|
| }
|
|
|
| void DesktopWindowTreeHostX11::SetWindowTransparency() {
|
| @@ -1918,11 +1873,27 @@
|
| break;
|
| }
|
| case MapNotify: {
|
| - OnX11WindowMapped();
|
| + window_mapped_ = true;
|
| +
|
| + FOR_EACH_OBSERVER(DesktopWindowTreeHostObserverX11,
|
| + observer_list_,
|
| + OnWindowMapped(xwindow_));
|
| +
|
| + UpdateMinAndMaxSize();
|
| +
|
| + // Some WMs only respect maximize hints after the window has been mapped.
|
| + // Check whether we need to re-do a maximization.
|
| + if (should_maximize_after_map_) {
|
| + Maximize();
|
| + should_maximize_after_map_ = false;
|
| + }
|
| +
|
| break;
|
| }
|
| case UnmapNotify: {
|
| - OnX11WindowUnmapped();
|
| + FOR_EACH_OBSERVER(DesktopWindowTreeHostObserverX11,
|
| + observer_list_,
|
| + OnWindowUnmapped(xwindow_));
|
| break;
|
| }
|
| case ClientMessage: {
|
|
|