From 1554e527833a4f762d9b999e1d2be7e07dadb46e Mon Sep 17 00:00:00 2001 From: Vadim Lopatin Date: Tue, 27 Jan 2015 16:46:48 +0300 Subject: [PATCH] fix styles of popup window and file dialog places list --- src/dlangui/dialogs/filedlg.d | 1 + src/dlangui/platforms/common/platform.d | 12 ++++++++---- views/res/mdpi/popup_window_background.9.png | Bin 556 -> 503 bytes views/res/theme_default.xml | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) 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 14d80259cf5c1f6fafbbdf3d21cbea27729eb4dd..bf3f04b55e13e561c36cf330a7a87399d8d9276d 100644 GIT binary patch delta 429 zcmV;e0aE^~1os1wRDTU66Y)|19smFVgh@m}R7l6Il}kzkK@>$#x0O#PYD91#qCvqO zxCFQ0283+Dg}4F14LEY{5}fMHaX^i~{J-tw78IRI?3Q{^sY=tir}C=aeG$u%k}sm% zFJ0d}n9dsS20_Bi^vcwmf z4G?2L0z@ROSZh0i0;0@1IKXQkp#bqJZwdu4nf(7vE*KR-A|Ki3Ekz^o08$_dRR@U` z)SPBd|5TRS1b>c!17H`Zsc_=VeK$%=&Dp)Rh!@})cmnQ?Q;Ailps)0l1z2~L-9Bu)*(>nv0tOOUXx(w{b|#zyFn6-hlX%zX9qB(kXl48Y X$vR?uM`N=Hk|_mWQM zpC2{dWNX69Bshy&(D2SU4LNF5kO0<6D*6Vb(nTFrVy^NZ2*|s@g7{n?0avo7 z8v!_2fJ_(1zy!DuNY}Uull$I^p=opn0UW&Y(1O0$Pk?JN%)~gUsN&49FV#)AlDk+8 ze8~^Q&iDB+6+MVk^{#;xu#ha&S&s_MPoz@YiAnNJ!CP&CrJCG}X2Qw>Z1l&whJ_Q0 zFb1)T_oP;u1$WXhw*ZBdKkC6El0{X^&S5{z9)LFsu#}R$zE2|s^cBF)cwsK(GyY?J Y07^Gmq$AFn{{R3007*qoM6N<$f_jwQ-v9sr 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 @@