summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfvogel <fvogelnew1@free.fr>2017-04-03 14:44:48 (GMT)
committerfvogel <fvogelnew1@free.fr>2017-04-03 14:44:48 (GMT)
commit0b70616ba05255d0d81b5e4aac59becde0787af7 (patch)
treee050d40a799fecba2dd7b65c528e014b079d6a0d
parentd74ea96f8de64d42ea66d687e6ce4df95c2a1849 (diff)
downloadtk-0b70616ba05255d0d81b5e4aac59becde0787af7.zip
tk-0b70616ba05255d0d81b5e4aac59becde0787af7.tar.gz
tk-0b70616ba05255d0d81b5e4aac59becde0787af7.tar.bz2
Fixed TTK_STATE_USER2 similarly as TTK_STATE_USER1. These bits are set for the leftmost and rightmost *visible* (i.e. non hidden) tabsbug_2912962fff
-rw-r--r--generic/ttk/ttkNotebook.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/generic/ttk/ttkNotebook.c b/generic/ttk/ttkNotebook.c
index 726257d..2bb9f82 100644
--- a/generic/ttk/ttkNotebook.c
+++ b/generic/ttk/ttkNotebook.c
@@ -288,8 +288,8 @@ static void ActivateTab(Notebook *nb, int index)
* TabState --
* Return the state of the specified tab, based on
* notebook state, currentIndex, activeIndex, and user-specified tab state.
- * The USER1 bit is set for the leftmost tab, and USER2
- * is set for the rightmost tab.
+ * The USER1 bit is set for the leftmost visible tab, and USER2
+ * is set for the rightmost visible tab.
*/
static Ttk_State TabState(Notebook *nb, int index)
{
@@ -316,8 +316,15 @@ static Ttk_State TabState(Notebook *nb, int index)
}
break;
}
- if (index == Ttk_NumberSlaves(nb->notebook.mgr) - 1) {
- state |= TTK_STATE_USER2;
+ for (i = Ttk_NumberSlaves(nb->notebook.mgr) - 1; i >= 0; --i) {
+ Tab *tab = Ttk_SlaveData(nb->notebook.mgr, i);
+ if (tab->state == TAB_STATE_HIDDEN) {
+ continue;
+ }
+ if (index == i) {
+ state |= TTK_STATE_USER2;
+ }
+ break;
}
if (tab->state == TAB_STATE_DISABLED) {
state |= TTK_STATE_DISABLED;