diff --git a/src/dlangui/dialogs/filedlg.d b/src/dlangui/dialogs/filedlg.d index 0b541eb5..c59aac2a 100644 --- a/src/dlangui/dialogs/filedlg.d +++ b/src/dlangui/dialogs/filedlg.d @@ -242,6 +242,7 @@ class FileDialog : Dialog, CustomGridCellAdapter { res.layoutWidth(WRAP_CONTENT).layoutHeight(FILL_PARENT).layoutWeight(0); res.onItemClickListener = delegate(Widget source, int itemIndex) { openDirectory(_roots[itemIndex].path, null); + res.selectItem(-1); return true; }; res.focusable = true; diff --git a/src/dlangui/platforms/common/platform.d b/src/dlangui/platforms/common/platform.d index 861c779a..5003c007 100644 --- a/src/dlangui/platforms/common/platform.d +++ b/src/dlangui/platforms/common/platform.d @@ -690,13 +690,17 @@ class Window { bool insideOneOfPopups = false; for (int i = cast(int)_popups.length - 1; i >= 0; i--) { auto p = _popups[i]; - if (p.isPointInside(event.x, event.y)) - insideOneOfPopups = true; + if (p.isPointInside(event.x, event.y)) { + if (p !is modal) + insideOneOfPopups = true; + } if (p is modal) break; } for (int i = cast(int)_popups.length - 1; i >= 0; i--) { auto p = _popups[i]; + if (p is modal) + break; if (!insideOneOfPopups) { if (p.onMouseEventOutside(event)) // stop loop when true is returned, but allow other main widget to handle event break; @@ -704,11 +708,11 @@ class Window { if (dispatchMouseEvent(p, event, cursorIsSet)) return true; } - if (p is modal) - break; } if (!modal) res = dispatchMouseEvent(_mainWidget, event, cursorIsSet); + else + res = dispatchMouseEvent(modal, event, cursorIsSet); } return res || processed || _mainWidget.needDraw; } diff --git a/views/res/mdpi/popup_window_background.9.png b/views/res/mdpi/popup_window_background.9.png index 14d80259..bf3f04b5 100644 Binary files a/views/res/mdpi/popup_window_background.9.png and b/views/res/mdpi/popup_window_background.9.png differ diff --git a/views/res/theme_default.xml b/views/res/theme_default.xml index 7f890da2..63267c35 100644 --- a/views/res/theme_default.xml +++ b/views/res/theme_default.xml @@ -194,7 +194,7 @@