← Back to team overview

kicad-developers team mailing list archive

Re: Python Scripting Window event handling

 

Le 18/06/2014 09:37, Jean-Samuel Reynaud a écrit :
> Hi,
> 
> When not docked it's working for me:
> 
> Ubuntu 12.04
> wx : 2.8.12.1
> 
> Ok for this modification but I have a question:
> Why not remove this shortcut from the menu and put it only on the pcb
> edit frame (like T or M hotkey for example) ?
> Is it because it remove the hotkey remind in the menu ?
> 

It is one of reasons.

But all hotkeys (accelerator keys)used in toolbars and main menu are
filtered.
Most of them are not printable keys ( most are Fx or Ctr+...), so you
did not see the filtering.
(In fact there are not a lot, fortunately)

Therefore the fix is not easy. You can:
- remove all accelerator keys
- duplicate some code
- use only not printable keys (but the delete key is not printable, and
it could be used in main menu).
(Remember also hot keys are definable by the user, so using not
printable keys does not really fix the issue).

But this is an *heavy constraint*, so I prefer this workaround (do not
dock the python console)

In fact, I am thinking accelerator keys are filtered and the
corresponding Key Events are not sent to panels depending on the pcb
edit frame (this is not specific to the Python console), at least on
wxWindows 2.8 or on Windows (seems this is a bit different on Linux +
wxWidgets 3.0).

The reason why all keys events are received when the console is undocked
is due to the fact it is shown (by the wxAuiManager) inside a
wxMiniFrame, and in this case the wxMiniFrame has the full keyboard
focus (It also happens when you are using a wxDialog).
But a wxMiniFrame cannot be docked.


-- 
Jean-Pierre CHARRAS


References