fix the revertable lock of window_manager

This commit is contained in:
Jinhao
2016-10-19 02:58:49 +08:00
parent 01ff1c11c1
commit 9ed5e81ca2
6 changed files with 53 additions and 23 deletions

View File

@@ -1158,7 +1158,9 @@ namespace detail
}
++(context->event_pump_ref_count);
wd_manager().internal_lock().revert();
auto & lock = wd_manager().internal_lock();
lock.revert();
native_window_type owner_native = 0;
core_window_t * owner = 0;
@@ -1183,8 +1185,9 @@ namespace detail
owner->flags.enabled = true;
native_interface::enable_window(owner_native, true);
}
wd_manager().internal_lock().forward();
lock.forward();
if(0 == --(context->event_pump_ref_count))
{
if(0 == modal_window || 0 == context->window_count)