diff --git a/docs/reference/gtk/images/capture-bubble.png b/docs/reference/gtk/images/capture-bubble.png new file mode 100644 index 0000000000..b18d9ad9d2 Binary files /dev/null and b/docs/reference/gtk/images/capture-bubble.png differ diff --git a/docs/reference/gtk/input-handling.xml b/docs/reference/gtk/input-handling.xml index 4a313b08ae..8748148a45 100644 --- a/docs/reference/gtk/input-handling.xml +++ b/docs/reference/gtk/input-handling.xml @@ -61,16 +61,9 @@ GDK translates these raw windowing system events into #GdkEvents. - Typical input events are: - - button clicks - pointer motion - key presses - focus changes - touch events - - These are all represented as #GdkEvents, but you can differentiate - between different events by looking at their type, using + Typical input events are button clicks, pointer motion, key presses + or touch events. These are all represented as #GdkEvents, but you can + differentiate between different events by looking at their type, using gdk_event_get_event_type(). @@ -103,34 +96,7 @@ location change from one widget to another. - Then the event is pushed onto a stack so you can query the currently - handled event with gtk_get_current_event(). - - - The event is sent to a widget. If a grab is active all events for widgets - that are not in the contained in the grab widget are sent to the latter - with a few exceptions: - - - Deletion and destruction events are still sent to the event widget for - obvious reasons. - - - Events which directly relate to the visual representation of the event - widget. - - - Leave events are delivered to the event widget if there was an enter - event delivered to it before without the paired leave event. - - - Drag events are not redirected because it is unclear what the semantics - of that would be. - - - - - After finishing the delivery the event is popped from the event stack. + The event is sent to widgets. @@ -139,6 +105,14 @@ (see #GtkPropagationPhase) towards a target widget. + + + + + + + + For key events, the top-level window gets a first shot at activating mnemonics and accelerators. If that does not consume the events, @@ -224,6 +198,14 @@ GTK has traditionally supported different kinds of shortcuts: + + Accelerators + + Accelerators are any other shortcuts that can be activated regardless + of where the focus is, and typically trigger global actions, such as + Ctrl-Q to quit an application. + + Mnmemonics @@ -242,16 +224,12 @@ triggered when the widget has focus. - - Accelerators - - Accelerators are any other shortcuts that can be activated regardless - of where the focus is, and typically trigger global actions, such as - Ctrl-Q to quit an application. - - + + GTK traditionally handles accelerators and mnemonics in a global scope, + during the capture phase, and key bindings locally, during the target phase. + Under the hood, all shortcuts are represented as instances of #GtkShortcut, and they are managed by #GtkShortcutController. diff --git a/docs/reference/gtk/meson.build b/docs/reference/gtk/meson.build index 8b66214e20..d279fed315 100644 --- a/docs/reference/gtk/meson.build +++ b/docs/reference/gtk/meson.build @@ -214,6 +214,7 @@ images = [ 'images/box-packing.png', 'images/builder-shortcuts.png', 'images/button.png', + 'images/capture-bubble.png', 'images/check-button.png', 'images/checks.png', 'images/clocks-shortcuts.png',