diff options
Diffstat (limited to 'ash/host')
-rw-r--r-- | ash/host/ash_window_tree_host.h | 5 | ||||
-rw-r--r-- | ash/host/ash_window_tree_host_x11.cc | 7 | ||||
-rw-r--r-- | ash/host/ash_window_tree_host_x11.h | 1 |
3 files changed, 12 insertions, 1 deletions
diff --git a/ash/host/ash_window_tree_host.h b/ash/host/ash_window_tree_host.h index 1d1513b..b9c617f 100644 --- a/ash/host/ash_window_tree_host.h +++ b/ash/host/ash_window_tree_host.h @@ -53,7 +53,10 @@ class ASH_EXPORT AshWindowTreeHost { // mode dual monitors case). If the root window is only associated with one // display id, then the other id should be set to // gfx::Display::kInvalidDisplayID. - virtual void UpdateDisplayID(int64 id1, int64 id2) {}; + virtual void UpdateDisplayID(int64 id1, int64 id2) {} + + // Stop listening for events in preparation for shutdown. + virtual void PrepareForShutdown() {} }; } // namespace ash diff --git a/ash/host/ash_window_tree_host_x11.cc b/ash/host/ash_window_tree_host_x11.cc index eff9ba6..beb129f 100644 --- a/ash/host/ash_window_tree_host_x11.cc +++ b/ash/host/ash_window_tree_host_x11.cc @@ -19,9 +19,11 @@ #include "ui/aura/client/screen_position_client.h" #include "ui/aura/env.h" #include "ui/aura/window.h" +#include "ui/aura/window_event_dispatcher.h" #include "ui/base/x/x11_util.h" #include "ui/events/event.h" #include "ui/events/event_utils.h" +#include "ui/events/platform/platform_event_source.h" #include "ui/events/x/device_data_manager.h" #include "ui/events/x/device_list_cache_x.h" #include "ui/events/x/touch_factory_x11.h" @@ -129,6 +131,11 @@ void AshWindowTreeHostX11::UpdateDisplayID(int64 id1, int64 id2) { display_ids_.second = id2; } +void AshWindowTreeHostX11::PrepareForShutdown() { + if (ui::PlatformEventSource::GetInstance()) + ui::PlatformEventSource::GetInstance()->RemovePlatformEventDispatcher(this); +} + void AshWindowTreeHostX11::SetBounds(const gfx::Rect& bounds) { WindowTreeHostX11::SetBounds(bounds); if (pointer_barriers_) { diff --git a/ash/host/ash_window_tree_host_x11.h b/ash/host/ash_window_tree_host_x11.h index 8b998be..1a3335d 100644 --- a/ash/host/ash_window_tree_host_x11.h +++ b/ash/host/ash_window_tree_host_x11.h @@ -33,6 +33,7 @@ class ASH_EXPORT AshWindowTreeHostX11 : public AshWindowTreeHost, virtual gfx::Insets GetHostInsets() const OVERRIDE; virtual aura::WindowTreeHost* AsWindowTreeHost() OVERRIDE; virtual void UpdateDisplayID(int64 id1, int64 id2) OVERRIDE; + virtual void PrepareForShutdown() OVERRIDE; // aura::WindowTreehost: virtual void SetBounds(const gfx::Rect& bounds) OVERRIDE; |