summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2019-02-21 00:58:30 -0500
committerMatthias Clasen <mclasen@redhat.com>2019-02-21 12:22:50 -0500
commit96fa1fb5c1e92b969d2d2861a40ef0757d77af93 (patch)
tree31e650c5c02897623d6177d2e6ff1895d0f256e3
parenta3ae12c0b7761c003790ae338ede3889094fb7b1 (diff)
downloadgtk+-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.default3
-rw-r--r--gtk/gtk-keys.css.emacs122
-rw-r--r--gtk/gtk-keys.css.mac205
-rw-r--r--gtk/gtkcssprovider.c110
-rw-r--r--gtk/gtksettings.c35
-rw-r--r--gtk/meson.build9
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')