fix a crash error
it occurs when deleting a window in its certain event
This commit is contained in:
parent
75af5554a4
commit
e99ebc6e2e
@ -719,12 +719,11 @@ namespace detail
|
|||||||
if(kill_focus != new_focus)
|
if(kill_focus != new_focus)
|
||||||
brock.wd_manager.do_lazy_refresh(kill_focus, false);
|
brock.wd_manager.do_lazy_refresh(kill_focus, false);
|
||||||
}
|
}
|
||||||
|
auto retain = msgwnd->together.event_ptr;
|
||||||
msgwnd->root_widget->other.attribute.root->context.focus_changed = false;
|
msgwnd->root_widget->other.attribute.root->context.focus_changed = false;
|
||||||
|
|
||||||
context.event_window = msgwnd;
|
context.event_window = msgwnd;
|
||||||
|
|
||||||
pressed_wd = nullptr;
|
pressed_wd = nullptr;
|
||||||
//make_eventinfo(ei, msgwnd, message, xevent);
|
|
||||||
msgwnd->flags.action = mouse_action::pressed;
|
msgwnd->flags.action = mouse_action::pressed;
|
||||||
arg_mouse arg;
|
arg_mouse arg;
|
||||||
assign_arg(arg, msgwnd, ButtonPress, xevent);
|
assign_arg(arg, msgwnd, ButtonPress, xevent);
|
||||||
@ -774,6 +773,8 @@ namespace detail
|
|||||||
msgwnd->flags.action = mouse_action::normal;
|
msgwnd->flags.action = mouse_action::normal;
|
||||||
if(msgwnd->flags.enabled)
|
if(msgwnd->flags.enabled)
|
||||||
{
|
{
|
||||||
|
auto retain = msgwnd->together.event_ptr;
|
||||||
|
|
||||||
arg_mouse arg;
|
arg_mouse arg;
|
||||||
assign_arg(arg, msgwnd, message, xevent);
|
assign_arg(arg, msgwnd, message, xevent);
|
||||||
|
|
||||||
|
|||||||
@ -948,6 +948,8 @@ namespace detail
|
|||||||
arg_mouse arg;
|
arg_mouse arg;
|
||||||
assign_arg(arg, msgwnd, message, pmdec);
|
assign_arg(arg, msgwnd, message, pmdec);
|
||||||
msgwnd->flags.action = mouse_action::pressed;
|
msgwnd->flags.action = mouse_action::pressed;
|
||||||
|
|
||||||
|
auto retain = msgwnd->together.events_ptr;
|
||||||
if (brock.emit(event_code::mouse_down, msgwnd, arg, true, &context))
|
if (brock.emit(event_code::mouse_down, msgwnd, arg, true, &context))
|
||||||
{
|
{
|
||||||
//If a root_window is created during the mouse_down event, Nana.GUI will ignore the mouse_up event.
|
//If a root_window is created during the mouse_down event, Nana.GUI will ignore the mouse_up event.
|
||||||
@ -982,6 +984,8 @@ namespace detail
|
|||||||
msgwnd->flags.action = mouse_action::normal;
|
msgwnd->flags.action = mouse_action::normal;
|
||||||
if(msgwnd->flags.enabled)
|
if(msgwnd->flags.enabled)
|
||||||
{
|
{
|
||||||
|
auto retain = msgwnd->together.events_ptr;
|
||||||
|
|
||||||
nana::arg_mouse arg;
|
nana::arg_mouse arg;
|
||||||
assign_arg(arg, msgwnd, message, pmdec);
|
assign_arg(arg, msgwnd, message, pmdec);
|
||||||
|
|
||||||
|
|||||||
@ -8,8 +8,7 @@
|
|||||||
* http://www.boost.org/LICENSE_1_0.txt)
|
* http://www.boost.org/LICENSE_1_0.txt)
|
||||||
*
|
*
|
||||||
* @file: nana/gui/widgets/listbox.cpp
|
* @file: nana/gui/widgets/listbox.cpp
|
||||||
* @patchs:
|
* @contributors: Hiroshi Seki, qPCR4vir
|
||||||
* Jan 03 2012, unsigned to std::size_t conversion fail for x64, Hiroshi Seki
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <nana/gui/widgets/listbox.hpp>
|
#include <nana/gui/widgets/listbox.hpp>
|
||||||
@ -2614,7 +2613,6 @@ namespace nana
|
|||||||
{
|
{
|
||||||
const auto & header = essence_->header.column(index);
|
const auto & header = essence_->header.column(index);
|
||||||
auto it_bgcolor = bgcolor;
|
auto it_bgcolor = bgcolor;
|
||||||
//auto it_fgcolor = fgcolor;
|
|
||||||
|
|
||||||
if ((item.cells.size() > index) && (header.pixels > 5))
|
if ((item.cells.size() > index) && (header.pixels > 5))
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user