First, a line of (example) code was missing:

    win->toolbar_win = XtVaCreatePopupShell ("ToolBox",
        xmDialogShellWidgetClass,
        win->base,
        XmNminHeight, h + 15,
        XmNminWidth, w,
        XmNallowShellResize, FALSE,
        NULL);
    XtManageChild(win->toolbar_win);

Removing 'XtManageChild(win->toolbar_win);' removed the
seven-seconds-delay.

I beg your pardon.

winfried
---------------- original message -----------------------------
Once upon a time, I sent you a mail:

  From  [EMAIL PROTECTED] Mon, 27 Oct 2003 21:15:09 GMT
  Date: Mon, 27 Oct 2003 21:15:09 GMT
  From: w. szukalski <[EMAIL PROTECTED]>
  Subject: bug in lesstif-0.93.49
  To:   <[EMAIL PROTECTED]>
  Message-ID: <[EMAIL PROTECTED]>

The application using lesstif is the HTML browser 'mMosaic'.
It was under development at that time.
It is now expected to be stable. So I 
downloaded and installed lesstif-0.93.94 . Recompiling
the application and using it, I found it shivering
when I used the popup menu to go back to a place I
had been before.

Using 'gvd' (gnu visual debugger) I found that the 
lesstif function 'XmUpdateDisplay()' in the file
'lib/Xm*/misc.c' was repeatedly called. The interrupt
stopped at line 67: 'XtDispatchEvent(&ev);'.

De-installing lesstif-0.93.94 and re-installing 
lesstif-0.93.40 I found that the application did
not shiver at all. So I feel there has been introduced
a new bug in a later version.

I have found a flaw in lesstif so severe that one could call it a
bug. The bug shows up in both versions in question:

    win->toolbar_win = XtVaCreatePopupShell("ToolBox",
        xmDialogShellWidgetClass,
        win->base,
        XmNminHeight, h + 15,
        XmNminWidth, w,
        XmNallowShellResize, FALSE,
        NULL);

#ifdef SHOW_LESSTIF_BUG
    form = XtVaCreateWidget ("tear_off_form",
        xmFormWidgetClass, win->toolbar_win,
        XmNminHeight, h,
        XmNminWidth, w,
        XmNmaxHeight, h,
        XmNmaxWidth, w,
        XmNheight, h,
        XmNwidth, w,
        NULL);

    mo_fill_toolbar(win, form, 0, 0);
fprintf(stderr, "\n%s:%d:", __FILE__,__LINE__);

    XtManageChild(form);
fprintf(stderr, "\n%s:%d:", __FILE__,__LINE__);
#else
    form = XtVaCreateManagedWidget ("tear_off_form",
        xmFormWidgetClass, win->toolbar_win,
        XmNminHeight, h,
        XmNminWidth, w,
        XmNmaxHeight, h,
        XmNmaxWidth, w,
        XmNheight, h,
        XmNwidth, w,
        NULL);

    mo_fill_toolbar(win, form, 0, 0);

#endif /* SHOW_LESSTIF_BUG */

A toolbar in the main window is torn off. A DialogShell
is created and filled to create an external toolbar.

Calling 'form = XtVaCreateWidget();', 
I found that 'XtManageChild(form);' needs
about seven seconds.

Calling 'form = XtVaCreateManagedWidget();' fills the
form as fast as openmotif-2.2.2: immediately.

The antique 'bug' of the xmDialogShellWidgetClass
(cnf. lesstif-*/test/Xm/vendor/test6.c) is still visible in both
versions in question.

Regarding my mail from October 2003: to prevent mMosaic
>from crashing on startup, I had to configure lesstif-
0.93.94 such:

    --without-freetype-config \
    --without-freetype-lib \
    --without-freetype-includes

winfried
_______________________________________________
Lesstif mailing list
[EMAIL PROTECTED]
https://terror.hungry.com/mailman/listinfo/lesstif

Reply via email to