diff --git a/docs/reference/gtk/css-overview.xml b/docs/reference/gtk/css-overview.xml index f53cd00e40..9c942e72d2 100644 --- a/docs/reference/gtk/css-overview.xml +++ b/docs/reference/gtk/css-overview.xml @@ -906,54 +906,5 @@ spinner { - - Key bindings - - - In order to extend key bindings affecting different widgets, - GTK supports the @binding-set rule to parse a set of bind/unbind - directives. Note that in order to take effect, the binding sets - defined in this way must be associated with rule sets by setting - the -gtk-key-bindings property. - - - - The syntax for @binding-set rules is as follows: - - -〈binding set rule〉 = @binding-set 〈binding name〉 { [ [ 〈binding〉 | 〈unbinding〉 ] ; ]* } -〈binding〉 = bind "〈accelerator〉" { 〈signal emission〉* } -〈signal emission〉 = "〈signal name〉" ( [ 〈argument〉 [ , 〈argument〉 ]* ]? } -〈unbinding〉 = unbind "〈accelerator〉" - - - - where 〈accelerator〉 is a string that can be parsed by gtk_accelerator_parse(), - 〈signal name〉 is the name of a keybinding signal of the widget in question, - and the 〈argument〉 list must be according to the signals declaration. - - - - An example for using the @binding-set rule - Left" { "move-cursor" (visual-positions, -3, 0) }; - unbind "End"; -}; - -@binding-set binding-set2 { - bind "Right" { "move-cursor" (visual-positions, 3, 0) }; - bind "KP_space" { "delete-from-cursor" (whitespace, 1) - "insert-at-cursor" (" ") }; -}; - -entry { - -gtk-key-bindings: binding-set1, binding-set2; -} -]]> - - - - diff --git a/docs/reference/gtk/css-properties.xml b/docs/reference/gtk/css-properties.xml index cfca161678..beadcfa880 100644 --- a/docs/reference/gtk/css-properties.xml +++ b/docs/reference/gtk/css-properties.xml @@ -1485,32 +1485,6 @@ We use for syntax productions, and each line is put in a 〈single-animation-play-state〉 || 〈single-animation-fill-mode〉 - - Key binding properties - - - - - NameValueInitialInh.Ani.ReferenceNotes - - - - -gtk-key-bindings - none | 〈binding name〉 [ , 〈binding name〉 ]* - none - - - - - - - -
- - - 〈binding name〉 must have been assigned to a binding set with a @binding-set rule. - - Table-related properties diff --git a/gtk/gtkbindings.c b/gtk/gtkbindings.c index f9b58c702d..eb38394a08 100644 --- a/gtk/gtkbindings.c +++ b/gtk/gtkbindings.c @@ -52,94 +52,6 @@ * must both be true. For example, by calling gtk_widget_set_can_focus() * in the widget’s initialisation function; and by calling * gtk_widget_grab_focus() when the widget is clicked. - * - * # Installing a key binding - * - * A CSS file binding consists of a “binding-set” definition and a match - * statement to apply the binding set to specific widget types. Details - * on the matching mechanism are described under - * [Selectors][gtkcssprovider-selectors] - * in the #GtkCssProvider documentation. Inside the binding set - * definition, key combinations are bound to one or more specific - * signal emissions on the target widget. Key combinations are strings - * consisting of an optional #GdkModifierType name and - * [key names][gdk3-Keyboard-Handling] - * such as those defined in `gdk/gdkkeysyms.h` - * or returned from gdk_keyval_name(), they have to be parsable by - * gtk_accelerator_parse(). Specifications of signal emissions consist - * of a string identifying the signal name, and a list of signal specific - * arguments in parenthesis. - * - * For example for binding Control and the left or right cursor keys - * of a #GtkEntry widget to the #GtkEntry::move-cursor signal (so - * movement occurs in 3-character steps), the following binding can be - * used: - * - * |[ - * @binding-set MoveCursor3 - * { - * bind "Right" { "move-cursor" (visual-positions, 3, 0) }; - * bind "Left" { "move-cursor" (visual-positions, -3, 0) }; - * } - * - * entry - * { - * -gtk-key-bindings: MoveCursor3; - * } - * ]| - * - * # Unbinding existing key bindings - * - * GTK+ already defines a number of useful bindings for the widgets - * it provides. Because custom bindings set up in CSS files take - * precedence over the default bindings shipped with GTK+, overriding - * existing bindings as demonstrated in - * [Installing a key binding][gtk-bindings-install] - * works as expected. The same mechanism can not be used to “unbind” - * existing bindings, however. - * - * |[ - * @binding-set MoveCursor3 - * { - * bind "Right" { }; - * bind "Left" { }; - * } - * - * entry - * { - * -gtk-key-bindings: MoveCursor3; - * } - * ]| - * - * The above example will not have the desired effect of causing - * “Right” and “Left” key presses to be ignored by GTK+. - * Instead, it just causes any existing bindings from the bindings set - * “MoveCursor3” to be deleted, so when “Right” or - * “Left” are pressed, no binding for these keys is found in - * binding set “MoveCursor3”. GTK+ will thus continue to search for - * matching key bindings, and will eventually lookup and find the default - * GTK+ bindings for entries which implement word movement. To keep GTK+ - * from activating its default bindings, the “unbind” keyword can be used - * like this: - * - * |[ - * @binding-set MoveCursor3 - * { - * unbind "Right"; - * unbind "Left"; - * } - * - * entry - * { - * -gtk-key-bindings: MoveCursor3; - * } - * ]| - * - * Now, GTK+ will find a match when looking up “Right” and - * “Left” key presses before it resorts to its default bindings, - * and the match instructs it to abort (“unbind”) the search, so the key - * presses are not consumed by this widget. As usual, further processing - * of the key presses, e.g. by an entry’s parent widget, is now possible. */ /* --- defines --- */