update transparent background when the widget is moving

This commit is contained in:
Jinhao 2015-08-06 02:05:15 +08:00
parent 8d87b0f063
commit 71f7a9f8ac
2 changed files with 15 additions and 3 deletions

View File

@ -1413,6 +1413,9 @@ namespace detail
else
native_interface::move_window(wd->other.attribute.frame->container, wd->pos_root.x, wd->pos_root.y);
if (wd->displayed() && wd->effect.bground)
window_layer::make_bground(wd);
for (auto child : wd->children)
_m_move_core(child, delta);
}

View File

@ -544,10 +544,19 @@ namespace API
internal_scope_guard lock;
if(restrict::window_manager.move(iwd, x, y, false))
{
if (category::flags::root != iwd->other.category)
iwd = iwd->seek_non_lite_widget_ancestor();
restrict::core_window_t* update_wd = nullptr;
if (iwd->displayed() && iwd->effect.bground)
{
update_wd = iwd;
restrict::window_manager.update(iwd, true, false);
}
restrict::window_manager.update(iwd, false, false);
restrict::core_window_t* anc = iwd;
if (category::flags::root != iwd->other.category)
anc = iwd->seek_non_lite_widget_ancestor();
if (anc != update_wd)
restrict::window_manager.update(anc, false, false);
}
}