diff options
author | Matthias Clasen <mclasen@redhat.com> | 2019-02-21 00:58:30 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2019-02-21 12:22:50 -0500 |
commit | 96fa1fb5c1e92b969d2d2861a40ef0757d77af93 (patch) | |
tree | 31e650c5c02897623d6177d2e6ff1895d0f256e3 | |
parent | a3ae12c0b7761c003790ae338ede3889094fb7b1 (diff) | |
download | gtk+-96fa1fb5c1e92b969d2d2861a40ef0757d77af93.tar.gz |
Drop key themes
These were an abuse of css, and not very successful
as a concept. We are going to replace bindings with
a new way of doing customizable shortcuts.
-rw-r--r-- | gtk/gtk-keys.css.default | 3 | ||||
-rw-r--r-- | gtk/gtk-keys.css.emacs | 122 | ||||
-rw-r--r-- | gtk/gtk-keys.css.mac | 205 | ||||
-rw-r--r-- | gtk/gtkcssprovider.c | 110 | ||||
-rw-r--r-- | gtk/gtksettings.c | 35 | ||||
-rw-r--r-- | gtk/meson.build | 9 |
6 files changed, 0 insertions, 484 deletions
diff --git a/gtk/gtk-keys.css.default b/gtk/gtk-keys.css.default deleted file mode 100644 index 5982804670..0000000000 --- a/gtk/gtk-keys.css.default +++ /dev/null @@ -1,3 +0,0 @@ -/* - * Default keybinding set. Empty because it is implemented inline in the code. - */ diff --git a/gtk/gtk-keys.css.emacs b/gtk/gtk-keys.css.emacs deleted file mode 100644 index 6639e8d1de..0000000000 --- a/gtk/gtk-keys.css.emacs +++ /dev/null @@ -1,122 +0,0 @@ -/* - * GTK - The GIMP Toolkit - * Copyright (C) 2002 Owen Taylor - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see <http://www.gnu.org/licenses/>. - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * A keybinding set implementing Emacs-like keybindings - */ - -/* - * Bindings for GtkTextView and GtkEntry - */ -@binding-set gtk-emacs-text-entry -{ - bind "<ctrl>b" { "move-cursor" (logical-positions, -1, 0) }; - bind "<shift><ctrl>b" { "move-cursor" (logical-positions, -1, 1) }; - bind "<ctrl>f" { "move-cursor" (logical-positions, 1, 0) }; - bind "<shift><ctrl>f" { "move-cursor" (logical-positions, 1, 1) }; - - bind "<alt>b" { "move-cursor" (words, -1, 0) }; - bind "<shift><alt>b" { "move-cursor" (words, -1, 1) }; - bind "<alt>f" { "move-cursor" (words, 1, 0) }; - bind "<shift><alt>f" { "move-cursor" (words, 1, 1) }; - - bind "<ctrl>a" { "move-cursor" (paragraph-ends, -1, 0) }; - bind "<shift><ctrl>a" { "move-cursor" (paragraph-ends, -1, 1) }; - bind "<ctrl>e" { "move-cursor" (paragraph-ends, 1, 0) }; - bind "<shift><ctrl>e" { "move-cursor" (paragraph-ends, 1, 1) }; - - bind "<ctrl>w" { "cut-clipboard" () }; - bind "<ctrl>y" { "paste-clipboard" () }; - - bind "<ctrl>d" { "delete-from-cursor" (chars, 1) }; - bind "<alt>d" { "delete-from-cursor" (word-ends, 1) }; - bind "<ctrl>k" { "delete-from-cursor" (paragraph-ends, 1) }; - bind "<alt>backslash" { "delete-from-cursor" (whitespace, 1) }; - - bind "<alt>space" { "delete-from-cursor" (whitespace, 1) - "insert-at-cursor" (" ") }; - bind "<alt>KP_Space" { "delete-from-cursor" (whitespace, 1) - "insert-at-cursor" (" ") }; - bind "<alt>BackSpace" { "delete-from-cursor" (word-ends, -1) }; - /* - * Some non-Emacs keybindings people are attached to - */ - bind "<ctrl>u" { "move-cursor" (paragraph-ends, -1, 0) - "delete-from-cursor" (paragraph-ends, 1) }; - - bind "<ctrl>h" { "delete-from-cursor" (chars, -1) }; - bind "<ctrl>w" { "delete-from-cursor" (word-ends, -1) }; -} - -/* - * Bindings for GtkTextView - */ -@binding-set gtk-emacs-text-view -{ - bind "<ctrl>p" { "move-cursor" (display-lines, -1, 0) }; - bind "<shift><ctrl>p" { "move-cursor" (display-lines, -1, 1) }; - bind "<ctrl>n" { "move-cursor" (display-lines, 1, 0) }; - bind "<shift><ctrl>n" { "move-cursor" (display-lines, 1, 1) }; - - bind "<ctrl>space" { "set-anchor" () }; - bind "<ctrl>KP_Space" { "set-anchor" () }; -} - -/* - * Bindings for GtkTreeView - */ -@binding-set gtk-emacs-tree-view -{ - bind "<ctrl>s" { "start-interactive-search" () }; - bind "<ctrl>f" { "move-cursor" (logical-positions, 1) }; - bind "<ctrl>b" { "move-cursor" (logical-positions, -1) }; -} - -/* - * Bindings for menus - */ -@binding-set gtk-emacs-menu -{ - bind "<ctrl>n" { "move-current" (next) }; - bind "<ctrl>p" { "move-current" (prev) }; - bind "<ctrl>f" { "move-current" (child) }; - bind "<ctrl>b" { "move-current" (parent) }; -} - -entry { - -gtk-key-bindings: gtk-emacs-text-entry; -} - -textview { - -gtk-key-bindings: gtk-emacs-text-entry, gtk-emacs-text-view; -} - -treeview { - -gtk-key-bindings: gtk-emacs-tree-view; -} - -GtkMenuShell { - -gtk-key-bindings: gtk-emacs-menu; -} diff --git a/gtk/gtk-keys.css.mac b/gtk/gtk-keys.css.mac deleted file mode 100644 index e085356061..0000000000 --- a/gtk/gtk-keys.css.mac +++ /dev/null @@ -1,205 +0,0 @@ -@binding-set gtk-mac-alt-arrows -{ - bind "<alt>Right" { "move-cursor" (words, 1, 0) }; - bind "<alt>KP_Right" { "move-cursor" (words, 1, 0) }; - bind "<alt>Left" { "move-cursor" (words, -1, 0) }; - bind "<alt>KP_Left" { "move-cursor" (words, -1, 0) }; - bind "<shift><alt>Right" { "move-cursor" (words, 1, 1) }; - bind "<shift><alt>KP_Right" { "move-cursor" (words, 1, 1) }; - bind "<shift><alt>Left" { "move-cursor" (words, -1, 1) }; - bind "<shift><alt>KP_Left" { "move-cursor" (words, -1, 1) }; -} - -@binding-set gtk-mac-alt-delete -{ - bind "<alt>Delete" { "delete-from-cursor" (word-ends, 1) }; - bind "<alt>KP_Delete" { "delete-from-cursor" (word-ends, 1) }; - bind "<alt>BackSpace" { "delete-from-cursor" (word-ends, -1) }; -} - -@binding-set gtk-mac-cmd-c -{ - bind "<meta>x" { "cut-clipboard" () }; - bind "<meta>c" { "copy-clipboard" () }; - bind "<meta>v" { "paste-clipboard" () }; - unbind "<ctrl>x"; - unbind "<ctrl>c"; - unbind "<ctrl>v"; -} - -@binding-set gtk-mac-text-view -{ - bind "<shift><meta>a" { "select-all" (0) }; - bind "<meta>a" { "select-all" (1) }; - unbind "<shift><ctrl>a"; - unbind "<ctrl>a"; -} - -@binding-set gtk-mac-label -{ - bind "<meta>a" { - "move-cursor" (paragraph-ends, -1, 0) - "move-cursor" (paragraph-ends, 1, 1) - }; - bind "<shift><meta>a" { "move-cursor" (paragraph-ends, 0, 0) }; - bind "<meta>c" { "copy-clipboard" () }; - unbind "<ctrl>a"; - unbind "<shift><ctrl>a"; - unbind "<ctrl>c"; -} - -@binding-set gtk-mac-entry -{ - bind "<meta>a" { - "move-cursor" (buffer-ends, -1, 0) - "move-cursor" (buffer-ends, 1, 1) - }; - bind "<shift><meta>a" { "move-cursor" (visual-positions, 0, 0) }; - unbind "<ctrl>a"; - unbind "<shift><ctrl>a"; -} - -@binding-set gtk-mac-file-chooser -{ - bind "<meta>v" { "location-popup-on-paste" () }; - unbind "<ctrl>v"; - - bind "<meta><shift>G" { "location-popup" () }; - bind "<meta><shift>H" { "home-folder" () }; - bind "<meta>Up" { "up-folder" () }; -} - -@binding-set gtk-mac-tree-view -{ - bind "<meta>a" { "select-all" () }; - bind "<shift><meta>a" { "unselect-all" () }; - bind "<meta>f" { "start-interactive-search" () }; - bind "<meta>F" { "start-interactive-search" () }; - unbind "<ctrl>a"; - unbind "<shift><ctrl>a"; - unbind "<ctrl>f"; - unbind "<ctrl>F"; -} - -@binding-set gtk-mac-icon-view -{ - bind "<meta>a" { "select-all" () }; - bind "<shift><meta>a" { "unselect-all" () }; - unbind "<ctrl>a"; - unbind "<shift><ctrl>a"; -} - -@binding-set gtk-mac-alt-arrows -{ - bind "<alt>Right" { "move-cursor" (words, 1, 0) }; - bind "<alt>KP_Right" { "move-cursor" (words, 1, 0) }; - bind "<alt>Left" { "move-cursor" (words, -1, 0) }; - bind "<alt>KP_Left" { "move-cursor" (words, -1, 0) }; - bind "<shift><alt>Right" { "move-cursor" (words, 1, 1) }; - bind "<shift><alt>KP_Right" { "move-cursor" (words, 1, 1) }; - bind "<shift><alt>Left" { "move-cursor" (words, -1, 1) }; - bind "<shift><alt>KP_Left" { "move-cursor" (words, -1, 1) }; -} - -@binding-set gtk-mac-alt-delete -{ - bind "<alt>Delete" { "delete-from-cursor" (word-ends, 1) }; - bind "<alt>KP_Delete" { "delete-from-cursor" (word-ends, 1) }; - bind "<alt>BackSpace" { "delete-from-cursor" (word-ends, -1) }; -} - -@binding-set gtk-mac-cmd-c -{ - bind "<meta>x" { "cut-clipboard" () }; - bind "<meta>c" { "copy-clipboard" () }; - bind "<meta>v" { "paste-clipboard" () }; - unbind "<ctrl>x"; - unbind "<ctrl>c"; - unbind "<ctrl>v"; -} - -@binding-set gtk-mac-text-view -{ - bind "<shift><meta>a" { "select-all" (0) }; - bind "<meta>a" { "select-all" (1) }; - unbind "<shift><ctrl>a"; - unbind "<ctrl>a"; -} - -@binding-set gtk-mac-label -{ - bind "<meta>a" { - "move-cursor" (paragraph-ends, -1, 0) - "move-cursor" (paragraph-ends, 1, 1) - }; - bind "<shift><meta>a" { "move-cursor" (paragraph-ends, 0, 0) }; - bind "<meta>c" { "copy-clipboard" () }; - unbind "<ctrl>a"; - unbind "<shift><ctrl>a"; - unbind "<ctrl>c"; -} - -@binding-set gtk-mac-entry -{ - bind "<meta>a" { - "move-cursor" (buffer-ends, -1, 0) - "move-cursor" (buffer-ends, 1, 1) - }; - bind "<shift><meta>a" { "move-cursor" (visual-positions, 0, 0) }; - unbind "<ctrl>a"; - unbind "<shift><ctrl>a"; -} - -@binding-set gtk-mac-file-chooser -{ - bind "<meta>v" { "location-popup-on-paste" () }; - unbind "<ctrl>v"; - - bind "<meta><shift>G" { "location-popup" () }; - bind "<meta><shift>H" { "home-folder" () }; - bind "<meta>Up" { "up-folder" () }; -} - -@binding-set gtk-mac-tree-view -{ - bind "<meta>a" { "select-all" () }; - bind "<shift><meta>a" { "unselect-all" () }; - bind "<meta>f" { "start-interactive-search" () }; - bind "<meta>F" { "start-interactive-search" () }; - unbind "<ctrl>a"; - unbind "<shift><ctrl>a"; - unbind "<ctrl>f"; - unbind "<ctrl>F"; -} - -@binding-set gtk-mac-icon-view -{ - bind "<meta>a" { "select-all" () }; - bind "<shift><meta>a" { "unselect-all" () }; - unbind "<ctrl>a"; - unbind "<shift><ctrl>a"; -} - -iconview { - -gtk-key-bindings: gtk-mac-icon-view; -} - -textview { - -gtk-key-bindings: gtk-mac-alt-arrows, gtk-mac-alt-delete, gtk-mac-cmd-c, gtk-mac-text-view; -} - -entry { - -gtk-key-bindings: gtk-mac-alt-arrows, gtk-mac-alt-delete, gtk-mac-cmd-c, gtk-mac-entry; -} - -label { - -gtk-key-bindings: gtk-mac-alt-arrows, gtk-mac-label; -} - -GtkFileChooserWidget { - -gtk-key-bindings: gtk-mac-file-chooser; -} - -treeview { - -gtk-key-bindings: gtk-mac-tree-view; -} diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c index 94b13dd053..42d792ca50 100644 --- a/gtk/gtkcssprovider.c +++ b/gtk/gtkcssprovider.c @@ -899,114 +899,6 @@ parse_color_definition (GtkCssScanner *scanner) } static gboolean -parse_binding_set (GtkCssScanner *scanner) -{ - GtkBindingSet *binding_set; - char *name; - - gtk_css_scanner_push_section (scanner, GTK_CSS_SECTION_BINDING_SET); - - if (!_gtk_css_parser_try (scanner->parser, "@binding-set", TRUE)) - { - gtk_css_scanner_pop_section (scanner, GTK_CSS_SECTION_BINDING_SET); - return FALSE; - } - - name = _gtk_css_parser_try_ident (scanner->parser, TRUE); - if (name == NULL) - { - gtk_css_provider_error_literal (scanner->provider, - scanner, - GTK_CSS_PROVIDER_ERROR, - GTK_CSS_PROVIDER_ERROR_SYNTAX, - "Expected name for binding set"); - _gtk_css_parser_resync (scanner->parser, TRUE, 0); - goto skip_semicolon; - } - - binding_set = gtk_binding_set_find (name); - if (!binding_set) - { - binding_set = gtk_binding_set_new (name); - binding_set->parsed = TRUE; - } - g_free (name); - - if (!_gtk_css_parser_try (scanner->parser, "{", TRUE)) - { - gtk_css_provider_error_literal (scanner->provider, - scanner, - GTK_CSS_PROVIDER_ERROR, - GTK_CSS_PROVIDER_ERROR_SYNTAX, - "Expected '{' for binding set"); - _gtk_css_parser_resync (scanner->parser, TRUE, 0); - goto skip_semicolon; - } - - while (!_gtk_css_parser_is_eof (scanner->parser) && - !_gtk_css_parser_begins_with (scanner->parser, '}')) - { - name = _gtk_css_parser_read_value (scanner->parser); - if (name == NULL) - { - _gtk_css_parser_resync (scanner->parser, TRUE, '}'); - continue; - } - - if (gtk_binding_entry_add_signal_from_string (binding_set, name) != G_TOKEN_NONE) - { - gtk_css_provider_error_literal (scanner->provider, - scanner, - GTK_CSS_PROVIDER_ERROR, - GTK_CSS_PROVIDER_ERROR_SYNTAX, - "Failed to parse binding set."); - } - - g_free (name); - - if (!_gtk_css_parser_try (scanner->parser, ";", TRUE)) - { - if (!_gtk_css_parser_begins_with (scanner->parser, '}') && - !_gtk_css_parser_is_eof (scanner->parser)) - { - gtk_css_provider_error_literal (scanner->provider, - scanner, - GTK_CSS_PROVIDER_ERROR, - GTK_CSS_PROVIDER_ERROR_SYNTAX, - "Expected semicolon"); - _gtk_css_parser_resync (scanner->parser, TRUE, '}'); - } - } - } - - if (!_gtk_css_parser_try (scanner->parser, "}", TRUE)) - { - gtk_css_provider_error_literal (scanner->provider, - scanner, - GTK_CSS_PROVIDER_ERROR, - GTK_CSS_PROVIDER_ERROR_SYNTAX, - "expected '}' after declarations"); - if (!_gtk_css_parser_is_eof (scanner->parser)) - _gtk_css_parser_resync (scanner->parser, FALSE, 0); - } - -skip_semicolon: - if (_gtk_css_parser_begins_with (scanner->parser, ';')) - { - gtk_css_provider_error_literal (scanner->provider, - scanner, - GTK_CSS_PROVIDER_ERROR, - GTK_CSS_PROVIDER_ERROR_DEPRECATED, - "Nonstandard semicolon at end of binding set"); - _gtk_css_parser_try (scanner->parser, ";", TRUE); - } - - gtk_css_scanner_pop_section (scanner, GTK_CSS_SECTION_BINDING_SET); - - return TRUE; -} - -static gboolean parse_keyframes (GtkCssScanner *scanner) { GtkCssProviderPrivate *priv = gtk_css_provider_get_instance_private (scanner->provider); @@ -1079,8 +971,6 @@ parse_at_keyword (GtkCssScanner *scanner) return; if (parse_color_definition (scanner)) return; - if (parse_binding_set (scanner)) - return; if (parse_keyframes (scanner)) return; diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c index 9c9988e22d..0b70835bbf 100644 --- a/gtk/gtksettings.c +++ b/gtk/gtksettings.c @@ -120,7 +120,6 @@ struct _GtkSettingsPrivate GdkDisplay *display; GSList *style_cascades; GtkCssProvider *theme_provider; - GtkCssProvider *key_theme_provider; gint font_size; gboolean font_size_absolute; gchar *font_family; @@ -149,7 +148,6 @@ enum { PROP_SPLIT_CURSOR, PROP_THEME_NAME, PROP_ICON_THEME_NAME, - PROP_KEY_THEME_NAME, PROP_DND_DRAG_THRESHOLD, PROP_FONT_NAME, PROP_XFT_ANTIALIAS, @@ -215,7 +213,6 @@ static void settings_update_font_options (GtkSettings *setting static void settings_update_font_values (GtkSettings *settings); static gboolean settings_update_fontconfig (GtkSettings *settings); static void settings_update_theme (GtkSettings *settings); -static void settings_update_key_theme (GtkSettings *settings); static gboolean settings_update_xsetting (GtkSettings *settings, GParamSpec *pspec, gboolean force); @@ -420,15 +417,6 @@ gtk_settings_class_init (GtkSettingsClass *class) g_assert (result == PROP_ICON_THEME_NAME); result = settings_install_property_parser (class, - g_param_spec_string ("gtk-key-theme-name", - P_("Key Theme Name"), - P_("Name of key theme to load"), - NULL, - GTK_PARAM_READWRITE), - NULL); - g_assert (result == PROP_KEY_THEME_NAME); - - result = settings_install_property_parser (class, g_param_spec_int ("gtk-dnd-drag-threshold", P_("Drag threshold"), P_("Number of pixels the cursor can move before dragging"), @@ -1040,7 +1028,6 @@ gtk_settings_finalize (GObject *object) g_datalist_clear (&priv->queued_settings); settings_update_provider (priv->display, &priv->theme_provider, NULL); - settings_update_provider (priv->display, &priv->key_theme_provider, NULL); g_slist_free_full (priv->style_cascades, g_object_unref); if (priv->font_options) @@ -1119,7 +1106,6 @@ settings_init_style (GtkSettings *settings) GTK_STYLE_PROVIDER_PRIORITY_SETTINGS); settings_update_theme (settings); - settings_update_key_theme (settings); } static void @@ -1300,9 +1286,6 @@ gtk_settings_notify (GObject *object, settings_invalidate_style (settings); gtk_style_context_reset_widgets (priv->display); break; - case PROP_KEY_THEME_NAME: - settings_update_key_theme (settings); - break; case PROP_THEME_NAME: case PROP_APPLICATION_PREFER_DARK_THEME: settings_update_theme (settings); @@ -2248,24 +2231,6 @@ settings_update_theme (GtkSettings *settings) g_free (theme_variant); } -static void -settings_update_key_theme (GtkSettings *settings) -{ - GtkSettingsPrivate *priv = settings->priv; - GtkCssProvider *provider = NULL; - gchar *key_theme_name; - - g_object_get (settings, - "gtk-key-theme-name", &key_theme_name, - NULL); - - if (key_theme_name && *key_theme_name) - provider = gtk_css_provider_get_named (key_theme_name, "keys"); - - settings_update_provider (priv->display, &priv->key_theme_provider, provider); - g_free (key_theme_name); -} - const cairo_font_options_t * gtk_settings_get_font_options (GtkSettings *settings) { diff --git a/gtk/meson.build b/gtk/meson.build index 2e6c813b4a..1d9a38d923 100644 --- a/gtk/meson.build +++ b/gtk/meson.build @@ -1099,13 +1099,4 @@ libgtk_dep = declare_dependency(sources: gtk_dep_sources, link_with: libgtk, link_args: common_ldflags) -if quartz_enabled - # HACK: install_data() doesn't allow installing under a different name (#1487) - # FIXME: or maybe just rename it to gtk-keys.css in the src tree? - configure_file(input: 'gtk-keys.css.mac', - output: 'gtk-keys.css', - configuration: configuration_data(), - install_dir: join_paths(get_option('datadir'), 'themes/Mac/gtk-4.0')) -endif - subdir('tools') |