Benjamin Otte
e0602c41d8
gtk-demo: Add a dumb demo for shortcut triggers
2020-03-22 11:14:06 -04:00
Benjamin Otte
c1f0478b5d
shortcutcontroller: Add GtkShortcutScope
...
Allow setting the scope for a controller. The scope determines at what
point in event propagation the shortcuts will be activated.
Local scope is the usual activation, global scope means that the root
widget activates the shortcuts - ie they are activated at the very
start of event propagation (for global capture events) or the very end
(for global bubble events).
Managed scope so far is unimplemented.
This is supposed to be used to replace accelerators and mnemonics.
2020-03-22 11:14:06 -04:00
Benjamin Otte
c116b45df7
shortcuttrigger: Add gtk_shortcut_trigger_to_label()
...
Provide a user-presentable string.
2020-03-22 11:14:06 -04:00
Benjamin Otte
dc27478880
accelgroup: Add gtk_accel_group_print_label()
2020-03-22 11:14:06 -04:00
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