C++ Chromium浏览器:如何移动BubbleDialogDelegateView小部件而不闪烁?
我有一个基于视图的弹出对话框::BubbleDialogDelegateView(类似于ProfileChooserView) 当窗口出现时,我需要将其从左向右移动(动画)。类似于Opera轻松设置栏。 是否有一种跨平台的方式来移动或动画小部件而不闪烁 如果我用定时器模拟动画,并一步一步地改变小部件的大小,它就会闪烁C++ Chromium浏览器:如何移动BubbleDialogDelegateView小部件而不闪烁?,c++,webview,chromium,C++,Webview,Chromium,我有一个基于视图的弹出对话框::BubbleDialogDelegateView(类似于ProfileChooserView) 当窗口出现时,我需要将其从左向右移动(动画)。类似于Opera轻松设置栏。 是否有一种跨平台的方式来移动或动画小部件而不闪烁 如果我用定时器模拟动画,并一步一步地改变小部件的大小,它就会闪烁 void WebViewPopup::SetPaneWidth(int w) { views::Widget* this_widget = this->GetWidget
void WebViewPopup::SetPaneWidth(int w)
{
views::Widget* this_widget = this->GetWidget();
gfx::Rect bounds(); //calculate new widget size
this_widget->SetBounds(bounds); // flickers!
}
我在chromium\src\ui\wm\core\window\u animations.cc中找到了窗口动画,它工作正常,但它使用了Aura,并且仅在Windows上可用
那么,主要的问题是:有没有一种跨平台的方式来移动或动画一个小部件而不闪烁
void WebViewPopup::SetPaneWidth(int w)
{
views::Widget* this_widget = this->GetWidget();
gfx::Rect bounds(); //calculate new widget size
this_widget->SetBounds(bounds); // flickers!
}