From 9d86705a55ce06cee1b510ac810a01a0065b89e7 Mon Sep 17 00:00:00 2001 From: Vadim Lopatin Date: Mon, 21 Mar 2016 13:45:23 +0300 Subject: [PATCH] fix double drawing of tab header - fix #190 --- src/dlangui/widgets/tabs.d | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/dlangui/widgets/tabs.d b/src/dlangui/widgets/tabs.d index 9173edb5..a1576f0c 100644 --- a/src/dlangui/widgets/tabs.d +++ b/src/dlangui/widgets/tabs.d @@ -521,24 +521,26 @@ class TabControl : WidgetGroupDefaultDrawing { override void onDraw(DrawBuf buf) { if (visibility != Visibility.Visible) return; - super.onDraw(buf); + super.Widget.onDraw(buf); Rect rc = _pos; applyMargins(rc); applyPadding(rc); auto saver = ClipRectSaver(buf, rc); + // draw all items except selected for (int i = _children.count - 1; i >= 0; i--) { Widget item = _children.get(i); if (item.visibility != Visibility.Visible) continue; - if (item.id.equal(_selectedTabId)) + if (item.id.equal(_selectedTabId)) // skip selected continue; item.onDraw(buf); } + // draw selected item for (int i = 0; i < _children.count; i++) { Widget item = _children.get(i); if (item.visibility != Visibility.Visible) continue; - if (!item.id.equal(_selectedTabId)) + if (!item.id.equal(_selectedTabId)) // skip all except selected continue; item.onDraw(buf); }