From f96a5c2a954c3e0c80b3461c5d70a08b15ed6cb2 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 6 May 2013 10:55:40 -0400 Subject: [PATCH] make ArdourDialog and ArdourWindow call ::relay_key_press() which fixes the "not-toggleable-on-first-show" and other issues --- gtk2_ardour/ardour_dialog.cc | 7 +++++++ gtk2_ardour/ardour_dialog.h | 3 ++- gtk2_ardour/ardour_window.cc | 6 ++++++ gtk2_ardour/ardour_window.h | 1 + 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/gtk2_ardour/ardour_dialog.cc b/gtk2_ardour/ardour_dialog.cc index 07d5d47d6b..8231289c5a 100644 --- a/gtk2_ardour/ardour_dialog.cc +++ b/gtk2_ardour/ardour_dialog.cc @@ -26,6 +26,7 @@ #include "ardour_ui.h" #include "keyboard.h" #include "splash.h" +#include "utils.h" using namespace std; using namespace Gtk; @@ -58,6 +59,12 @@ ArdourDialog::~ArdourDialog () } } +bool +ArdourDialog::on_key_press_event (GdkEventKey* ev) +{ + return relay_key_press (ev, this); +} + bool ArdourDialog::on_enter_notify_event (GdkEventCrossing *ev) { diff --git a/gtk2_ardour/ardour_dialog.h b/gtk2_ardour/ardour_dialog.h index 1e01c8f625..40472f20c0 100644 --- a/gtk2_ardour/ardour_dialog.h +++ b/gtk2_ardour/ardour_dialog.h @@ -40,7 +40,8 @@ class ArdourDialog : public Gtk::Dialog, public ARDOUR::SessionHandlePtr bool on_enter_notify_event (GdkEventCrossing*); bool on_leave_notify_event (GdkEventCrossing*); - bool on_delete_event (GdkEventAny *); + bool on_delete_event (GdkEventAny*); + bool on_key_press_event (GdkEventKey*); void on_unmap (); void on_show (); diff --git a/gtk2_ardour/ardour_window.cc b/gtk2_ardour/ardour_window.cc index 705fdaa1f9..490fabb19b 100644 --- a/gtk2_ardour/ardour_window.cc +++ b/gtk2_ardour/ardour_window.cc @@ -53,6 +53,12 @@ ArdourWindow::~ArdourWindow () { } +bool +ArdourWindow::on_key_press_event (GdkEventKey* ev) +{ + return relay_key_press (ev, this); +} + bool ArdourWindow::on_enter_notify_event (GdkEventCrossing *ev) { diff --git a/gtk2_ardour/ardour_window.h b/gtk2_ardour/ardour_window.h index 68bf65d353..e113f724c8 100644 --- a/gtk2_ardour/ardour_window.h +++ b/gtk2_ardour/ardour_window.h @@ -43,6 +43,7 @@ class ArdourWindow : public Gtk::Window, public ARDOUR::SessionHandlePtr, public bool on_enter_notify_event (GdkEventCrossing*); bool on_leave_notify_event (GdkEventCrossing*); bool on_delete_event (GdkEventAny *); + bool on_key_press_event (GdkEventKey*); void on_unmap (); private: