Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <algorithm> | 5 #include <algorithm> |
| 6 #include <set> | 6 #include <set> |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 3380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3391 TEST_F(WidgetTest, AlwaysOnTop) { | 3391 TEST_F(WidgetTest, AlwaysOnTop) { |
| 3392 Widget* widget = CreateTopLevelNativeWidget(); | 3392 Widget* widget = CreateTopLevelNativeWidget(); |
| 3393 EXPECT_FALSE(widget->IsAlwaysOnTop()); | 3393 EXPECT_FALSE(widget->IsAlwaysOnTop()); |
| 3394 widget->SetAlwaysOnTop(true); | 3394 widget->SetAlwaysOnTop(true); |
| 3395 EXPECT_TRUE(widget->IsAlwaysOnTop()); | 3395 EXPECT_TRUE(widget->IsAlwaysOnTop()); |
| 3396 widget->SetAlwaysOnTop(false); | 3396 widget->SetAlwaysOnTop(false); |
| 3397 EXPECT_FALSE(widget->IsAlwaysOnTop()); | 3397 EXPECT_FALSE(widget->IsAlwaysOnTop()); |
| 3398 widget->CloseNow(); | 3398 widget->CloseNow(); |
| 3399 } | 3399 } |
| 3400 | 3400 |
| 3401 namespace { | |
| 3402 | |
| 3403 class ScaleFactorView : public View { | |
| 3404 public: | |
| 3405 ScaleFactorView() = default; | |
|
sadrul
2015/12/22 08:13:34
How is this different from 'ScaleFactorView() {}'?
Andrey Kraynov
2015/12/22 08:38:57
Both forms of ctor will behave the same here.
But
| |
| 3406 | |
| 3407 // Overridden from ui::LayerDelegate: | |
| 3408 void OnDeviceScaleFactorChanged(float device_scale_factor) override { | |
| 3409 last_scale_factor_ = device_scale_factor; | |
| 3410 View::OnDeviceScaleFactorChanged(device_scale_factor); | |
| 3411 } | |
| 3412 | |
| 3413 float last_scale_factor() const { return last_scale_factor_; }; | |
| 3414 | |
| 3415 private: | |
| 3416 float last_scale_factor_ = 0.f; | |
| 3417 | |
| 3418 DISALLOW_COPY_AND_ASSIGN(ScaleFactorView); | |
| 3419 }; | |
| 3420 | |
| 3421 struct WidgetCloser { | |
| 3422 inline void operator()(Widget* widget) const { widget->CloseNow(); } | |
| 3423 }; | |
|
sadrul
2015/12/22 08:13:34
Hm, we should be using this in more tests above.
Andrey Kraynov
2015/12/22 08:38:57
Don't you mind if I will create a CL to use this p
| |
| 3424 | |
| 3425 } | |
| 3426 | |
| 3427 // Ensure scale factor changes are propagated from the native Widget. | |
| 3428 TEST_F(WidgetTest, OnDeviceScaleFactorChanged) { | |
| 3429 // Automatically close the widget, but not delete it. | |
| 3430 scoped_ptr<Widget, WidgetCloser> widget(CreateTopLevelPlatformWidget()); | |
| 3431 ScaleFactorView* view = new ScaleFactorView; | |
| 3432 widget->GetRootView()->AddChildView(view); | |
| 3433 float scale_factor = widget->GetLayer()->device_scale_factor(); | |
| 3434 EXPECT_NE(scale_factor, 0.f); | |
| 3435 | |
| 3436 // For views that are not layer-backed, adding the view won't notify the view | |
| 3437 // about the initial scale factor. Fake it. | |
| 3438 view->OnDeviceScaleFactorChanged(scale_factor); | |
| 3439 EXPECT_EQ(scale_factor, view->last_scale_factor()); | |
| 3440 | |
| 3441 // Changes should be propagated. | |
| 3442 scale_factor *= 2.0f; | |
| 3443 widget->GetLayer()->OnDeviceScaleFactorChanged(scale_factor); | |
| 3444 EXPECT_EQ(scale_factor, view->last_scale_factor()); | |
| 3445 } | |
| 3446 | |
| 3401 } // namespace test | 3447 } // namespace test |
| 3402 } // namespace views | 3448 } // namespace views |
| OLD | NEW |