blob: 51b608e22b34c3a2f56a020e23062f8cc4f2b1d5 [file]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/views/test/views_test_utils.h"
#include "ui/base/ui_base_features.h"
#include "ui/views/view.h"
#include "ui/views/widget/widget.h"
#if BUILDFLAG(IS_OZONE)
#include "ui/ozone/public/ozone_platform.h"
#endif
namespace views::test {
void RunScheduledLayout(Widget* widget) {
DCHECK(widget);
widget->LayoutRootViewIfNecessary();
}
void RunScheduledLayout(View* view) {
DCHECK(view);
Widget* widget = view->GetWidget();
if (widget) {
RunScheduledLayout(widget);
return;
}
View* parent_view = view;
while (parent_view->parent()) {
parent_view = parent_view->parent();
}
if (parent_view->needs_layout()) {
parent_view->DeprecatedLayoutImmediately();
}
}
bool IsOzoneBubblesUsingPlatformWidgets() {
#if BUILDFLAG(IS_OZONE)
return base::FeatureList::IsEnabled(
features::kOzoneBubblesUsePlatformWidgets) &&
ui::OzonePlatform::GetInstance()
->GetPlatformRuntimeProperties()
.supports_subwindows_as_accelerated_widgets;
#else
return false;
#endif
}
} // namespace views::test