🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.windows.x
Article #37746

Re: XtCreateManagedWidget blues

#37746
From: liebman
Date: Tue, 06 Mar 1990 16:53
123 lines
4060 bytes
> Here is what could be a simple problem (but I'm not sure).
> 
> I have a piece of code which creates a unique name, then creates a
> form widget with that name.
>   ...
>   n = 0;
>   XtSetArg(args[n], XtNheight, 10); n++;
>   XtSetArg(args[n], XtNwidth, 10); n++;
>   varWidget = XtCreateManagedWidget(uniquename, formWidgetClass, myboxwidget,
>                                     args, n);
>   ...
> 
> The first time I do this everything works, I add some child widgets later
> and things are great.  Then I unmanage varWidget and go back to create a new
> form widget, calling the same code (but the unique name is different).
> Once I've called XtCreateManagedWidget this second time, and not before,
> I'll get the following error when I enter an event loop:
> 
> X Protocol error:  not a valid window ID
>   Major opcode of failed request: 8 (X_MapWindow)
>   Minor opcode of failed request: 0
>   Resource id in failed request:  0x0
>   Serial number of failed request:  409
>   Current serial number in output stream:  411
> 
> The only difference I can think of between the first and second time this
> code is called is that the parent widget (myboxwidget) is not yet mapped
> the first time, but is the second time.  That shouldn't make a difference...
> should it?
> 
> This is running in R3, on a microVax with a 4-bit (monochrome) display.
> I welcome any suggestions, no matter how stupid they make me feel.
> Matthew Diamond
> matt@maps.cs.cmu.edu

I have seen this too, here is a copy of the bug report and example.


			  X Window System Bug Report
			    xbugs@expo.lcs.mit.edu


VERSION:
    R4

CLIENT MACHINE and OPERATING SYSTEM:
	Sun3 and Sun4 running SunOs4.0.3

DISPLAY TYPE:
	Sun CG6, CG4, CG2

WINDOW MANAGER:
	gwm, twm

AREA:
	Xt

SYNOPSIS:
	The widgets windows are being used before they are created.

DESCRIPTION:
	Changeing the managed set of widgets by unmanaging one and then 
	adding a new one causes protocol error.

REPEAT BY:
	Compile and run appended program, wait 20 seconds and watch it die.

SAMPLE FIX:
	Don'y have one, workaround: realize new widgets by hand before they
	are managed.

Chris Liebman
INTELNET:	8*440-2032
XNS:		liebman:Herndon:xerox
UUCP:		...!uunet!xrxedds!liebman
ARPA:		liebman.Herndon@Xerox.Com liebman@arisia.xerox.com
ATT:		1-(703)-787-2032

----------------------- bug.c ---------------------------
#include <X11/Intrinsic.h>
#include <X11/StringDefs.h>
#include <X11/Xaw/Label.h>
#include <X11/Xaw/Box.h>

Widget	TheTopLevel;
Widget	TheFrame;
Widget	TheFirstLabel;

/* ARGSUSED */
static void
MoreWidgets( id, data )
XtIntervalId id;
caddr_t data;
{
    (void) XtVaCreateManagedWidget("junk", labelWidgetClass,
				   TheFrame, NULL);
    XtUnmanageChild(TheFirstLabel);
    (void) XtVaCreateManagedWidget("junk2", labelWidgetClass,
				   TheFrame, NULL);
}

main(argc, argv)
int	argc;
char	*argv[];
{
    TheTopLevel = XtInitialize(argv[0], "XBug", NULL, 0, &argc, argv);
    TheFrame  = XtVaCreateManagedWidget("frame", boxWidgetClass,
					TheTopLevel, NULL);
    TheFirstLabel = XtVaCreateManagedWidget("label1", labelWidgetClass,
					    TheFrame, NULL);
    XtRealizeWidget(TheTopLevel);
    (void)XtAddTimeOut((unsigned long)20*1000, MoreWidgets, (caddr_t)NULL );
    XtMainLoop();
}

--
Chris Liebman
INTELNET:	8*440-2032
XNS:		liebman:Herndon:xerox
UUCP:		...!uunet!xrxedds!liebman
ARPA:		liebman.Herndon@Xerox.Com liebman@arisia.xerox.com
ATT:		1-(703)-787-2032
Technical Details
Message-ID: <LIEBMAN.90Mar6115309@neptune.xrxedds.UCP>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!xrxedds!liebman
References: <9003051747.AA03308@ATHENA.MIT.EDU>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!xrxedds!liebman
From: liebman@xrxedds.UCP
Newsgroups: comp.windows.x
Subject: Re: XtCreateManagedWidget blues
Message-ID: <LIEBMAN.90Mar6115309@neptune.xrxedds.UCP>
Date: 6 Mar 90 16:53:09 GMT
References: <9003051747.AA03308@ATHENA.MIT.EDU>
Sender: news@xrxedds.UUCP
Organization: EDDS, Xerox Corporation, Leesburg Va.
Lines: 123
In-reply-to: Matthew.Diamond@MAPS.CS.CMU.EDU's message of 5 Mar 90 17:44:31 GMT