← Back to team overview

kicad-developers team mailing list archive

Re: block select


Dick H. a écrit :


We have a new problem with the block select logic, which is a direct
result of the fact that PcbGeneralLocateAndDisplay() pops up a menu.
The problem starts at line 94 in pcbnew/edit.cpp.

If the BOARD has a background footprint, like my PC104 which is large,
and I want to select a block of footprints which are smaller and sit
on top of the PC104 footprint, then PcbGeneralLocateAndDisplay() will
present its menu before the block selection logic is complete. This
is because of the line 94 mentioned.

You are right...
And the same problem exists for the double click command.

One possible solution is that we change that logic at line 94 by
moving it to a "mouse button up" handler, or at least the "completed
click handler". That way the single footprint selection and block
selection logic is mutually exclusive.

This solution works for the block commands, but it does not solve the double click command.

And users expect a selection rather at the beginning of the click than at its end.

What other solutions can you think of, or is this our best?

Can you try this solution (for the logic in line 94)
if ( ! wxGetKeyState(WXK_SHIFT) && ! wxGetKeyState(WXK_ALT) &&
! wxGetKeyState(WXK_CONTROL) && ! wxGetKeyState(WXK_TAB))
DrawStruct = PcbGeneralLocateAndDisplay();
if( DrawStruct )
SendMessageToEESCHEMA( DrawStruct );

If the single click popu menu is displayed, the copy block (or the double click command ) can be reached by pressing the TAB key, when clicking.
Other block commands do not change and they are always accessible.

Jean-Pierre CHARRAS
Maître de conférences
Directeur d'études 2ieme année.
Génie Electrique et Informatique Industrielle 2
Institut Universitaire de Technologie 1 de Grenoble
BP 67, 38402 St Martin d'Heres Cedex

Recherche :
Grenoble Image Parole Signal Automatique (GIPSA - INPG)
46, Avenue Félix Viallet
38031 Grenoble Cedex

Follow ups