Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(490)

Unified Diff: ui/aura/mus/window_tree_client.h

Issue 2488723002: Reland of Improves focus/activation for aura-mus and DesktopNativeWidgetAura (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/aura/mus/in_flight_change.cc ('k') | ui/aura/mus/window_tree_client.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/aura/mus/window_tree_client.h
diff --git a/ui/aura/mus/window_tree_client.h b/ui/aura/mus/window_tree_client.h
index 5ea408053a36004c4c608d1d24dda1d091059d65..ee9c38153b534707dfe10d9554d051674e6592e1 100644
--- a/ui/aura/mus/window_tree_client.h
+++ b/ui/aura/mus/window_tree_client.h
@@ -22,10 +22,10 @@
#include "mojo/public/cpp/bindings/strong_binding.h"
#include "services/ui/public/interfaces/window_tree.mojom.h"
#include "ui/aura/aura_export.h"
-#include "ui/aura/client/focus_change_observer.h"
#include "ui/aura/client/transient_window_client_observer.h"
#include "ui/aura/mus/capture_synchronizer_delegate.h"
#include "ui/aura/mus/drag_drop_controller_host.h"
+#include "ui/aura/mus/focus_synchronizer_delegate.h"
#include "ui/aura/mus/mus_types.h"
#include "ui/aura/mus/window_manager_delegate.h"
#include "ui/aura/mus/window_tree_host_mus_delegate.h"
@@ -45,6 +45,7 @@
namespace aura {
class CaptureSynchronizer;
class DragDropControllerMus;
+class FocusSynchronizer;
class InFlightBoundsChange;
class InFlightChange;
class InFlightFocusChange;
@@ -78,10 +79,10 @@
: NON_EXPORTED_BASE(public ui::mojom::WindowTreeClient),
NON_EXPORTED_BASE(public ui::mojom::WindowManager),
public CaptureSynchronizerDelegate,
+ public FocusSynchronizerDelegate,
public DragDropControllerHost,
public WindowManagerClient,
public WindowTreeHostMusDelegate,
- public client::FocusChangeObserver,
public client::TransientWindowClientObserver {
public:
explicit WindowTreeClient(
@@ -136,10 +137,6 @@
// Returns the root of this connection.
std::set<Window*> GetRoots();
- // Returns the focused window; null if focus is not yet known or another app
- // is focused.
- Window* GetFocusedWindow();
-
// Returns the current location of the mouse on screen. Note: this method may
// race the asynchronous initialization; but in that case we return (0, 0).
gfx::Point GetCursorScreenPoint();
@@ -183,10 +180,6 @@
// Returns true if the specified window was created by this client.
bool WasCreatedByThisClient(const WindowMus* window) const;
-
- void SetFocusFromServer(WindowMus* window);
- void SetFocusFromServerImpl(client::FocusClient* focus_client,
- WindowMus* window);
// Returns the oldest InFlightChange that matches |change|.
InFlightChange* GetOldestInFlightChangeMatching(const InFlightChange& change);
@@ -418,9 +411,6 @@
const gfx::Vector2d& offset,
const gfx::Insets& hit_area) override;
- // Overriden from client::FocusChangeObserver:
- void OnWindowFocused(Window* gained_focus, Window* lost_focus) override;
-
// Overriden from WindowTreeHostMusDelegate:
void OnWindowTreeHostBoundsWillChange(WindowTreeHostMus* window_tree_host,
const gfx::Rect& bounds) override;
@@ -438,6 +428,9 @@
// Overrided from CaptureSynchronizerDelegate:
uint32_t CreateChangeIdForCapture(WindowMus* window) override;
+
+ // Overrided from FocusSynchronizerDelegate:
+ uint32_t CreateChangeIdForFocus(WindowMus* window) override;
// The one int in |cursor_location_mapping_|. When we read from this
// location, we must always read from it atomically.
@@ -468,9 +461,7 @@
std::unique_ptr<CaptureSynchronizer> capture_synchronizer_;
- bool setting_focus_ = false;
- WindowMus* window_setting_focus_to_ = nullptr;
- WindowMus* focused_window_ = nullptr;
+ std::unique_ptr<FocusSynchronizer> focus_synchronizer_;
mojo::Binding<ui::mojom::WindowTreeClient> binding_;
ui::mojom::WindowTreePtr tree_ptr_;
« no previous file with comments | « ui/aura/mus/in_flight_change.cc ('k') | ui/aura/mus/window_tree_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698