[comp.windows.x] is this an xview bug?

alan@cogswell.Jpl.Nasa.Gov (Alan S. Mazer) (05/09/90)

I've just noticed that some of my canvas repaint/resize procedures are being
called very strangely.  Just for a simply frame/canvas creation, my resize
procedure is called three times (with two different sizes) and the repaint
procedure is called four times.  Am I missing something here???

    #include <xview/xview.h>
    #include <xview/canvas.h>
    #include <xview/xv_xrect.h>

    main()
    {
	Canvas canvas;
	Frame frame;
	void repaint(),resize();

	frame = (Frame)xv_create(NULL,FRAME,XV_WIDTH,512,XV_HEIGHT,512,NULL);
	canvas = (Canvas)xv_create(frame,CANVAS,CANVAS_X_PAINT_WINDOW,TRUE,
	    XV_WIDTH,512,XV_HEIGHT,512,CANVAS_REPAINT_PROC,repaint,
	    CANVAS_RESIZE_PROC,resize,NULL);

	xv_main_loop(frame);
    }

    void repaint(canvas,pw,dpy,xwin,xrects)
    Canvas canvas;
    Xv_Window pw;
    Display *dpy;
    Window xwin;
    Xv_xrectlist *xrects;
    {
	printf("doing repaint\n");
    }

    void resize(canvas,width,height)
    Canvas canvas;
    int width,height;
    {
	printf("doing resize (%d %d)\n",width,height);
    }

produces

    doing resize (506 506)
    doing resize (506 436)
    doing resize (506 506)
    doing repaint
    doing repaint
    doing repaint
    doing repaint

Is this a bug or am I just doing something wrong???

-- Alan				# "But seriously, what could go wrong?"
   ..!cit-vax!elroy!alan
   alan@elroy.jpl.nasa.gov