pcb

Default keybindings conflict with gtk menu shortcuts

Bug #1057144 reported by Ben Bergman
26
This bug affects 6 people
Affects Status Importance Assigned to Milestone
pcb
Confirmed
Medium
Unassigned
pcb (Gentoo Linux)
New
Undecided
Unassigned

Bug Description

Some of the key bindings (aka. accelerators) for pcb conflict with the menu shortcuts in the GTK HID. For example, Alt+S is supposed to change the drill size, but it will instead open the Settings menu. There are a few ways that this might be resolved.

1. Change the accelerators/menu shortcuts to remove conflicts
2. Change pcb to prefer the accelerators over the menu shortcuts (currently this is reversed) - perhaps this should be a toggleable setting
3. Add a setting that allows disabling the menu shortcuts
4. Remove the menu shortcuts all together

Option 1 would be simple, but would mean changing default shortcuts that people are already used to.
Option 2 would be simple for existing users, but might not be something the GTK HID can do.
Option 3 is similar to 2
Option 4 would again remove functionality that some users might be used to.

It looks like the main menu shortcuts were added in this commit: http://git.geda-project.org/pcb/commit/src/gpcb-menu.res.in?id=acf8d00db4a90b555d768341a97453914b7b4aec

Any recommendations for how to fix this issue?

Revision history for this message
Uhm Gawa (004cs2xj9) wrote :

This breakage is really annoying. Hard to believe it hasn't arisen as more of an issue in the
intervening time as it nixes the ability to interactively tweak pin/via sizes. I'd vote to
abolish it (#4) which I've done locally -- I really don't see a compelling use case for this
behaviour. At a bare minimum it should have been checked in as a disabled, optional feature.

The latest git build at ab6ebc701d8ab6fbc67c5232215d28a1fa3eae0a still exhibits the
breakage.

Revision history for this message
Bert Timmerman (bert-timmerman) wrote :

Patch for option #4.

Kind regards,

Bert Timmerman.

Felix Ruoff (felixruoff)
Changed in pcb:
status: New → Confirmed
importance: Undecided → Medium
Revision history for this message
Akos Mate (mateakos1) wrote :

Still not fixed in version 20140316

Traumflug (mah-jump-ing)
Changed in geda-project:
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
David Baird (dhbaird) wrote :

Still not fixed in Ubuntu 20.04.

Revision history for this message
David Baird (dhbaird) wrote :

Progress! Looks like a documentation "bug" now, because there's an old set of keybindings and a new set of keybindings (see git data below).

Googling for "gnu pcb shortcuts" takes me here, which has the old shortcuts only:
http://wiki.geda-project.org/geda:pcb-quick_reference

Old shortcut --> New shortcut
=====================================================
Shift-Alt-A --> Shift-Ctrl-A Unselect all
Alt-A --> Ctrl-A Select all visible
Alt-S --> Ctrl-D ChangeDrill +5 mil
Alt-Shift-S --> Ctrl-Shift-D ChangeDrill -5 mil
Alt-V --> Ctrl-L Via Tool drill +5 mil
Alt-Shift-V --> Ctrl-Shift-L Via Tool drill -5 mil

git blame src/gpcb-menu.res.in
# >>>
c75676e1b src/gpcb-menu.res.in (Charles Parker 2019-04-28 18:17:26 -0400 443) {"ChangeDrill +5 mil" a={"Ctrl-D" "Ctrl<Key>d"} ChangeDrillSize(Object,+5,mil)}
c75676e1b src/gpcb-menu.res.in (Charles Parker 2019-04-28 18:17:26 -0400 444) {"ChangeDrill -5 mil" a={"Ctrl-Shift-D" "Ctrl Shift<Key>d"} ChangeDrillSize(Object,-5,mil)}
...
c75676e1b src/gpcb-menu.res.in (Charles Parker 2019-04-28 18:17:26 -0400 449) {"Via Tool drill +5 mil" a={"Ctrl-L" "Ctrl<Key>l"} SetValue(ViaDrillingHole,+5,mil)}
c75676e1b src/gpcb-menu.res.in (Charles Parker 2019-04-28 18:17:26 -0400 450) {"Via Tool drill -5 mil" a={"Ctrl-Shift-L" "Ctrl Shift<Key>l"} SetValue(ViaDrillingHole,-5,mil)}

git log -p c75676e1b
# >>>
- {"Unselect all" Unselect(All) a={"Shift-Alt-A" "Shift Alt<Key>a"}}
- {"Select all visible" Select(All) a={"Alt-A" "Alt<Key>a"}}
+ {"Unselect all" Unselect(All) a={"Shift-Ctrl-A" "Shift Ctrl<Key>a"}}
+ {"Select all visible" Select(All) a={"Ctrl-A" "Ctrl<Key>a"}}
...
- {"ChangeDrill +5 mil" a={"Alt-S" "Alt<Key>s"} ChangeDrillSize(Object,+5,mil)}
- {"ChangeDrill -5 mil" a={"Alt-Shift-S" "Alt Shift<Key>s"} ChangeDrillSize(Object,-5,mil)}
+ {"ChangeDrill +5 mil" a={"Ctrl-D" "Ctrl<Key>d"} ChangeDrillSize(Object,+5,mil)}
+ {"ChangeDrill -5 mil" a={"Ctrl-Shift-D" "Ctrl Shift<Key>d"} ChangeDrillSize(Object,-5,mil)}
...
- {"Via Tool drill +5 mil" a={"Alt-V" "Alt<Key>v"} SetValue(ViaDrillingHole,+5,mil)}
- {"Via Tool drill -5 mil" a={"Alt-Shift-V" "Alt Shift<Key>v"} SetValue(ViaDrillingHole,-5,mil)}
+ {"Via Tool drill +5 mil" a={"Ctrl-L" "Ctrl<Key>l"} SetValue(ViaDrillingHole,+5,mil)}
+ {"Via Tool drill -5 mil" a={"Ctrl-Shift-L" "Ctrl Shift<Key>l"} SetValue(ViaDrillingHole,-5,mil)}

Revision history for this message
David Baird (dhbaird) wrote :

Note affected versions. New (non-conflicting) key-bindings released here:

commit 53579ac6946a6c084c1cd7d0f336aac83f9f3e15 (tag: pcb-4.2.1-RELEASE, origin/pcb-4.2.1)
Date: Tue Dec 31 13:49:09 2019 +0100
...
commit c75676e1b24ad25beb17356fa9c9a277414ce7fc
Date: Sun Apr 28 18:17:26 2019 -0400

Conflicted key-bindings released here:

commit bd56b7522660fe695e5ca2ffaae1d793db7d035d (tag: pcb-20110918-RELEASE, origin/pcb-20110918)
Date: Sun Sep 18 16:05:24 2011 -0400
...
commit acf8d00db4a90b555d768341a97453914b7b4aec
Date: Sun Aug 28 23:45:21 2011 -0700

Version in Ubuntu 20.04: 4.2.2 <-- de-conflicted
Version in Ubuntu 18.04: 4.0.2 <-- conflicted
Version in Ubuntu 16.04: 20140316 <-- conflicted

So there was a ~8 year period of broken keybindings :( This is probably a moot point: is there any interest in going back to the original key-bindings (which are mnemonically easier to remember, and are documented), or just go forward with the current new keybindings?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.