Hello Lesstif,

Scenario:

lesstif-0.91.4
Motif-2.0 widgets
Redhat 6.2

I get the warning message:

Warning: XtRemoveGrab asked to remove a widget not on the list

twice every time I destroy a toplevel shell.

I've included a simple example, press "Create Window 2" to make
a second window, and when you press "Quit 2" in this window, you'll
get the error message...

I don't get this message with openmotif :-)

Am I doing something wrong in my code, or is this a bug in Lesstif?

Mogens
-- 
Mogens Kjaer, Carlsberg Laboratory, Dept. of Chemistry
Gamle Carlsberg Vej 10, DK-2500 Valby, Denmark
Phone: +45 33 27 53 25, Fax: +45 33 27 47 08
Email: [EMAIL PROTECTED] Homepage: http://www.crc.dk
#include <stdio.h>

#include <Xm/Xm.h>
#include <Xm/Form.h>
#include <Xm/Label.h>
#include <Xm/PushB.h>

void quit_callback();
void window2_callback();

static int n;
static Arg wargs[1000];
static Widget toplevel, form, quit, make_w2;
static Widget toplevel2, form2, quit2;

void quit_callback(Widget w, caddr_t client_data, caddr_t user_data)
{
  exit(0);
}

void quit2_callback(Widget w, caddr_t client_data, caddr_t user_data)
{
  XtDestroyWidget(toplevel2);
}

void make_w2_callback(Widget w, caddr_t client_data, caddr_t user_data)
{
  n=0;
  XtSetArg(wargs[n], XtNtitle, "Window 2"); n++;
  toplevel2 = XtCreateApplicationShell("Window2", topLevelShellWidgetClass, wargs, n);

  n=0;
  form2=XtCreateManagedWidget("form2", xmFormWidgetClass, toplevel2, wargs, n);

  n=0;
  XtSetArg(wargs[n], XmNtopAttachment, XmATTACH_FORM); n++;
  XtSetArg(wargs[n], XmNleftAttachment, XmATTACH_FORM); n++;
  XtSetArg(wargs[n], XmNlabelString, XmStringCreateSimple("Quit 2")); n++;
  quit2=XtCreateManagedWidget("quit2", xmPushButtonWidgetClass, form2, wargs, n);
  XtAddCallback(quit2, XmNactivateCallback, (XtCallbackProc) quit2_callback, NULL);

  XtRealizeWidget(toplevel2);
}

main(int argc, char *argv[])
{
  Dimension top_margin, bottom_margin;
  Widget xref;

  n=0;
  toplevel=XtInitialize("example", "Example", (XrmOptionDescRec *) wargs, n, &argc, 
argv);

  n=0;
  form=XtCreateManagedWidget("form", xmFormWidgetClass, toplevel, wargs, n);

  n=0;
  XtSetArg(wargs[n], XmNtopAttachment, XmATTACH_FORM); n++;
  XtSetArg(wargs[n], XmNleftAttachment, XmATTACH_FORM); n++;
  XtSetArg(wargs[n], XmNlabelString, XmStringCreateSimple("Quit")); n++;
  xref=quit=XtCreateManagedWidget("quit", xmPushButtonWidgetClass, form, wargs, n);
  XtAddCallback(quit, XmNactivateCallback, (XtCallbackProc) quit_callback, NULL);

  n=0;
  XtSetArg(wargs[n], XmNtopAttachment, XmATTACH_FORM); n++;
  XtSetArg(wargs[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
  XtSetArg(wargs[n], XmNleftWidget, xref); n++;
  XtSetArg(wargs[n], XmNlabelString, XmStringCreateSimple("Create Window 2")); n++;
  xref=make_w2=XtCreateManagedWidget("make_w2", xmPushButtonWidgetClass, form, wargs, 
n);
  XtAddCallback(make_w2, XmNactivateCallback, (XtCallbackProc) make_w2_callback, NULL);

  XtRealizeWidget(toplevel);
  XtMainLoop();
}

Reply via email to