[comp.windows.open-look] Help! Xview Canvas not getting LOC_DRAG events???

frank@odetics.com (Frank Merrow) (06/15/91)

Hi,

I can not seem to get my WIN_CONSUME_EVENTS to direct LOC_DRAG and/or
WIN_MOUSE_BUTTONS events to me!  LOC_MOVE seems to work fine, but
I don't get ANY events with any button down.  Can anyone help?  I
have included my xv_create() for the canvas below.  Is there something
I need to enable on the Base Frame?  If so what?

Frank
frank@odetics.com or uunet!odetics!frank

/* Create the canvas and get all the silly names I will need to be	*/
/* able to Draw on it.							*/

FracCanvas = (Canvas) xv_create(BaseFrame,CANVAS,
	                        CANVAS_AUTO_SHRINK   ,FALSE,
                                CANVAS_AUTO_EXPAND   ,FALSE,
			        CANVAS_RETAINED      ,FALSE,
                                CANVAS_HEIGHT        ,XFP_IMAGE_HEIGHT,
	                        CANVAS_WIDTH         ,XFP_IMAGE_WIDTH,
			        CANVAS_AUTO_CLEAR    ,FALSE,
			        CANVAS_X_PAINT_WINDOW,TRUE,
			        CANVAS_REPAINT_PROC  ,CB_Repaint,
				WIN_EVENT_PROC       ,CB_Canvas,
				WIN_CONSUME_EVENTS   ,LOC_MOVE,
						      LOC_WINEXIT,
/* LOC_DRAG or WIN_MOUSE_BUTTONS here does NOT help !!??!! */
						      NULL,
			        XV_HEIGHT            ,XFP_IMAGE_HEIGHT+2,
			        XV_WIDTH             ,XFP_IMAGE_WIDTH+2,
                  	        NULL);

FracCanvas_Xv = canvas_paint_window(FracCanvas);
FracCanvas_Ds = (Display *) XV_DISPLAY_FROM_WINDOW(FracCanvas_Xv);
FracCanvas_X  = xv_get(FracCanvas_Xv,XV_XID);
FracCanvas_GC = DefaultGC(FracCanvas_Ds,DefaultScreen(FracCanvas_Ds));

brianw@gazooch.Eng.Sun.COM (Brian Warkentine) (06/15/91)

In article <1991Jun14.204843.643@odetics.com> frank@odetics.com (Frank Merrow) writes:
>Hi,
>
>I can not seem to get my WIN_CONSUME_EVENTS to direct LOC_DRAG and/or
>WIN_MOUSE_BUTTONS events to me!  

That's because you're asking for events on canvas, not the paint window.
Change you're code to include something like the following:

                ...
		CANVAS_PAINTWINDOW_ATTRS,
			WIN_CONSUME_EVENTS,
				WIN_MOUSE_BUTTONS,
				LOC_DRAG,
				LOC_MOVE,
				LOC_WINEXIT,
				NULL,
			WIN_EVENT_PROC, CB_Canvas,
			NULL,
                        ...

>FracCanvas = (Canvas) xv_create(BaseFrame,CANVAS,
>	                        CANVAS_AUTO_SHRINK   ,FALSE,
>                                CANVAS_AUTO_EXPAND   ,FALSE,
>			        CANVAS_RETAINED      ,FALSE,
>                                CANVAS_HEIGHT        ,XFP_IMAGE_HEIGHT,
>	                        CANVAS_WIDTH         ,XFP_IMAGE_WIDTH,
>			        CANVAS_AUTO_CLEAR    ,FALSE,
>			        CANVAS_X_PAINT_WINDOW,TRUE,
>			        CANVAS_REPAINT_PROC  ,CB_Repaint,
>				WIN_EVENT_PROC       ,CB_Canvas,
>				WIN_CONSUME_EVENTS   ,LOC_MOVE,
>						      LOC_WINEXIT,
>/* LOC_DRAG or WIN_MOUSE_BUTTONS here does NOT help !!??!! */
>						      NULL,
>			        XV_HEIGHT            ,XFP_IMAGE_HEIGHT+2,
>			        XV_WIDTH             ,XFP_IMAGE_WIDTH+2,
>                  	        NULL);

-brian
brianw@Eng.Sun.Com