kiran-menu/0001-feature-menu-Hide-UI-after-click-on-the-power-option.patch
huangjiawen 466d69d6a7 feature(menu): Hide UI after click on the power option
Signed-off-by: huangjiawen <huangjiawen@kylinsec.com.cn>
2023-04-20 18:16:26 +08:00

126 lines
3.3 KiB
Diff

From 6b28669741d926375bf9b9b129416182b088042d Mon Sep 17 00:00:00 2001
From: huangjiawen <huangjiawen@kylinsec.com.cn>
Date: Thu, 20 Apr 2023 18:02:00 +0800
Subject: [PATCH] feature(menu): Hide UI after click on the power option
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 在点击电源选项按钮后,隐藏电源选项模态窗口
Signed-off-by: huangjiawen <huangjiawen@kylinsec.com.cn>
---
src/menu/menu-power-dialog.cpp | 21 +++++++++++++++++++++
src/menu/menu-power-dialog.h | 4 ++++
2 files changed, 25 insertions(+)
diff --git a/src/menu/menu-power-dialog.cpp b/src/menu/menu-power-dialog.cpp
index 1d75cf1..f13594d 100644
--- a/src/menu/menu-power-dialog.cpp
+++ b/src/menu/menu-power-dialog.cpp
@@ -64,6 +64,8 @@ MenuPowerDialog::MenuPowerDialog()
add_power_button(dialog_grid);
+ this->signal_dialog_hide().connect(sigc::mem_fun(*this, &Gtk::Widget::hide));
+
get_style_context()->add_class("power-menu-dialog");
}
@@ -140,10 +142,17 @@ void MenuPowerDialog::add_button(const char *button_icon_name,
dialog_grid->attach(*power_label, space, 1, 1, 1);
}
+sigc::signal<void> MenuPowerDialog::signal_dialog_hide()
+{
+ return signal_dialog_hide_;
+}
+
void MenuPowerDialog::do_reboot()
{
auto power = KiranPower::get_default();
+ signal_dialog_hide().emit();
+
power->reboot();
return;
@@ -153,6 +162,8 @@ void MenuPowerDialog::do_logout()
{
auto power = KiranPower::get_default();
+ signal_dialog_hide().emit();
+
power->logout(LOGOUT_MODE_NOW);
return;
@@ -162,6 +173,8 @@ void MenuPowerDialog::do_shutdown()
{
auto power = KiranPower::get_default();
+ signal_dialog_hide().emit();
+
power->shutdown();
return;
@@ -171,6 +184,8 @@ void MenuPowerDialog::do_hibernate()
{
auto power = KiranPower::get_default();
+ signal_dialog_hide().emit();
+
power->hibernate();
return;
@@ -179,6 +194,8 @@ void MenuPowerDialog::do_suspend()
{
auto power = KiranPower::get_default();
+ signal_dialog_hide().emit();
+
power->suspend();
return;
@@ -188,6 +205,8 @@ void MenuPowerDialog::do_switch_user()
{
auto power = KiranPower::get_default();
+ signal_dialog_hide().emit();
+
if (power->get_graphical_ntvs() >= power->get_ntvs_total())
{
KLOG_DEBUG("Total ntvs: %d, graphical ntvs: %d.", power->get_ntvs_total(), power->get_graphical_ntvs());
@@ -210,6 +229,8 @@ void MenuPowerDialog::do_lock_screen()
{
auto power = KiranPower::get_default();
+ signal_dialog_hide().emit();
+
power->lock_screen();
return;
diff --git a/src/menu/menu-power-dialog.h b/src/menu/menu-power-dialog.h
index 471ab42..724bbf3 100644
--- a/src/menu/menu-power-dialog.h
+++ b/src/menu/menu-power-dialog.h
@@ -32,12 +32,16 @@ public:
void do_switch_user();
void do_lock_screen();
+ sigc::signal<void> signal_dialog_hide();
+
void add_power_button(Gtk::Grid *dialog_grid);
void add_button(const char *button_icon_name,
const char *button_name,
Gtk::Grid *dialog_grid,
int space,
void (MenuPowerDialog::*power_func)());
+protected:
+ sigc::signal<void> signal_dialog_hide_;
};
#endif // MENU_POWER_DIALOG_H
--
2.33.0