From 84040a277c9ac04521adeca2f6cd0210f440f93e Mon Sep 17 00:00:00 2001 From: Vadim Lopatin Date: Mon, 17 Oct 2016 16:10:50 +0300 Subject: [PATCH] fix crash on menu item click - #303 --- src/dlangui/widgets/lists.d | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/dlangui/widgets/lists.d b/src/dlangui/widgets/lists.d index ce66a4f1..759ed0d0 100644 --- a/src/dlangui/widgets/lists.d +++ b/src/dlangui/widgets/lists.d @@ -1303,9 +1303,18 @@ class ListWidget : WidgetGroup, OnScrollHandler, OnAdapterChangeHandler { itemrc.top += rc.top - scrollOffset.y; itemrc.bottom += rc.top - scrollOffset.y; if (itemrc.isPointInside(Point(event.x, event.y))) { - Widget itemWidget; - if (_adapter.wantMouseEvents) - itemWidget = _adapter.itemWidget(i); + if (_adapter && _adapter.wantMouseEvents) { + auto itemWidget = _adapter.itemWidget(i); + if (itemWidget) { + Widget oldParent = itemWidget.parent; + itemWidget.parent = this; + if (event.action == MouseAction.Move && event.noModifiers && itemWidget.hasTooltip) { + itemWidget.scheduleTooltip(200); + } + //itemWidget.onMouseEvent(event); + itemWidget.parent = oldParent; + } + } //Log.d("mouse event action=", event.action, " button=", event.button, " flags=", event.flags); if ((event.flags & (MouseFlag.LButton || MouseFlag.RButton)) || _selectOnHover) { if (_selectedItemIndex != i && itemEnabled(i)) { @@ -1327,15 +1336,6 @@ class ListWidget : WidgetGroup, OnScrollHandler, OnAdapterChangeHandler { } } } - if (itemWidget) { - Widget oldParent = itemWidget.parent; - itemWidget.parent = this; - if (event.action == MouseAction.Move && event.noModifiers && itemWidget.hasTooltip) { - itemWidget.scheduleTooltip(200); - } - //itemWidget.onMouseEvent(event); - itemWidget.parent = oldParent; - } return true; } }