| Index: ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
|
| diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
|
| index b9ba5211b9cc46387300ef5482f0df6f08b7dd3d..40933bc596479e6cd9e5a73b8fbe066ef83882fe 100644
|
| --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
|
| +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
|
| @@ -72,10 +72,6 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
|
| // otherwise.
|
| ::Region GetWindowShape() const;
|
|
|
| - // Called by X11DesktopHandler to notify us that the native windowing system
|
| - // has changed our activation.
|
| - void HandleNativeWidgetActivationChanged(bool active);
|
| -
|
| void AddObserver(DesktopWindowTreeHostObserverX11* observer);
|
| void RemoveObserver(DesktopWindowTreeHostObserverX11* observer);
|
|
|
| @@ -186,6 +182,23 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
|
| // Called when |xwindow_|'s _NET_FRAME_EXTENTS property is updated.
|
| void OnFrameExtentsUpdated();
|
|
|
| + // Record the activation state.
|
| + void BeforeActivationStateChanged();
|
| +
|
| + // Handle the state change since BeforeActivationStateChanged().
|
| + void AfterActivationStateChanged();
|
| +
|
| + // Called on an XEnterWindowEvent, XLeaveWindowEvent, XIEnterEvent, or an
|
| + // XILeaveEvent.
|
| + void OnCrossingEvent(bool enter,
|
| + bool focus_in_window_or_ancestor,
|
| + int mode,
|
| + int detail);
|
| +
|
| + // Called on an XFocusInEvent, XFocusOutEvent, XIFocusInEvent, or an
|
| + // XIFocusOutEvent.
|
| + void OnFocusEvent(bool focus_in, int mode, int detail);
|
| +
|
| // Makes a round trip to the X server to get the enclosing workspace for this
|
| // window. Returns true iff |workspace_| was changed.
|
| bool UpdateWorkspace();
|
| @@ -266,6 +279,8 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
|
| bool window_mapped_;
|
|
|
| // Should we wait for an UnmapNotify before trying to remap the window?
|
| + // If |wait_for_unmap_| is true, we have sent an XUnmapWindow request to the
|
| + // server and have yet to receive an UnmapNotify.
|
| bool wait_for_unmap_;
|
|
|
| // The bounds of |xwindow_|.
|
| @@ -356,8 +371,41 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
|
| // the frame when |xwindow_| gains focus or handles a mouse button event.
|
| bool urgency_hint_set_;
|
|
|
| + // Does |xwindow_| have the pointer grab (XI2 or normal)?
|
| + bool has_pointer_grab_;
|
| +
|
| bool activatable_;
|
|
|
| + // The focus-tracking state variables are as described in
|
| + // gtk/docs/focus_tracking.txt
|
| + //
|
| + // |xwindow_| is active iff:
|
| + // (|has_window_focus_| || |has_pointer_focus_|) &&
|
| + // !|ignore_keyboard_input_|
|
| +
|
| + // Is the pointer in |xwindow_| or one of its children?
|
| + bool has_pointer_;
|
| +
|
| + // Is |xwindow_| or one of its children focused?
|
| + bool has_window_focus_;
|
| +
|
| + // (An ancestor window or the PointerRoot is focused) && |has_pointer_|.
|
| + // |has_pointer_focus_| == true is the odd case where we will receive keyboard
|
| + // input when |has_window_focus_| == false. |has_window_focus_| and
|
| + // |has_pointer_focus_| are mutually exclusive.
|
| + bool has_pointer_focus_;
|
| +
|
| + // X11 does not support defocusing windows; you can only focus a different
|
| + // window. If we would like to be defocused, we just ignore keyboard input we
|
| + // no longer care about.
|
| + bool ignore_keyboard_input_;
|
| +
|
| + // Used for tracking activation state in {Before|After}ActivationStateChanged.
|
| + bool was_active_;
|
| + bool had_pointer_;
|
| + bool had_pointer_grab_;
|
| + bool had_window_focus_;
|
| +
|
| base::CancelableCallback<void()> delayed_resize_task_;
|
|
|
| base::WeakPtrFactory<DesktopWindowTreeHostX11> close_widget_factory_;
|
|
|