| Index: ui/ozone/platform/wayland/wayland_window.h
|
| diff --git a/ui/ozone/platform/wayland/wayland_window.h b/ui/ozone/platform/wayland/wayland_window.h
|
| index 05dba7966c649c088d37926360836fbaf6ca43f6..450df55d05a2d4f4a0a50e895c0597424d0caebe 100644
|
| --- a/ui/ozone/platform/wayland/wayland_window.h
|
| +++ b/ui/ozone/platform/wayland/wayland_window.h
|
| @@ -5,6 +5,7 @@
|
| #ifndef UI_OZONE_PLATFORM_WAYLAND_WAYLAND_WINDOW_H_
|
| #define UI_OZONE_PLATFORM_WAYLAND_WAYLAND_WINDOW_H_
|
|
|
| +#include "ui/events/platform/platform_event_dispatcher.h"
|
| #include "ui/gfx/geometry/rect.h"
|
| #include "ui/gfx/native_widget_types.h"
|
| #include "ui/ozone/platform/wayland/wayland_object.h"
|
| @@ -14,13 +15,15 @@ namespace ui {
|
|
|
| class WaylandDisplay;
|
|
|
| -class WaylandWindow : public PlatformWindow {
|
| +class WaylandWindow : public PlatformWindow, public PlatformEventDispatcher {
|
| public:
|
| WaylandWindow(PlatformWindowDelegate* delegate,
|
| WaylandDisplay* display,
|
| const gfx::Rect& bounds);
|
| ~WaylandWindow() override;
|
|
|
| + static WaylandWindow* FromSurface(wl_surface* surface);
|
| +
|
| bool Initialize();
|
|
|
| wl_surface* surface() { return surface_.get(); }
|
| @@ -29,6 +32,9 @@ class WaylandWindow : public PlatformWindow {
|
| // be called after processing all pending events in the wayland connection.
|
| void ApplyPendingBounds();
|
|
|
| + // Set whether this window has pointer focus and should dispatch mouse events.
|
| + void set_pointer_focus(bool focus) { has_pointer_focus_ = focus; }
|
| +
|
| // PlatformWindow
|
| void Show() override;
|
| void Hide() override;
|
| @@ -47,6 +53,10 @@ class WaylandWindow : public PlatformWindow {
|
| void ConfineCursorToBounds(const gfx::Rect& bounds) override;
|
| PlatformImeController* GetPlatformImeController() override;
|
|
|
| + // PlatformEventDispatcher
|
| + bool CanDispatchEvent(const PlatformEvent& event) override;
|
| + uint32_t DispatchEvent(const PlatformEvent& event) override;
|
| +
|
| // xdg_surface_listener
|
| static void Configure(void* data,
|
| xdg_surface* obj,
|
| @@ -66,6 +76,7 @@ class WaylandWindow : public PlatformWindow {
|
| gfx::Rect bounds_;
|
| gfx::Rect pending_bounds_;
|
| uint32_t pending_configure_serial_;
|
| + bool has_pointer_focus_ = false;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(WaylandWindow);
|
| };
|
|
|