[gnome-builder/wip/chergert/merge-shortcuts] workbench: dispatch key-press-event via shortcut engine
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/chergert/merge-shortcuts] workbench: dispatch key-press-event via shortcut engine
- Date: Tue, 23 May 2017 02:28:24 +0000 (UTC)
commit 23ae633b9e787c5c1a7da8564cdab3a14d269f68
Author: Christian Hergert <chergert redhat com>
Date: Mon May 22 19:28:15 2017 -0700
workbench: dispatch key-press-event via shortcut engine
libide/workbench/ide-workbench-private.h | 3 +++
libide/workbench/ide-workbench.c | 17 +++++++++++++++++
2 files changed, 20 insertions(+), 0 deletions(-)
---
diff --git a/libide/workbench/ide-workbench-private.h b/libide/workbench/ide-workbench-private.h
index f761168..60fc859 100644
--- a/libide/workbench/ide-workbench-private.h
+++ b/libide/workbench/ide-workbench-private.h
@@ -21,6 +21,8 @@
#include <libpeas/peas.h>
+#include "shortcuts/ide-shortcut-controller.h"
+#include "shortcuts/ide-shortcut-manager.h"
#include "workbench/ide-perspective.h"
#include "workbench/ide-perspective-menu-button.h"
#include "workbench/ide-workbench.h"
@@ -37,6 +39,7 @@ struct _IdeWorkbench
guint early_perspectives_removed : 1;
guint did_initial_editor_transition : 1;
+ IdeShortcutController *controller;
IdeContext *context;
GCancellable *cancellable;
PeasExtensionSet *addins;
diff --git a/libide/workbench/ide-workbench.c b/libide/workbench/ide-workbench.c
index dc92319..961cc57 100644
--- a/libide/workbench/ide-workbench.c
+++ b/libide/workbench/ide-workbench.c
@@ -191,6 +191,21 @@ ide_workbench_delete_event (GtkWidget *widget,
return GDK_EVENT_PROPAGATE;
}
+static gboolean
+ide_workbench_key_press_event (GtkWidget *widget,
+ GdkEventKey *event)
+{
+ IdeWorkbench *self = (IdeWorkbench *)widget;
+
+ g_assert (IDE_IS_WORKBENCH (self));
+ g_assert (event != NULL);
+
+ if (ide_shortcut_manager_handle_event (NULL, event, widget))
+ return GDK_EVENT_STOP;
+
+ return GTK_WIDGET_CLASS (ide_workbench_parent_class)->key_press_event (widget, event);
+}
+
static void
ide_workbench_constructed (GObject *object)
{
@@ -300,6 +315,7 @@ ide_workbench_class_init (IdeWorkbenchClass *klass)
object_class->set_property = ide_workbench_set_property;
widget_class->delete_event = ide_workbench_delete_event;
+ widget_class->key_press_event = ide_workbench_key_press_event;
/**
* IdeWorkbench:context:
@@ -421,6 +437,7 @@ ide_workbench_init (IdeWorkbench *self)
gtk_widget_init_template (GTK_WIDGET (self));
+ self->controller = ide_shortcut_controller_new (GTK_WIDGET (self));
self->perspectives = g_list_store_new (IDE_TYPE_PERSPECTIVE);
ide_window_settings_register (GTK_WINDOW (self));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]