Commit Graph

61605 Commits

Author SHA1 Message Date
Benjamin Otte
13a27a0999 accellabel: Move gtk_accelerator_get_label() code
The function lives in gtkaccelgroup.c, so there's no need to have that
call a private function in another source file. Instead, make that
other source file call gtk_accelerator_get_label() instead.
2020-03-22 11:14:06 -04:00
Benjamin Otte
24b63558c6 accellabel: Get rid of class variables
We can just look them up as-needed, no need to cache them.
2020-03-22 11:14:06 -04:00
Benjamin Otte
833308bb1e gtk: Remove bindings
The whole binding functionality is now handled by shortcuts.
2020-03-22 11:14:06 -04:00
Matthias Clasen
814efb542a event controller focus: drop include
This header is not needed here, and it is going away.
2020-03-22 11:14:06 -04:00
Emmanuele Bassi
f91f257188 Remove bindings activation from GtkEventControllerKey
We're going to use shortcuts soon.
2020-03-22 11:14:06 -04:00
Emmanuele Bassi
816b266f73 popover: Remove unused include 2020-03-22 11:14:06 -04:00
Matthias Clasen
9c667d92bd popover: Add keynav keybindings
The shortcut controllers are limited to same-native,
so we need to duplicate the Tab and arrow key bindings
for focus handling, as well as the Enter bindings for
activation.
2020-03-22 11:14:06 -04:00
Emmanuele Bassi
a41c87d449 popovermenu: Port to shortcuts 2020-03-22 11:14:06 -04:00
Emmanuele Bassi
f1a8938cd7 passwordentry: Remove unused include 2020-03-22 11:14:06 -04:00
Emmanuele Bassi
a9391bb100 entry: Remove unused include 2020-03-22 11:14:06 -04:00
Benjamin Otte
06a5fd1cf7 accelgroup: Actually have a default mod mask
Don't just use a value without initializing it.
2020-03-22 11:14:06 -04:00
Benjamin Otte
2df6e8e8dc treeview: Redo event forwarding hack
Reorder the event controllers so that key forwarding to the search
entries really happens after shortcut triggering.
2020-03-22 11:14:06 -04:00
Benjamin Otte
cf6940be9f combobox: Redo key event forwarding hack
Instead of manualling invoking bindings, we now reorder event
controllers inside the treemenu, so that shortcuts run before the event
forwarding.
2020-03-22 11:14:06 -04:00
Emmanuele Bassi
1e91f65ffd widget: Add private accessor to event controllers 2020-03-22 11:14:06 -04:00
Benjamin Otte
f54c0bf1df iconview: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
d405d95ce4 infobar: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
16b8bf042c label: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
b695b1fd4c listbox: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
fda4d8b7c6 notebook: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
378af08a72 scale: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
3e1a86b36b scalebutton: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
199b5174f1 scrolledwindow: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
7efbe18783 searchentry: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
893b6a8514 shortcutssection: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
75e9d9af53 shortcutswindow: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
ff500ea26c flowbox: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
eb6834b989 paned: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
6f0284e361 spinbutton: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
a3d9f0ac60 textview: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
6fec3f22a4 filechooserwidget: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
453d08b982 shortcutcontroller: Add gtk_shortcut_controller_add_shortcut()
... and gtk_shortcut_controller_remove_shortcut().
2020-03-22 11:14:06 -04:00
Benjamin Otte
4fbcb74697 shortcutcontroller: Add private API for running class shortcuts
We don't want regular users to be able to run class shortcuts in their
controllers, so we have to special case that.
2020-03-22 11:14:06 -04:00
Benjamin Otte
2382d8e9c2 treeview: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
0089c6146e widget: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
60a89ff7d4 dialog: Port binding to use shortcuts 2020-03-22 11:14:06 -04:00
Emmanuele Bassi
3eec8799f0 text: Port to widget shortcuts 2020-03-22 11:14:06 -04:00
Emmanuele Bassi
93bebe31e6 Allow installing bindings bound to actions
This is just convenience code around GtkShortcut, just like bindings for
signal emission and callback invocation.
2020-03-22 11:14:06 -04:00
Emmanuele Bassi
0ee873c5e4 shortcut: Add action activation 2020-03-22 11:14:06 -04:00
Emmanuele Bassi
9965ed54b8 bindings: Export action activation internally
We're going to use it, just like we use the signal emission code.
2020-03-22 11:14:06 -04:00
Benjamin Otte
02991b9bd4 shortcut: Add gtk_shortcut_set_callback()
... and gtk_widget_class_add_binding() to go with it.

This allows shortcuts to invoke manually added callbacks.
2020-03-22 11:14:06 -04:00
Benjamin Otte
f1cb6384ac combobox: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
5026af064a assistant: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
69c3d60539 trigger: Add an alternative trigger
And use it.

I just added it to GtkWidget just to show that I can.
The real reason I want it is for gamepad/joystick triggers
in games, so that it becomes possible to select 2 different
triggers (gamepad and keyboard) for the same shortcut.
2020-03-22 11:14:06 -04:00
Matthias Clasen
1ac761d111 shortcut: Add GtkShortcutTrigger
Triggers are meant to describe how to trigger a shortcut.
So far only a keyval + modifiers trigger exists.
2020-03-22 11:14:06 -04:00
Benjamin Otte
46f3bb1401 window: Port bindings to use shortcuts 2020-03-22 11:14:06 -04:00
Benjamin Otte
f967c3dbba bindings: Add more variant types
Also marshal types that the code in gtkbindings.c doesn't use. These
will be used by gtk_widget_class_add_binding_signal().
2020-03-22 11:14:05 -04:00
Benjamin Otte
b324a2872a widget: Add gtk_widget_class_add_shortcut()
This allows adding shortcuts as a replacement for keybindings.
2020-03-22 11:14:05 -04:00
Benjamin Otte
498545eccb gtk: Add GtkShortcut
This is the base class for what is about to take over all sorts of
keyboard shortcuts. The initial version barely deals with keybindings.
2020-03-22 11:14:05 -04:00
Benjamin Otte
453e2156d7 bindings: Split out function to invoke an action signal
We want to use that in shortcuts later.
2020-03-22 11:14:05 -04:00
Benjamin Otte
e8dff6b095 shortcutcontroller: Introduce
This is a very barebones controller that currently does nothing but
activate the binding signals. Yay.

And because we have bindings on every widget (Yes, a GtkGrid has a
keybinding - 2 in fact), we need that controller everywhere.
2020-03-22 11:14:05 -04:00