Merge branch 'hotfix-1.4.1' into feature-listbox

This commit is contained in:
Jinhao 2017-01-13 07:14:45 +08:00
commit f342679d73
4 changed files with 25 additions and 5 deletions

View File

@ -421,6 +421,9 @@ namespace nana
bool checkable() const; ///< Determinte whether the checkboxs are enabled.
/// Clears the contents
void clear();
/// \brief Creates an icon scheme with the specified name.
///
/// The icon scheme includes 3 images for node states.

View File

@ -866,8 +866,7 @@ namespace nana
item_proxy& item_proxy::check(bool ck)
{
trigger_->check(node_, ck ? checkstate::checked : checkstate::unchecked);
if(trigger_->draw())
API::update_window(trigger_->impl()->data.widget_ptr->handle());
trigger_->draw();
return *this;
}
@ -1664,7 +1663,8 @@ namespace nana
if (!impl_->attr.auto_draw)
return false;
impl_->draw(false);
if(impl_->draw(false))
API::update_window(impl_->data.widget_ptr->handle());
return true;
}
@ -2198,6 +2198,13 @@ namespace nana
return get_drawer_trigger().checkable();
}
void treebox::clear()
{
auto impl = get_drawer_trigger().impl();
impl->attr.tree_cont.clear();
get_drawer_trigger().draw();
}
treebox::node_image_type& treebox::icon(const std::string& id) const
{
return get_drawer_trigger().icon(id);

View File

@ -777,12 +777,22 @@ namespace paint
::ReleaseDC(reinterpret_cast<HWND>(dst), dc);
}
#elif defined(NANA_X11)
Display * display = nana::detail::platform_spec::instance().open_display();
auto & spec = nana::detail::platform_spec::instance();
Display * display = spec.open_display();
nana::detail::platform_scope_guard lock;
::XCopyArea(display,
impl_->handle->pixmap, reinterpret_cast<Window>(dst), impl_->handle->context,
sx, sy, width, height, dx, dy);
::XMapWindow(display, reinterpret_cast<Window>(dst));
XWindowAttributes attr;
spec.set_error_handler();
::XGetWindowAttributes(display, reinterpret_cast<Window>(dst), &attr);
if(BadWindow != spec.rev_error_handler() && attr.map_state != IsUnmapped)
::XMapWindow(display, reinterpret_cast<Window>(dst));
::XFlush(display);
#endif
}