I applied your patch and now XEmacs seems to be stable for longer time. At
least, I've been doing my work for several hours without crashes.
--- xlwtabs.c~ Mon Jan 03 09:36:21 2000
+++ xlwtabs.c Tue Jan 18 10:01:31 2000
@@ -1255,6 +1255,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 +1266,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 +1316,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) ;
}
But I ran across some strange behavior of gutters, which is described by this
test case:
-------------------------------------------------------------------------------
(progn (custom-set-variables '(gutter-visible-p nil))
(let ((buf (generate-new-buffer "Test")))
(switch-to-buffer buf)
(insert "Where is " (buffer-name buf) " in tabs?"))
(custom-set-variables '(gutter-visible-p t)))
-------------------------------------------------------------------------------
Let's suppose this test case is stored in test.el and do the following:
hookah : npakoulin >$ xemacs -vanilla -l test.el &
What we get is
but should be (as I see it)
-------------------------------------------------------------------------------
Nick.