Index: ossp-pkg/as/as-gui/as_table.cpp RCS File: /v/ossp/cvs/ossp-pkg/as/as-gui/as_table.cpp,v rcsdiff -q -kk '-r1.10' '-r1.11' -u '/v/ossp/cvs/ossp-pkg/as/as-gui/as_table.cpp,v' 2>/dev/null --- as_table.cpp 2002/12/13 17:44:42 1.10 +++ as_table.cpp 2002/12/13 18:06:10 1.11 @@ -46,7 +46,9 @@ else if (pEvent->type() == QEvent::KeyPress) { if (((QKeyEvent *)pEvent)->key() == Qt::Key_Tab) { // Handle tab key if (this->getEdition() >= 0) { - int nColadvance = ((currentColumn() + 1) % TITRAQ_IDXTAIL); + int nIter = 0; // To skip invisible columns + while (columnWidth((currentColumn() + ++nIter) % TITRAQ_IDXTAIL) <= 0); // Skip invisibles + int nColadvance = ((currentColumn() + nIter) % TITRAQ_IDXTAIL); if (nColadvance == 0) // Advance the column and possibly the row too this->setCurrentCell(currentRow() + 1, nColadvance); else @@ -60,7 +62,9 @@ } else if (((QKeyEvent *)pEvent)->key() == Qt::Key_Backtab) { // Handle shift tab key if (this->getEdition() >= 0) { - int nColadvance = ((currentColumn() - 1) % TITRAQ_IDXTAIL); + int nIter = 0; // To skip invisible columns + while (columnWidth((currentColumn() - ++nIter) % TITRAQ_IDXTAIL) <= 0); // Skip invisibles + int nColadvance = ((currentColumn() - nIter) % TITRAQ_IDXTAIL); if (nColadvance == 0) // Advance the column and possibly the row too this->setCurrentCell(currentRow() - 1, nColadvance); else