From 48e3fe93b4432535a1c00fb73f7fbf22bc5a7424 Mon Sep 17 00:00:00 2001 From: Jonathan Lin Date: Tue, 5 Mar 2024 21:49:07 -0700 Subject: [PATCH] create-project: Add shortcuts to submit the Create New Project form Added shortcuts for submitting the Create New Project form by Ctrl+Enter anywhere in the form or activating the text fields with Enter/Return. Closes #1906 --- .../create-project/gbp-create-project-widget.c | 14 ++++++++++++++ .../create-project/gbp-create-project-widget.ui | 3 +++ 2 files changed, 17 insertions(+) diff --git a/src/plugins/create-project/gbp-create-project-widget.c b/src/plugins/create-project/gbp-create-project-widget.c index b9d3689f7..fbc1c6f1c 100644 --- a/src/plugins/create-project/gbp-create-project-widget.c +++ b/src/plugins/create-project/gbp-create-project-widget.c @@ -307,6 +307,15 @@ expand_action (GtkWidget *widget, IDE_EXIT; } +static void +text_activated_cb (GbpCreateProjectWidget *self, + gpointer userdata) +{ + g_assert (GBP_IS_CREATE_PROJECT_WIDGET (self)); + + gtk_widget_activate_action (GTK_WIDGET (self), "create-project.expand", NULL); +} + static guint find_license (GbpCreateProjectWidget *self, const char *license) @@ -390,6 +399,7 @@ gbp_create_project_widget_class_init (GbpCreateProjectWidgetClass *klass) gtk_widget_class_bind_template_callback (widget_class, template_changed_cb); gtk_widget_class_bind_template_callback (widget_class, language_changed_cb); + gtk_widget_class_bind_template_callback (widget_class, text_activated_cb); gtk_widget_class_bind_template_callback (widget_class, license_changed_cb); gtk_widget_class_bind_template_callback (widget_class, location_row_changed_cb); gtk_widget_class_bind_template_callback (widget_class, input_notify_cb); @@ -399,6 +409,10 @@ gbp_create_project_widget_class_init (GbpCreateProjectWidgetClass *klass) gtk_widget_class_install_action (widget_class, "create-project.select-folder", NULL, select_folder_action); gtk_widget_class_install_action (widget_class, "create-project.expand", NULL, expand_action); + gtk_widget_class_add_binding_action (widget_class, GDK_KEY_Return, GDK_CONTROL_MASK, "create-project.expand", NULL); + gtk_widget_class_add_binding_action (widget_class, GDK_KEY_ISO_Enter, GDK_CONTROL_MASK, "create-project.expand", NULL); + gtk_widget_class_add_binding_action (widget_class, GDK_KEY_KP_Enter, GDK_CONTROL_MASK, "create-project.expand", NULL); + g_type_ensure (IDE_TYPE_TEMPLATE_INPUT); } diff --git a/src/plugins/create-project/gbp-create-project-widget.ui b/src/plugins/create-project/gbp-create-project-widget.ui index 93a51c143..7e989aee2 100644 --- a/src/plugins/create-project/gbp-create-project-widget.ui +++ b/src/plugins/create-project/gbp-create-project-widget.ui @@ -16,6 +16,7 @@ Project Name + false @@ -45,6 +46,7 @@ Application ID… + @@ -67,6 +69,7 @@ Location + create-project.select-folder -- GitLab