Mercurial > hg > xemacs-beta
diff lwlib/xlwtabs.c @ 440:8de8e3f6228a r21-2-28
Import from CVS: tag r21-2-28
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:33:38 +0200 |
parents | 080151679be2 |
children | abe6d1db359e |
line wrap: on
line diff
--- a/lwlib/xlwtabs.c Mon Aug 13 11:32:27 2007 +0200 +++ b/lwlib/xlwtabs.c Mon Aug 13 11:33:38 2007 +0200 @@ -980,6 +980,12 @@ tw->tabs.topWidget->core.being_destroyed ) ) tw->tabs.topWidget = NULL ; + /* Check whether the highlight tab is still valid. */ + if( tw->tabs.hilight != NULL && + ( !XtIsManaged(tw->tabs.hilight) || + tw->tabs.hilight->core.being_destroyed ) ) + tw->tabs.hilight = NULL ; + GetPreferredSizes(tw) ; MakeSizeRequest(tw) ; @@ -1255,6 +1261,7 @@ if( !XtIsRealized(w) ) { tw->tabs.topWidget = w ; tw->tabs.needs_layout = True ; + tw->tabs.hilight = NULL; /* The highlight tab might disappear. */ return ; } @@ -1265,6 +1272,14 @@ #endif tab = (TabsConstraints) w->core.constraints ; + + /* Unhighlight before we start messing with the stacking order. */ + if( tw->tabs.hilight != NULL ) + { + DrawHighlight(tw, tw->tabs.hilight, True) ; + tw->tabs.hilight = NULL; + } + if( tab->tabs.row == 0 ) { /* Easy case; undraw current top, undraw new top, assign new @@ -1307,8 +1322,6 @@ if( XtIsRealized(t) && w != tw->tabs.hilight ) { - if( tw->tabs.hilight != NULL ) - DrawHighlight(tw, tw->tabs.hilight, True) ; if( w != NULL ) DrawHighlight(tw, w, False) ; }