diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-10-23 02:56:07 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-23 02:56:07 +0000 |
commit | 772598996c24d570cb74686c4d888d6f1aa070ad (patch) | |
tree | ea24449b77bc69f9186b1d125acd190bbe27abcc /src/windows/mainwindow.cpp | |
parent | ccb82c1676326107133e63b7822dfd0b87afd0f2 (diff) | |
download | abaddon-portaudio-772598996c24d570cb74686c4d888d6f1aa070ad.tar.gz abaddon-portaudio-772598996c24d570cb74686c4d888d6f1aa070ad.zip |
Add option to hide the menu bar behind alt key (#115)
Diffstat (limited to 'src/windows/mainwindow.cpp')
-rw-r--r-- | src/windows/mainwindow.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/windows/mainwindow.cpp b/src/windows/mainwindow.cpp index 07a7f17..20da46b 100644 --- a/src/windows/mainwindow.cpp +++ b/src/windows/mainwindow.cpp @@ -158,6 +158,10 @@ void MainWindow::UpdateMenus() { OnViewSubmenuPopup(); } +void MainWindow::ToggleMenuVisibility() { + m_menu_bar.set_visible(!m_menu_bar.get_visible()); +} + #ifdef WITH_LIBHANDY void MainWindow::GoBack() { m_chat.GoBack(); @@ -279,7 +283,25 @@ void MainWindow::SetupMenu() { m_menu_bar.append(m_menu_file); m_menu_bar.append(m_menu_discord); m_menu_bar.append(m_menu_view); - m_menu_bar.show_all(); + + if (Abaddon::Get().GetSettings().AltMenu) { + auto set_hide_cb = [this](Gtk::Menu &menu) { + for (auto *child : menu.get_children()) { + auto *item = dynamic_cast<Gtk::MenuItem *>(child); + if (item != nullptr) { + item->signal_activate().connect([this]() { + m_menu_bar.hide(); + }); + } + } + }; + set_hide_cb(m_menu_discord_sub); + set_hide_cb(m_menu_file_sub); + set_hide_cb(m_menu_view_sub); + m_menu_bar.show_all_children(); + } else { + m_menu_bar.show_all(); + } m_menu_discord_connect.signal_activate().connect([this] { m_signal_action_connect.emit(); |