X-Git-Url: http://ecere.com/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=ecere%2Fsrc%2Fgui%2Fcontrols%2FTabControl.ec;h=94a7cc1e5a19f99e5c5db6a13d357c6245956dc4;hb=1620e78bb9c4536c692327535977cfd8d4d9514d;hp=aa5dfa5e930bd7527b7d26ad6e791e30912f3845;hpb=6a0ffa3969c670b83e9480bf56a3d1dad3c43020;p=sdk diff --git a/ecere/src/gui/controls/TabControl.ec b/ecere/src/gui/controls/TabControl.ec index aa5dfa5..94a7cc1 100644 --- a/ecere/src/gui/controls/TabControl.ec +++ b/ecere/src/gui/controls/TabControl.ec @@ -540,12 +540,12 @@ public class TabControl : Window bool NotifyClicked(Button button, int x, int y, Modifiers mods) { - if(curTab == (Tab)(intptr)button.id) + if(curTab == (Tab)(intptr)button.id && curTab.created) return true; //curButton.Activate(); curButton.MakeActive(); - if(curTab.Destroy(0)) + if(!curTab || curTab == (Tab)(intptr)button.id || curTab.Destroy(0)) { curButton.checked = false; button.checked = true; @@ -638,18 +638,21 @@ public class TabControl : Window } break; } - else + else if(button.created) fallbackTab = button.tab; } } - if(curTab == tab) + if(curTab == tab && curTab.created) { if(!fallbackTab) fallbackTab = tabButtons.children.first ? ((TabButton)tabButtons.children.first).tab : null; - if(fallbackTab) + if(fallbackTab && fallbackTab.button.created) fallbackTab.SelectTab(); else + { + curTab.Destroy(0); curTab = null; + } /*curTab = fallbackTab; curButton = curTab.button; curButton.checked = true; @@ -750,6 +753,11 @@ public class Tab : Window button.NotifyClicked(button.master, button, 0, 0, 0); } + public property bool isAdded + { + get { return button && button.created; } + } + watch(caption) { if(button)