Fw: Strange behavior with listivews and popups

new topic     » topic index » view thread      » older message » newer message

Thisis a resend 'cos I don't think the first one got thru.

----------------
cheers,
Derek Parnell
----- Original Message -----
From: "Derek Parnell" <ddparnell at bigpond.com>
To: <EUforum at topica.com>
Subject: Re: Strange behavior with listivews and popups


> Jonas,
> I have a fix for this effect. First the reason behind it...
>
> The popup takes focus and thus receives the Right-Mouse-Up event instead
of
> the ListView underneath. Now the listview knows that the mouse button was
> pressed, and when it gets focus again, it notices that the mouse has moved
> position while (it thinks) that the button was still down, so it draws the
> dotted box.
>
> Anyhow, to get rid of this effect we need to tell the ListView to ignore
the
> initial right mouse down event. You need to do two things...
>
> First, in the win32lib file, find the routine fDoMouse and locate this
> line...
>
>   VOID = invokeHandler(id, w32HMouse, {iMsg, mouseX, mouseY,
> getKeyMasks(wParam)})
>
> add these three lines immediately after it...
>
>   if sequence(VOID) then
>     lRC = {kReturnNow}
>   end if
>
> Next, in your program, add this line after the popup() has been invoked...
>
>   returnValue(0)
>
> That should do it for you.
>
> ----------------
> cheers,
> Derek Parnell
> ----- Original Message -----
> From: "Jonas Temple" <jtemple at yhti.net>
> To: "EUforum" <EUforum at topica.com>
> Sent: Saturday, April 05, 2003 1:17 AM
> Subject: Strange behavior with listivews and popups
>
>
> >
> > I've noticed that when I use popup() from a listview a dotted rectangle
> > (similar to what you would see in a drag/copy operation in a word
> > processor) is showing up if an item is clicked in the popup.  Has anyone
> > seen this or know how to fix this?
> >
> > I've attached a small example:
> >
> > --  code generated by Win32Lib IDE v0.16.0
> >
> >
> > include Win32Lib.ew
> > without warning
> >
>
> --------------------------------------------------------------------------
> ------
> >
> > --  Window Window1
> > global constant Window1 = createEx( Window, "Window1", 0, Default,
> > Default, 537, 401, 0, 0 )
> > global constant TestPM = createEx( Popup, "Test Popup", Window1, 0, 1,
> > 0, 0, 0, 0 )
> > global constant TestPI = createEx( MenuItem, "Test Item", TestPM, 0, 2,
> > 0, 0, 0, 0 )
> > global constant TestLV = createEx( ListView, {"Test"}, Window1, 16, 16,
> > 460, 284, or_all({LVS_REPORT,LVS_SHOWSELALWAYS}), 0 )
> > atom lvMask
> > integer lvOk
> > lvMask = or_all({LVS_EX_FULLROWSELECT})
> > lvOk = sendMessage(TestLV,LVM_SETEXTENDEDLISTVIEWSTYLE,lvMask,lvMask)
> > global constant OkayPB = createEx( PushButton, "Okay", Window1, 40, 316,
> > 88, 28, 0, 0 )
> > ---------------------------------------------------------
>
> --------------------------------------------------------------------------
> ------
> >
> > procedure TestLV_onMouse (integer self, integer event, sequence
> > params)--params is ( int event, int x, int y, int shift )
> > sequence pos
> > -- Right mouse button down, show the popup
> > if params[1] = WM_RBUTTONDOWN then
> > pos = getPointerRelPos(Window1)
> > popup(TestPM, pos[1], pos[2])
> > end if
> > end procedure
> > setHandler( TestLV, w32HMouse, routine_id("TestLV_onMouse"))
>
> --------------------------------------------------------------------------
> ------
> >
> > procedure OkayPB_onClick (integer self, integer event, sequence
> > params)--params is ()
> > closeWindow(Window1)
> > end procedure
> > setHandler( OkayPB, w32HClick, routine_id("OkayPB_onClick"))
> >
> >
> > WinMain( Window1,Normal )
> >
> >
> >
> > TOPICA - Start your own email discussion group. FREE!
> >
>

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu