Index: xlwtabs.c =================================================================== RCS file: /usr/CVSroot/XEmacs/xemacs/lwlib/Attic/xlwtabs.c,v retrieving revision 1.1.2.16 diff -u -r1.1.2.16 xlwtabs.c --- xlwtabs.c 1999/12/05 22:00:18 1.1.2.16 +++ xlwtabs.c 1999/12/08 10:23:47 @@ -18,7 +18,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - /* Synched up with: Tabs.c 1.23 */ + /* Synched up with: Tabs.c 1.25 */ /* * Tabs.c - Index Tabs composite widget @@ -644,7 +644,8 @@ * Window system will handle the redraws. */ - if( tw->tabs.topWidget != curtw->tabs.topWidget ) { + if( tw->tabs.topWidget != curtw->tabs.topWidget ) + { if( XtIsRealized(tw->tabs.topWidget) ) { Widget w = tw->tabs.topWidget ; @@ -661,9 +662,9 @@ needRedraw = True ; } - } else tw->tabs.needs_layout = True ; + } return needRedraw ; } @@ -827,7 +828,8 @@ #ifdef COMMENT MaxChild(tw, &cw, &ch) ; #endif /* COMMENT */ - PreferredSize2(tw, tw->tabs.max_cw,tw->tabs.max_ch, &wid, &hgt) ; + PreferredSize2(tw, + cw=tw->tabs.max_cw, ch=tw->tabs.max_ch, &wid, &hgt) ; /* Ask to be resized to accommodate. */ @@ -1082,9 +1084,9 @@ switch( params[0][0] ) { case 'u': /* up */ case 'U': - if( idx == 0 ) - idx = nc ; - newtop = tw->composite.children[idx-1] ; + if( --idx < 0 ) + idx = nc-1 ; + newtop = tw->composite.children[idx] ; break ; case 'd': /* down */ @@ -1096,6 +1098,7 @@ case 'h': case 'H': + default: newtop = tw->composite.children[0] ; break ; @@ -1141,6 +1144,7 @@ else { + /* find index of currently highlit child */ for(idx=0, childP=tw->composite.children; idx < nc; ++idx, ++childP ) if( tw->tabs.hilight == *childP ) break ; @@ -1148,9 +1152,9 @@ switch( params[0][0] ) { case 'u': /* up */ case 'U': - if( idx == 0 ) - idx = nc ; - newhl = tw->composite.children[idx-1] ; + if( --idx < 0 ) + idx = nc-1 ; + newhl = tw->composite.children[idx] ; break ; case 'd': /* down */ @@ -1168,6 +1172,10 @@ case 'e': case 'E': newhl = tw->composite.children[nc-1] ; + break ; + + default: + newhl = tw->tabs.hilight ; break ; } }