[Summary]: add keybindings Cmd-h (hide application) for mac
authorYPozdnyakov <YPozdnyakov@wavesglobal.com>
Sun, 8 Feb 2015 15:18:39 +0000 (17:18 +0200)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 29 Jun 2015 18:16:43 +0000 (14:16 -0400)
Conflicts:
gtk2_ardour/ardour_ui.cc
gtk2_ardour/ardour_ui.h
gtk2_ardour/ardour_ui_ed.cc

gtk2_ardour/ardour_ui.cc
gtk2_ardour/ardour_ui.h
gtk2_ardour/ardour_ui_ed.cc
gtk2_ardour/mnemonic-us.bindings.in
libs/gtkmm2ext/application.cc
libs/gtkmm2ext/gtkapplication_quartz.mm
libs/gtkmm2ext/gtkapplication_win32.c
libs/gtkmm2ext/gtkapplication_x11.c
libs/gtkmm2ext/gtkmm2ext/application.h
libs/gtkmm2ext/gtkmm2ext/gtkapplication.h

index 45265a76f8cc66e6630e6c9664826ae06ccb635d..0d646c8add46e24811c95fec8035b2d42e948632 100644 (file)
@@ -4865,3 +4865,9 @@ ARDOUR_UI::audioengine_became_silent ()
                break;
        }
 }
+       
+void
+ARDOUR_UI::hide_application ()
+{
+    Application::instance ()-> hide ();
+}
index 9a3e7e945b9e7bb98b146da692b10eae0da1620e..b6ec8a87991df3428981cb10e7f99382750f41d1 100644 (file)
@@ -308,6 +308,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
 
         int disconnect_from_engine ();
         int reconnect_to_engine ();
+       void hide_application ();
 
   protected:
        friend class PublicEditor;
index 90fac66052d77aa45126d021162c0ece9ffb43b3..c82c41c0000f432c0fe1aa865b6dff15e659dc9c 100644 (file)
@@ -190,6 +190,7 @@ ARDOUR_UI::install_actions ()
 
        common_actions = ActionGroup::create (X_("Common"));
        ActionManager::register_action (common_actions, X_("Quit"), _("Quit"), (hide_return (sigc::mem_fun(*this, &ARDOUR_UI::finish))));
+       ActionManager::register_action (common_actions, X_("Hide"), _("Hide"), sigc::mem_fun (*this, &ARDOUR_UI::hide_application));
 
        /* windows visibility actions */
 
index 174f26dcf822ac6b93cadf44a34911e2738de985..6819ef92f855b89de128738a71e2993753782a4f 100644 (file)
@@ -139,6 +139,7 @@ This mode provides many different operations on both regions and control points,
 ;; TOP ROW
 
 @sess|Common/Quit|<@PRIMARY@>q|quit
+@sess|Common/Hide|<@PRIMARY@>h|hide
 @movp|Editor/jump-forward-to-mark|w|to next mark
 @movp|Editor/jump-backward-to-mark|q|to previous mark
 
index 54efb4773fbf51bac160378076a96ab7cba2a77a..eb1cea1b5f3402cdd7064197cd8b61b898723a6a 100644 (file)
@@ -58,6 +58,12 @@ Application::ready ()
        gtk_application_ready ();
 }
 
+void
+Application::hide ()
+{
+    gtk_application_hide ();
+}
+
 void
 Application::cleanup ()
 {
index 0a6171eb16a5b892d05c76ce0b51be11f50a38c2..faefd6b6acafc7d28d53b3cae9b4423b96a45f38 100644 (file)
@@ -1221,7 +1221,7 @@ create_apple_menu ()
        [menuitem release];
        [_app_menu addItem: [NSMenuItem separatorItem]];
        menuitem = [[NSMenuItem alloc] initWithTitle:@"Hide"
-                   action:@selector(hide:) keyEquivalent:@""];
+                   action:@selector(hide:) keyEquivalent:@"h"];
        [menuitem setTarget: NSApp];
        [_app_menu addItem: menuitem];
        [menuitem release];
@@ -1476,6 +1476,12 @@ gtk_application_ready ()
         [[NSApplication sharedApplication] activateIgnoringOtherApps : YES];
 }
 
+extern "C" void
+gtk_application_hide ()
+{
+    [NSApp performSelector:@selector(hide:)];
+}
+
 extern "C" void
 gtk_application_cleanup()
 {
index 78d538b334bf020425e35f29beedceffb3ec91ef..7dd9db4a8d3a1284fc78afa364ca9386403399a4 100644 (file)
@@ -47,3 +47,8 @@ void
 gtk_application_ready (void)
 {
 }
+
+void
+gtk_application_hide (void)
+{
+}
index 2b856770733c649c972a95527df308db6f2a76b8..6cf1055c5c414455bc5d053cd1ceb0de04ec3e0e 100644 (file)
@@ -50,3 +50,8 @@ void
 gtk_application_ready (void)
 {
 }
+
+void
+gtk_application_hide (void)
+{
+}
index f0d029d3e7076a0e1f650326e7438efa7df3a79b..e66b6ea2ff5808f4269b170bbb0eed7df116d1ba 100644 (file)
@@ -45,6 +45,7 @@ public:
     ~Application ();
 
     void                     ready ();
+    void                     hide ();
     void                     cleanup ();
     void                     set_menu_bar (Gtk::MenuShell&);
     GtkApplicationMenuGroup* add_app_menu_group ();
index 83594fefbe2abbb3180508a909daea7e39fb2849..4e977de8a94d9c475f70000908afe5e6303f1cba 100644 (file)
@@ -34,6 +34,7 @@ typedef struct _GtkApplicationMenuGroup GtkApplicationMenuGroup;
 
 LIBGTKMM2EXT_API int  gtk_application_init (void);
 LIBGTKMM2EXT_API void gtk_application_ready (void);
+LIBGTKMM2EXT_API void gtk_application_hide (void);
 LIBGTKMM2EXT_API void gtk_application_cleanup (void);
 
 LIBGTKMM2EXT_API void                      gtk_application_set_menu_bar       (GtkMenuShell    *menu_shell);