[sugar] keyboard bindings for buttons and palettes

Tomeu Vizoso tomeu at tomeuvizoso.net
Tue Feb 26 08:06:32 EST 2008


Hi,

have been thinking a bit about the best way to add key bindings
(accelerators) to activities and the shell, and have come up with a
proof of concept patch at:

http://tomeuvizoso.net/~tomeu/accelerators.patch

For adding a Ctrl-B accelerator to the Back button in browse, we would
need to change the code in the following way:

-        self._back = ToolButton('go-previous-paired')
-        self._back.set_tooltip(_('Back'))
+        self._back = ToolButton('go-previous-paired', _('Back'), _('<Ctrl>B'))

The good:

- The labels and accelerators are set at the same time so they will
appear related when translating. Every language team can set its own
policy regarding accelerators.

The bad:

- Every widget will have to listen for 'hierarchy-changed' in order to
set the accelerator for the group of its top level window.

Can anybody think of a better way to do this? If not, I'll come with a
more refined patch and will ask for review. I think accelerators can
improve usability quite a bit.

Thanks,

Tomeu


More information about the Sugar mailing list