Skip to content

Commit 25ab6c0

Browse files
Scott VioletCommit Bot
Scott Violet
authored and
Commit Bot
committedFeb 7, 2019
chromeos: makes changes to can activate go to server
This is necessary as it's not uncommon to have code like this: SetCanActivate(true); widget->Activate(); SetCanActivate(false); BUG=928939 TEST=none Change-Id: I52c2d79cd7aec2fe5ab13f8ae7821227f1a0214e Reviewed-on: https://chromium-review.googlesource.com/c/1457117 Commit-Queue: Scott Violet <[email protected]> Reviewed-by: Michael Wasserman <[email protected]> Cr-Commit-Position: refs/heads/master@{#629866}
1 parent dde2605 commit 25ab6c0

4 files changed

+39
-2
lines changed
 

‎ui/aura/test/mus/test_window_tree.cc

+4-1
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,10 @@ void TestWindowTree::SetFocus(uint32_t change_id, ws::Id window_id) {
332332
OnChangeReceived(change_id, WindowTreeChangeType::FOCUS);
333333
}
334334

335-
void TestWindowTree::SetCanFocus(ws::Id window_id, bool can_focus) {}
335+
void TestWindowTree::SetCanFocus(ws::Id window_id, bool can_focus) {
336+
++can_focus_count_;
337+
last_can_focus_ = can_focus;
338+
}
336339

337340
void TestWindowTree::SetEventTargetingPolicy(
338341
ws::Id window_id,

‎ui/aura/test/mus/test_window_tree.h

+9
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,13 @@ class TestWindowTree : public ws::mojom::WindowTree {
146146
return value;
147147
}
148148

149+
bool last_can_focus() const { return last_can_focus_; }
150+
size_t get_and_clear_can_focus_count() {
151+
const int value = can_focus_count_;
152+
can_focus_count_ = 0u;
153+
return value;
154+
}
155+
149156
int last_move_hit_test() const { return last_move_hit_test_; }
150157

151158
size_t get_and_clear_window_resize_shadow_count() {
@@ -336,6 +343,8 @@ class TestWindowTree : public ws::mojom::WindowTree {
336343
ws::Id last_transfer_new_ = 0u;
337344
bool last_transfer_should_cancel_ = false;
338345
bool last_accepts_drops_ = false;
346+
size_t can_focus_count_ = 0u;
347+
bool last_can_focus_ = false;
339348

340349
size_t accepts_drops_count_ = 0u;
341350

‎ui/views/mus/desktop_window_tree_host_mus.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -935,7 +935,8 @@ void DesktopWindowTreeHostMus::SetBoundsInDIP(const gfx::Rect& bounds_in_dip) {
935935
}
936936

937937
void DesktopWindowTreeHostMus::OnCanActivateChanged() {
938-
// TODO(crbug.com/928939): call to WindowTreeClient::SetCanFocus()
938+
MusClient::Get()->window_tree_client()->SetCanFocus(
939+
window(), native_widget_delegate_->CanActivate());
939940
}
940941

941942
void DesktopWindowTreeHostMus::OnWindowManagerFrameValuesChanged() {

‎ui/views/mus/desktop_window_tree_host_mus_unittest.cc

+24
Original file line numberDiff line numberDiff line change
@@ -1075,6 +1075,30 @@ TEST_F(DesktopWindowTreeHostMusTest, MinMaxSize) {
10751075
EXPECT_FALSE(window->GetProperty(aura::client::kMaximumSize));
10761076
}
10771077

1078+
TEST_F(DesktopWindowTreeHostMusTest, SetCanFocus) {
1079+
auto* delegate = new WidgetDelegateView;
1080+
std::unique_ptr<Widget> widget = CreateWidget(delegate);
1081+
// Swap the WindowTree implementation to verify SetCanFocus() is called when
1082+
// the active state changes.
1083+
aura::TestWindowTree test_window_tree;
1084+
aura::WindowTreeClientTestApi window_tree_client_private(
1085+
MusClient::Get()->window_tree_client());
1086+
ws::mojom::WindowTree* old_tree =
1087+
window_tree_client_private.SwapTree(&test_window_tree);
1088+
1089+
delegate->SetCanActivate(false);
1090+
EXPECT_FALSE(delegate->CanActivate());
1091+
EXPECT_FALSE(test_window_tree.last_can_focus());
1092+
EXPECT_EQ(1u, test_window_tree.get_and_clear_can_focus_count());
1093+
1094+
delegate->SetCanActivate(true);
1095+
EXPECT_TRUE(delegate->CanActivate());
1096+
EXPECT_TRUE(test_window_tree.last_can_focus());
1097+
EXPECT_EQ(1u, test_window_tree.get_and_clear_can_focus_count());
1098+
1099+
window_tree_client_private.SwapTree(old_tree);
1100+
}
1101+
10781102
// DesktopWindowTreeHostMusTest with --force-device-scale-factor=1.25.
10791103
class DesktopWindowTreeHostMusTestFractionalDPI
10801104
: public DesktopWindowTreeHostMusTest {

0 commit comments

Comments
 (0)
Please sign in to comment.