← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Insert a component in schematic, from the Library Browser, by double clicking on it


Le 07/01/2013 07:55, Dick Hollenbeck a écrit :
On 12/07/2012 04:20 AM, jp charras wrote:
Le 04/12/2012 20:15, Dick Hollenbeck a écrit :
committed in revision 3833, with refinement.

The part was being "parked" at the mouse position after the doubleclick, rather than
staying in drag mode.
The call wxEvent::StopPropagation() seemed to fix this, as it keeps the parent window from
seeing the doubleclick as a single click.

This call is probably useful in our "Selection Clarification" popup menus and in the DRC
ERC dialogs, where we have this recurring problem of the event being re-interpreted in the
parent window.
This call does not fix the issue under MinGW.

I dug this issue, and in fact there is not bug, just an unwanted behavior:
When closing a dialog (mainly ERC, DRC and recently a component
selection by the library viewer on a double click), the dialog is closed
by a left button mouse ckick down, and the corresponding mouse release
left button event is seen by the parent after closing the dialog,
because it is actually made in the parent.
This event generates an usually unwanted (in this case) command (item
selection, component place ...)

This event can be now skipped if it is unwanted by calling
EDA_DRAW_FRAME::SkipNextLeftButtonReleaseEvent() from the dialog, before
closing it.
( This issue was already seen when entering a sub sheet on a double
click in eeschema, and the mechanism to skip the unwanted mouse release
left button event which happens in an other sheet was already existing. )

The parent window does not see the double click event itself.
I do not know why calling wxEvent::StopPropagation() fixes this issue
under Linux, but I am thinking it was only a side effect of this call.

I fixed this in rev 3838

That fix in 3838 does not work for me on linux using 2.8 wx.  I still get the selection
clarification popmenu after double clicking on a DRC error in pcbnew.


Very, very strange:
I tested it on Linux (linux Ubuntu 10.10 32 bits), both with wxWidgets 2.8.12 and 2.9.4, and it works for me.
So currently, I am unable to fix your issue.

Can you just add your first fix (calling wxEvent::StopPropagation() ) in
DIALOG_DRC_CONTROL::OnLeftDClickClearance( wxMouseEvent& event )
because it seems to fix your issue (but if does not fix this issue on my computer, both on W7 and Linux!).
This call did not fix this issue on my computer (both under W7 and Ubuntu),
but on the other hand, should not break anything.

I am talking about "clearance" DRC errors.
However, if you are talking about "Unconnected" DRC error, I just saw I forgot to add the call to
in DIALOG_DRC_CONTROL::OnLeftDClickUnconnected
therefore, this issue is still existing (for me) for unconnected DRC errors.

Jean-Pierre CHARRAS

Follow ups