В общем, есть popup диалог, наследованный от views::BubbleDialogDelegateView ( аналогичный существующему ProfileChooserView )
Мне его надо анимировать аналогично боковой панельке easy setup в опере. Т.е. когда он появляется, он должен "выехать" справа налево.
Если я изменяю размер виджета как в коде внизу, то диалог мерцает. Т.е. я в цикле по таймеру вызываю widget->SetBounds() и диалог мигает.
Я нашел как сделать анимацию движения окна без мерцания, но это основано на библиотеке aura, а оно только под винду. Есть ли какой-то кроссплатформенный способ изменять размер виджета диалога и чтоб избежать мерцания
class WebViewPopup : public views::BubbleDialogDelegateView,
public ExtensionViewViews::Container,
public content::NotificationObserver,
public TabStripModelObserver,
public content::DevToolsAgentHostObserver,
public zoom::ZoomObserver,
public FullscreenObserver
{
....
static void ShowPopup(views::Button* anchor_button,
Browser* browser) {
auto* popup =
new WebViewPopup(anchor_button, browser);
views::BubbleDialogDelegateView::CreateBubble(popup);
}
void WebViewPopup::SetPaneWidth(int w)
{
views::Widget* this_widget = this->GetWidget();
gfx::Rect bounds(); //calculate new widget size
this_widget->SetBounds(bounds); // здесь мерцает
}
....
}