[gnome-text-editor] helpoverlay: implement help overlay action
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-text-editor] helpoverlay: implement help overlay action
- Date: Wed, 1 Dec 2021 20:48:50 +0000 (UTC)
commit 6bd597f168922ddcca970481578fa109df5d7f7d
Author: Christian Hergert <chergert redhat com>
Date: Wed Dec 1 12:48:27 2021 -0800
helpoverlay: implement help overlay action
This implements the help-overlay action directly so that we can add the
.devel CSS class to the window for headerbar consistency.
Additionally, it means we can delay loading the help-overlay.ui until it
is actually needed which should speed things up just a bit.
src/editor-window.c | 26 ++++++++++++++++++++++++++
src/org.gnome.TextEditor.gresource.xml | 4 +---
2 files changed, 27 insertions(+), 3 deletions(-)
---
diff --git a/src/editor-window.c b/src/editor-window.c
index 20b21ab..fa9e201 100644
--- a/src/editor-window.c
+++ b/src/editor-window.c
@@ -612,6 +612,29 @@ transform_window_title (GBinding *binding,
return TRUE;
}
+static void
+on_show_help_overlay_cb (GtkWidget *widget,
+ const char *action_name,
+ GVariant *param)
+{
+ g_autoptr(GtkBuilder) builder = NULL;
+ GObject *help_overlay;
+
+ g_assert (EDITOR_IS_WINDOW (widget));
+
+ builder = gtk_builder_new_from_resource ("/org/gnome/TextEditor/ui/help-overlay.ui");
+ help_overlay = gtk_builder_get_object (builder, "help_overlay");
+
+ if (GTK_IS_SHORTCUTS_WINDOW (help_overlay))
+ {
+#if DEVELOPMENT_BUILD
+ gtk_widget_add_css_class (GTK_WIDGET (help_overlay), "devel");
+#endif
+ gtk_window_set_transient_for (GTK_WINDOW (help_overlay), GTK_WINDOW (widget));
+ gtk_window_present (GTK_WINDOW (help_overlay));
+ }
+}
+
static void
editor_window_dispose (GObject *object)
{
@@ -728,6 +751,8 @@ editor_window_class_init (EditorWindowClass *klass)
gtk_widget_class_bind_template_callback (widget_class, on_tab_view_setup_menu_cb);
gtk_widget_class_bind_template_callback (widget_class, on_tab_view_create_window_cb);
+ gtk_widget_class_install_action (widget_class, "win.show-help-overlay", NULL, on_show_help_overlay_cb);
+
gtk_widget_class_add_binding_action (widget_class, GDK_KEY_w, GDK_CONTROL_MASK,
"win.close-page-or-window", NULL);
gtk_widget_class_add_binding_action (widget_class, GDK_KEY_o, GDK_CONTROL_MASK, "win.open", NULL);
gtk_widget_class_add_binding_action (widget_class, GDK_KEY_k, GDK_CONTROL_MASK, "win.focus-search", NULL);
@@ -751,6 +776,7 @@ editor_window_class_init (EditorWindowClass *klass)
gtk_widget_class_add_binding_action (widget_class, GDK_KEY_h, GDK_CONTROL_MASK, "page.begin-replace",
NULL);
gtk_widget_class_add_binding_action (widget_class, GDK_KEY_F10, 0, "win.show-primary-menu", NULL);
gtk_widget_class_add_binding_action (widget_class, GDK_KEY_comma, GDK_CONTROL_MASK,
"win.show-preferences", NULL);
+ gtk_widget_class_add_binding_action (widget_class, GDK_KEY_question, GDK_CONTROL_MASK,
"win.show-help-overlay", NULL);
_editor_window_class_actions_init (klass);
diff --git a/src/org.gnome.TextEditor.gresource.xml b/src/org.gnome.TextEditor.gresource.xml
index b866a2e..77590dd 100644
--- a/src/org.gnome.TextEditor.gresource.xml
+++ b/src/org.gnome.TextEditor.gresource.xml
@@ -13,13 +13,11 @@
<file preprocess="xml-stripblanks">editor-sidebar-row.ui</file>
<file preprocess="xml-stripblanks">editor-theme-selector.ui</file>
<file preprocess="xml-stripblanks">editor-window.ui</file>
+ <file preprocess="xml-stripblanks">help-overlay.ui</file>
</gresource>
<gresource prefix="/org/gnome/TextEditor/css">
<file>TextEditor.css</file>
</gresource>
- <gresource prefix="/org/gnome/TextEditor/gtk">
- <file preprocess="xml-stripblanks">help-overlay.ui</file>
- </gresource>
<gresource prefix="/plugins/modelines">
<file alias="language-mappings">modelines/language-mappings</file>
</gresource>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]