Merge branch 'master' into openEuler-22.03-LTS-Next

Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
This commit is contained in:
tangjie02 2022-10-14 10:18:38 +08:00
commit 0550a9e61b
17 changed files with 1105 additions and 91 deletions

View File

@ -0,0 +1,170 @@
From d6faccac23ee5dd61fafded0269d8a12752be0e3 Mon Sep 17 00:00:00 2001
From: tangjie02 <tangjie02@kylinsec.com.cn>
Date: Thu, 13 Oct 2022 20:30:02 +0800
Subject: [PATCH] feature(menu): Add flat class for button to keep consistent
with the color of color block.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 给按钮添加flat样式这样在普通状态下背景是透明的可以跟色块颜色保持一致。
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
---
data/menu.ui.xml | 10 +++++-----
src/menu/menu-app-item.cpp | 2 ++
src/menu/menu-app-launcher-button.cpp | 1 +
src/menu/menu-applet-window.cpp | 6 ++++++
src/menu/menu-applet-window.h | 4 +++-
src/menu/menu-category-item.cpp | 1 +
src/menu/menu-new-apps-container.cpp | 4 +++-
src/menu/menu-power-button.cpp | 1 +
8 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/data/menu.ui.xml b/data/menu.ui.xml
index 90193b3..ae8fb50 100644
--- a/data/menu.ui.xml
+++ b/data/menu.ui.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.36.0 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkWindow" id="menu-window">
@@ -10,9 +10,6 @@
<property name="default_height">682</property>
<property name="skip_taskbar_hint">True</property>
<property name="skip_pager_hint">True</property>
- <child>
- <placeholder/>
- </child>
<child>
<object class="GtkBox" id="menu-container">
<property name="visible">True</property>
@@ -56,7 +53,7 @@
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<child>
- <object class="GtkStackSwitcher">
+ <object class="GtkStackSwitcher" id="menu-view-stack-switcher">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
@@ -358,5 +355,8 @@
</child>
</object>
</child>
+ <child type="titlebar">
+ <placeholder/>
+ </child>
</object>
</interface>
diff --git a/src/menu/menu-app-item.cpp b/src/menu/menu-app-item.cpp
index fa672c2..e0959a5 100644
--- a/src/menu/menu-app-item.cpp
+++ b/src/menu/menu-app-item.cpp
@@ -30,6 +30,8 @@ MenuAppItem::MenuAppItem(const std::shared_ptr<Kiran::App> &app_, int _icon_size
auto context = get_style_context();
context->add_class("menu-app-item");
+ // 添加flat样式保证在普通状态下按钮时透明背景
+ context->add_class("flat");
set_text(app_->get_locale_name());
diff --git a/src/menu/menu-app-launcher-button.cpp b/src/menu/menu-app-launcher-button.cpp
index 2bb1419..8453484 100644
--- a/src/menu/menu-app-launcher-button.cpp
+++ b/src/menu/menu-app-launcher-button.cpp
@@ -28,6 +28,7 @@ MenuAppLauncherButton::MenuAppLauncherButton(const std::string &icon_name, const
Gio::APP_INFO_CREATE_SUPPORTS_STARTUP_NOTIFICATION);
context->add_class("menu-app-launcher");
+ context->add_class("flat");
}
void MenuAppLauncherButton::on_clicked()
diff --git a/src/menu/menu-applet-window.cpp b/src/menu/menu-applet-window.cpp
index eea61c9..7cc9750 100644
--- a/src/menu/menu-applet-window.cpp
+++ b/src/menu/menu-applet-window.cpp
@@ -214,6 +214,7 @@ void MenuAppletWindow::init_ui()
builder = Gtk::Builder::create_from_resource("/kiran-menu/ui/menu");
builder->get_widget<Gtk::Box>("menu-container", main_box);
builder->get_widget<Gtk::Box>("menu-sider-container", sider_box);
+ builder->get_widget<Gtk::StackSwitcher>("menu-view-stack-switcher", menu_view_stack_switcher);
builder->get_widget<Gtk::Stack>("menu-view-stack", menu_view_stack);
builder->get_widget<Gtk::Stack>("apps-list-stack", apps_list_stack);
@@ -234,6 +235,11 @@ void MenuAppletWindow::init_ui()
sider_box->set_name("menu-left-container");
menu_view_stack->set_name("menu-mid-container");
+ for (const auto &child : menu_view_stack_switcher->get_children())
+ {
+ child->get_style_context()->add_class("flat");
+ }
+
/* 最近访问文档列表 */
auto widget = Gtk::make_managed<RecentFilesWidget>();
recent_files_view->add(*widget);
diff --git a/src/menu/menu-applet-window.h b/src/menu/menu-applet-window.h
index 0eae7d7..c9e9ad6 100644
--- a/src/menu/menu-applet-window.h
+++ b/src/menu/menu-applet-window.h
@@ -176,7 +176,9 @@ private:
Glib::RefPtr<Gtk::Builder> builder;
Gtk::SearchEntry *search_entry;
- Gtk::Stack *menu_view_stack, *apps_list_stack;
+ Gtk::StackSwitcher *menu_view_stack_switcher;
+ Gtk::Stack *menu_view_stack;
+ Gtk::Stack *apps_list_stack;
Gtk::Box *all_apps_page; /* */
Gtk::Box *compact_favorites_view; /* 紧凑模式下的收藏夹页面 */
diff --git a/src/menu/menu-category-item.cpp b/src/menu/menu-category-item.cpp
index 9c48b95..e062660 100644
--- a/src/menu/menu-category-item.cpp
+++ b/src/menu/menu-category-item.cpp
@@ -33,6 +33,7 @@ MenuCategoryItem::MenuCategoryItem(const std::string &name,
auto context = get_style_context();
context->add_class("menu-category-item");
+ context->add_class("flat");
set_clickable(clickable);
category_name = name;
}
diff --git a/src/menu/menu-new-apps-container.cpp b/src/menu/menu-new-apps-container.cpp
index bd12eed..a58e32e 100644
--- a/src/menu/menu-new-apps-container.cpp
+++ b/src/menu/menu-new-apps-container.cpp
@@ -90,9 +90,11 @@ Gtk::ToggleButton *MenuNewAppsContainer::create_expand_button()
button->set_image_position(Gtk::POS_RIGHT);
button->set_alignment(0.0, 0.5);
button->get_style_context()->add_class("menu-expand-button");
+ button->get_style_context()->add_class("flat");
button->signal_toggled().connect(
- [this]() -> void {
+ [this]() -> void
+ {
auto image = dynamic_cast<Gtk::Image *>(expand_button->get_image());
if (expand_button->get_active())
diff --git a/src/menu/menu-power-button.cpp b/src/menu/menu-power-button.cpp
index 1a5a224..0237153 100644
--- a/src/menu/menu-power-button.cpp
+++ b/src/menu/menu-power-button.cpp
@@ -27,6 +27,7 @@ MenuPowerButton::MenuPowerButton() : menu(nullptr)
set_focus_on_click(false);
context->add_class("menu-app-launcher");
+ context->add_class("flat");
}
MenuPowerButton::~MenuPowerButton()
--
2.33.0

View File

@ -0,0 +1,204 @@
From ee1e902961b07f16b22916338bc37b98ba9d9060 Mon Sep 17 00:00:00 2001
From: tangjie02 <tangjie02@kylinsec.com.cn>
Date: Tue, 9 Aug 2022 09:41:35 +0800
Subject: [PATCH 1/2] fix(connect): Fix some possible crash problems caused by
sigc::slot.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复一些可能存在的崩溃问题,这些崩溃问题是因为槽函数绑定的对象已经被释放导致
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
---
src/menu/menu-app-item.cpp | 52 ++++++++++++++++++++------------
src/menu/menu-app-item.h | 5 +++
src/menu/menu-applet-window.cpp | 3 +-
src/menu/menu-apps-container.cpp | 12 ++------
src/menu/menu-apps-container.h | 7 -----
5 files changed, 40 insertions(+), 39 deletions(-)
diff --git a/src/menu/menu-app-item.cpp b/src/menu/menu-app-item.cpp
index fba3994..fa672c2 100644
--- a/src/menu/menu-app-item.cpp
+++ b/src/menu/menu-app-item.cpp
@@ -68,11 +68,7 @@ void MenuAppItem::init_drag_and_drop()
targets.push_back(target);
drag_source_set(targets, Gdk::BUTTON1_MASK, Gdk::ACTION_COPY);
- signal_drag_failed().connect(
- [this](const Glib::RefPtr<Gdk::DragContext> &context, Gtk::DragResult result) -> bool {
- KLOG_DEBUG("drag failed, result %d\n", (int)result);
- return true;
- });
+ signal_drag_failed().connect(sigc::mem_fun(*this, &MenuAppItem::on_drag_failed));
}
bool MenuAppItem::on_button_press_event(GdkEventButton *button_event)
@@ -131,14 +127,22 @@ void MenuAppItem::on_drag_end(const Glib::RefPtr<Gdk::DragContext> &context)
// 如果拖拽被取消拖拽的ungrab操作可能在drag-end信号之后所以这里的grab操作放入到后面的事件循环处理。
if (this->idle_drag_connection_.empty())
{
- this->idle_drag_connection_ = Glib::signal_idle().connect([this]() -> bool {
- Gtk::Container *toplevel = this->get_toplevel();
- KiranHelper::grab_input(*toplevel);
- return false;
- });
+ this->idle_drag_connection_ = Glib::signal_idle().connect(
+ [this]() -> bool
+ {
+ Gtk::Container *toplevel = this->get_toplevel();
+ KiranHelper::grab_input(*toplevel);
+ return false;
+ });
}
}
+bool MenuAppItem::on_drag_failed(const Glib::RefPtr<Gdk::DragContext> &context, Gtk::DragResult result)
+{
+ KLOG_DEBUG("drag failed, result %d\n", (int)result);
+ return true;
+}
+
bool MenuAppItem::on_key_press_event(GdkEventKey *key_event)
{
if (key_event->keyval == GDK_KEY_Menu)
@@ -181,20 +185,12 @@ void MenuAppItem::create_context_menu()
if (!is_in_favorite())
{
item = Gtk::make_managed<Gtk::MenuItem>(_("Add to favorites"));
- item->signal_activate().connect(
- [this]() -> void {
- if (!app.expired())
- Kiran::MenuSkeleton::get_instance()->add_favorite_app(app.lock()->get_desktop_id());
- });
+ item->signal_activate().connect(sigc::mem_fun(*this, &MenuAppItem::on_add_favorite_app));
}
else
{
item = Gtk::make_managed<Gtk::MenuItem>(_("Remove from favorites"));
- item->signal_activate().connect(
- [this]() -> void {
- if (!app.expired())
- Kiran::MenuSkeleton::get_instance()->del_favorite_app(app.lock()->get_desktop_id());
- });
+ item->signal_activate().connect(sigc::mem_fun(*this, &MenuAppItem::on_del_favorite_app));
}
context_menu.append(*item);
@@ -345,3 +341,19 @@ void MenuAppItem::launch_app()
signal_launched().emit();
app.lock()->launch();
}
+
+void MenuAppItem::on_add_favorite_app()
+{
+ if (!this->app.expired())
+ {
+ Kiran::MenuSkeleton::get_instance()->add_favorite_app(app.lock()->get_desktop_id());
+ }
+}
+
+void MenuAppItem::on_del_favorite_app()
+{
+ if (!app.expired())
+ {
+ Kiran::MenuSkeleton::get_instance()->del_favorite_app(app.lock()->get_desktop_id());
+ }
+}
\ No newline at end of file
diff --git a/src/menu/menu-app-item.h b/src/menu/menu-app-item.h
index 39f3767..6caadd7 100644
--- a/src/menu/menu-app-item.h
+++ b/src/menu/menu-app-item.h
@@ -37,6 +37,7 @@ protected:
virtual void on_drag_begin(const Glib::RefPtr<Gdk::DragContext> &context) override;
virtual void on_drag_data_get(const Glib::RefPtr<Gdk::DragContext> &context, Gtk::SelectionData &selection, guint info, guint timestamp) override;
virtual void on_drag_end(const Glib::RefPtr<Gdk::DragContext> &context) override;
+ bool on_drag_failed(const Glib::RefPtr<Gdk::DragContext> &context, Gtk::DragResult result);
virtual void init_drag_and_drop();
@@ -46,6 +47,10 @@ protected:
void create_context_menu();
bool add_app_to_desktop();
+private:
+ void on_add_favorite_app();
+ void on_del_favorite_app();
+
private:
KiranOpacityMenu context_menu;
Gtk::MenuItem *items;
diff --git a/src/menu/menu-applet-window.cpp b/src/menu/menu-applet-window.cpp
index 941c2b8..eea61c9 100644
--- a/src/menu/menu-applet-window.cpp
+++ b/src/menu/menu-applet-window.cpp
@@ -63,8 +63,7 @@ MenuAppletWindow::MenuAppletWindow(Gtk::WindowType window_type) : Glib::ObjectBa
/* 监控工作区域大小变化 */
auto screen = get_screen();
monitor = new WorkareaMonitor(screen);
- monitor->signal_size_changed().connect(
- sigc::mem_fun(*this, &MenuAppletWindow::on_workarea_size_changed));
+ monitor->signal_size_changed().connect(sigc::mem_fun(*this, &MenuAppletWindow::on_workarea_size_changed));
//加载当前用户信息
set_display_mode(profile.get_display_mode());
diff --git a/src/menu/menu-apps-container.cpp b/src/menu/menu-apps-container.cpp
index 4930e46..b849397 100644
--- a/src/menu/menu-apps-container.cpp
+++ b/src/menu/menu-apps-container.cpp
@@ -32,7 +32,8 @@ MenuAppsContainer::MenuAppsContainer(MenuAppsContainer::AppIconMode mode_,
apps_box.get_style_context()->add_class("menu-apps-box");
category_box.signal_clicked().connect_notify(
- [this]() -> void {
+ [this]() -> void
+ {
signal_category_clicked().emit(category_box.get_category_name());
});
@@ -142,11 +143,6 @@ bool MenuAppsContainer::get_category_clickable() const
return category_box.get_clickable();
}
-sigc::signal<void> MenuAppsContainer::signal_app_launched()
-{
- return m_signal_app_launched;
-}
-
sigc::signal<void, const Glib::ustring &> MenuAppsContainer::signal_category_clicked()
{
return m_signal_category_clicked;
@@ -157,10 +153,6 @@ MenuAppItem *MenuAppsContainer::create_app_item(std::shared_ptr<Kiran::App> app,
auto item = new MenuAppItem(app);
item->set_orientation(orient);
- item->signal_launched().connect(
- [this]() -> void {
- signal_app_launched().emit();
- });
return item;
}
diff --git a/src/menu/menu-apps-container.h b/src/menu/menu-apps-container.h
index d5bfcfe..85148e3 100644
--- a/src/menu/menu-apps-container.h
+++ b/src/menu/menu-apps-container.h
@@ -83,13 +83,6 @@ public:
*/
virtual bool load_applications(const Kiran::AppVec &apps);
- /**
- * @brief signal_app_launched 信号,容器内的应用按钮启动时触发
- *
- * @return 返回应用启动信号
- */
- sigc::signal<void> signal_app_launched();
-
/**
* @brief siganl_category_clicked 信号,容器内的应用分类标签点击后触发
*/
--
2.33.0

View File

@ -0,0 +1,47 @@
From 6da7f67dbc6e4d1226a96768256db1c903cf7e95 Mon Sep 17 00:00:00 2001
From: tangjie02 <tangjie02@kylinsec.com.cn>
Date: Thu, 11 Aug 2022 15:27:59 +0800
Subject: [PATCH 1/2] fix(coredump): Fix the coredump problem caused by
RecentFilesListBox::load
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复由RecentFilesListBox::load回调函数导致的崩溃问题
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
---
src/menu/recent-files-list-box.cpp | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/src/menu/recent-files-list-box.cpp b/src/menu/recent-files-list-box.cpp
index 86ffd60..3ae481e 100644
--- a/src/menu/recent-files-list-box.cpp
+++ b/src/menu/recent-files-list-box.cpp
@@ -26,12 +26,7 @@ RecentFilesListBox::RecentFilesListBox() : filter_pattern("*")
get_style_context()->add_class("menu-recent-list");
/* 最近访问文件列表发生变化时重新加载 */
- Gtk::RecentManager::get_default()->signal_changed().connect(
- [this]() {
- KLOG_DEBUG("The recent files are changed.");
- this->load();
- });
-
+ Gtk::RecentManager::get_default()->signal_changed().connect(sigc::mem_fun(this, &RecentFilesListBox::load));
load();
}
@@ -180,7 +175,8 @@ Gtk::Widget *RecentFilesListBox::create_recent_item(const Glib::RefPtr<Gtk::Rece
widget->set_tooltip_text(item->get_display_name());
widget->get_style_context()->add_class("row-box");
widget->signal_button_press_event().connect_notify(
- [widget, context_menu, this](const GdkEventButton *button_event) -> void {
+ [widget, context_menu, this](const GdkEventButton *button_event) -> void
+ {
const GdkEvent *event = (const GdkEvent *)button_event;
if (gdk_event_triggers_context_menu(event))
{
--
2.33.0

View File

@ -0,0 +1,34 @@
From 28c431b9323e2201498738fdffaa9a6d1fd562fd Mon Sep 17 00:00:00 2001
From: tangjie02 <tangjie02@kylinsec.com.cn>
Date: Wed, 27 Jul 2022 19:38:42 +0800
Subject: [PATCH 1/2] fix(menu): Fix the problem that some apps are show
repeatly in start menu.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复app在开始菜单中重复显示问题
Closes #I5HT8G
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
---
lib/category.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/category.cpp b/lib/category.cpp
index 10cba91..7d7a9b6 100644
--- a/lib/category.cpp
+++ b/lib/category.cpp
@@ -18,7 +18,7 @@
namespace Kiran
{
-Category::Category(std::shared_ptr<CategoryNode> node) : repeat_(true),
+Category::Category(std::shared_ptr<CategoryNode> node) : repeat_(false),
node_(node)
{
if (node->get_type() != CategoryNodeType::CATEGORY_NODE_TYPE_CATEGORY)
--
2.33.0

View File

@ -0,0 +1,66 @@
From 40e7e134d87727cb651e9d290a852bd9ef95b826 Mon Sep 17 00:00:00 2001
From: tangjie02 <tangjie02@kylinsec.com.cn>
Date: Mon, 18 Jul 2022 16:20:26 +0800
Subject: [PATCH] fix(menu): Fix the switch user error by xdmcp logging.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复通过xdmcp远程登录后切换用户错误问题
Closes #57865
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
---
src/common/kiran-power.cpp | 28 +++++++++++++++++++++++-----
1 file changed, 23 insertions(+), 5 deletions(-)
diff --git a/src/common/kiran-power.cpp b/src/common/kiran-power.cpp
index c7f1011..9ef8a2c 100644
--- a/src/common/kiran-power.cpp
+++ b/src/common/kiran-power.cpp
@@ -68,11 +68,18 @@ KiranPower::KiranPower()
SESSION_MANAGER_PATH,
SESSION_MANAGER_INTERFACE);
- // TODO: 这里直接选用seat0是有问题的需要获取会话所在seat
- this->seat_manager_proxy_ = Gio::DBus::Proxy::create_for_bus_sync(Gio::DBus::BUS_TYPE_SYSTEM,
- DISPLAY_MANAGER_DBUS,
- DISPLAY_MANAGER_SEAT_PATH,
- DISPLAY_MANAGER_INTERFACE);
+ auto xdg_seat_object_path = Glib::getenv("XDG_SEAT_PATH");
+ if (!xdg_seat_object_path.empty())
+ {
+ this->seat_manager_proxy_ = Gio::DBus::Proxy::create_for_bus_sync(Gio::DBus::BUS_TYPE_SYSTEM,
+ DISPLAY_MANAGER_DBUS,
+ xdg_seat_object_path,
+ DISPLAY_MANAGER_INTERFACE);
+ }
+ else
+ {
+ KLOG_WARNING("Failed to get environment variable XDG_SEAT_PATH.");
+ }
}
catch (const Gio::DBus::Error &e)
{
@@ -359,6 +366,17 @@ bool KiranPower::can_logout()
bool KiranPower::can_switch_user()
{
RETURN_VAL_IF_TRUE(this->settings_->get_boolean(STARTMENU_LOCKDOWN_KEY_DISABLE_USER_SWITCHING), false);
+
+ try
+ {
+ Glib::VariantBase variant_value;
+ this->seat_manager_proxy_->get_cached_property(variant_value, "CanSwitch");
+ return Glib::VariantBase::cast_dynamic<Glib::Variant<bool>>(variant_value).get();
+ }
+ catch (const Glib::Error &e)
+ {
+ KLOG_WARNING("%s", e.what().c_str());
+ }
return true;
}
--
2.33.0

View File

@ -0,0 +1,264 @@
From b89025f85ee172103524d9505ea7fa4e0878eaaa Mon Sep 17 00:00:00 2001
From: tangjie02 <tangjie02@kylinsec.com.cn>
Date: Sat, 30 Jul 2022 13:54:50 +0800
Subject: [PATCH] fix(menu): fix the grab problem when popup menu on search
entry or drag menu app icon.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复在搜索框弹出右键菜单后开始菜单未抓取问题
- 修复开始菜单拖拽到开始菜单后开始菜单未抓取问题
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
---
src/menu/menu-app-item.cpp | 29 +++++++++++++++++------------
src/menu/menu-app-item.h | 5 ++---
src/menu/menu-applet-window.cpp | 21 ++++++++++-----------
src/menu/menu-applet-window.h | 5 -----
src/menu/menu-power-button.cpp | 12 ------------
src/menu/menu-power-button.h | 5 -----
src/menu/recent-files-list-box.cpp | 15 +++++----------
7 files changed, 34 insertions(+), 58 deletions(-)
diff --git a/src/menu/menu-app-item.cpp b/src/menu/menu-app-item.cpp
index e2afab2..fba3994 100644
--- a/src/menu/menu-app-item.cpp
+++ b/src/menu/menu-app-item.cpp
@@ -47,12 +47,14 @@ MenuAppItem::MenuAppItem(const std::shared_ptr<Kiran::App> &app_, int _icon_size
set_can_focus(true);
set_tooltip_text(app_->get_locale_comment());
- context_menu.signal_deactivate().connect(
- sigc::mem_fun(*this, &MenuAppItem::on_context_menu_deactivated));
-
init_drag_and_drop();
}
+MenuAppItem::~MenuAppItem()
+{
+ this->idle_drag_connection_.disconnect();
+}
+
const std::shared_ptr<Kiran::App> MenuAppItem::get_app() const
{
return app.lock();
@@ -122,16 +124,19 @@ void MenuAppItem::on_drag_data_get(const Glib::RefPtr<Gdk::DragContext> &context
void MenuAppItem::on_drag_end(const Glib::RefPtr<Gdk::DragContext> &context)
{
- /* 让开始菜单窗口重新获取输入焦点 */
- Gtk::Container *toplevel = get_toplevel();
- KiranHelper::grab_input(*toplevel);
-}
+ /* FIXME: 当拖动图标到任务栏时无法收到drag-end信号因为任务栏时kiran-panel的子窗口kiran-panel是通过
+ 代理的方式将拖拽信息发送给任务栏,但是任务栏拖拽完成后,这个代理并没有把完成的消息转发给源控件(开始菜单),
+ 因此无法收到drag-end信号当前函数也不会被调用。这个时候窗口不再被抓取需要手动点击左下角开始菜单按钮才能隐藏。*/
-void MenuAppItem::on_context_menu_deactivated()
-{
- /* 让开始菜单窗口重新获取输入焦点 */
- auto toplevel = get_toplevel();
- KiranHelper::grab_input(*toplevel);
+ // 如果拖拽被取消拖拽的ungrab操作可能在drag-end信号之后所以这里的grab操作放入到后面的事件循环处理。
+ if (this->idle_drag_connection_.empty())
+ {
+ this->idle_drag_connection_ = Glib::signal_idle().connect([this]() -> bool {
+ Gtk::Container *toplevel = this->get_toplevel();
+ KiranHelper::grab_input(*toplevel);
+ return false;
+ });
+ }
}
bool MenuAppItem::on_key_press_event(GdkEventKey *key_event)
diff --git a/src/menu/menu-app-item.h b/src/menu/menu-app-item.h
index db7c0f3..39f3767 100644
--- a/src/menu/menu-app-item.h
+++ b/src/menu/menu-app-item.h
@@ -23,7 +23,7 @@ class MenuAppItem : public MenuListItemWidget
{
public:
MenuAppItem(const std::shared_ptr<Kiran::App> &_app, int icon_size = 24, Gtk::Orientation orient = Gtk::ORIENTATION_HORIZONTAL);
- ~MenuAppItem() = default;
+ virtual ~MenuAppItem();
sigc::signal<void> signal_launched();
virtual void set_orientation(Gtk::Orientation orient) override;
void launch_app();
@@ -38,8 +38,6 @@ protected:
virtual void on_drag_data_get(const Glib::RefPtr<Gdk::DragContext> &context, Gtk::SelectionData &selection, guint info, guint timestamp) override;
virtual void on_drag_end(const Glib::RefPtr<Gdk::DragContext> &context) override;
- virtual void on_context_menu_deactivated();
-
virtual void init_drag_and_drop();
bool pin_app_to_taskbar();
@@ -55,6 +53,7 @@ private:
bool menu_shown;
sigc::signal<void> m_signal_launched;
+ sigc::connection idle_drag_connection_;
bool is_in_favorite();
bool is_fixed_on_taskbar();
diff --git a/src/menu/menu-applet-window.cpp b/src/menu/menu-applet-window.cpp
index 952e401..941c2b8 100644
--- a/src/menu/menu-applet-window.cpp
+++ b/src/menu/menu-applet-window.cpp
@@ -71,6 +71,16 @@ MenuAppletWindow::MenuAppletWindow(Gtk::WindowType window_type) : Glib::ObjectBa
signal_grab_broken_event().connect(
sigc::mem_fun(*this, &MenuAppletWindow::on_grab_broken_event));
+
+ // 窗口激活时抓取窗口
+ this->property_is_active().signal_changed().connect(
+ [this]() -> void
+ {
+ if (this->property_is_active().get_value())
+ {
+ KiranHelper::grab_input(*this);
+ }
+ });
}
MenuAppletWindow::~MenuAppletWindow()
@@ -193,11 +203,6 @@ bool MenuAppletWindow::on_grab_broken_event(GdkEventGrabBroken *grab_broken_even
return false;
}
-void MenuAppletWindow::on_power_menu_deactivated()
-{
- KiranHelper::grab_input(*this);
-}
-
void MenuAppletWindow::init_ui()
{
Gtk::Box *search_box, *main_box, *sider_box;
@@ -544,10 +549,6 @@ bool MenuAppletWindow::on_map_event(GdkEventAny *any_event)
on_search_stop();
- /*
- * 获取当前系统的鼠标事件,这样才能在鼠标点击窗口外部时及时隐藏窗口
- */
- KiranHelper::grab_input(*this);
if (display_mode == DISPLAY_MODE_EXPAND || profile.get_default_page() == PAGE_ALL_APPS)
search_entry->grab_focus();
return true;
@@ -677,8 +678,6 @@ void MenuAppletWindow::add_sidebar_buttons()
side_box->add(*launcher_btn);
auto power_btn = Gtk::make_managed<MenuPowerButton>();
- power_btn->signal_power_menu_deactivated().connect(
- sigc::mem_fun(*this, &MenuAppletWindow::on_power_menu_deactivated));
side_box->add(*power_btn);
side_box->show_all();
diff --git a/src/menu/menu-applet-window.h b/src/menu/menu-applet-window.h
index d6224a4..0eae7d7 100644
--- a/src/menu/menu-applet-window.h
+++ b/src/menu/menu-applet-window.h
@@ -105,11 +105,6 @@ protected:
*/
virtual bool on_grab_broken_event(GdkEventGrabBroken *grab_broken_event);
- /**
- * @brief 回调函数,电源菜单关闭时调用
- */
- virtual void on_power_menu_deactivated();
-
virtual void init_ui();
virtual void init_avatar_widget();
diff --git a/src/menu/menu-power-button.cpp b/src/menu/menu-power-button.cpp
index 3b07e89..1a5a224 100644
--- a/src/menu/menu-power-button.cpp
+++ b/src/menu/menu-power-button.cpp
@@ -34,11 +34,6 @@ MenuPowerButton::~MenuPowerButton()
delete menu;
}
-sigc::signal<void> MenuPowerButton::signal_power_menu_deactivated()
-{
- return m_signal_power_menu_deactivated;
-}
-
void MenuPowerButton::on_clicked()
{
GdkEvent *event = gtk_get_current_event();
@@ -47,16 +42,9 @@ void MenuPowerButton::on_clicked()
delete menu;
menu = new MenuPowerMenu();
- menu->signal_deactivate().connect(
- sigc::mem_fun(*this, &MenuPowerButton::on_power_menu_deactivated));
menu->attach_to_widget(*this);
menu->show_all();
menu->popup_at_widget(this, Gdk::GRAVITY_SOUTH_EAST, Gdk::GRAVITY_SOUTH_WEST, event);
gdk_event_free(event);
}
-
-void MenuPowerButton::on_power_menu_deactivated()
-{
- signal_power_menu_deactivated().emit();
-}
diff --git a/src/menu/menu-power-button.h b/src/menu/menu-power-button.h
index 9fec030..fb94225 100644
--- a/src/menu/menu-power-button.h
+++ b/src/menu/menu-power-button.h
@@ -24,17 +24,12 @@ public:
MenuPowerButton();
~MenuPowerButton();
- sigc::signal<void> signal_power_menu_deactivated();
-
protected:
virtual void on_clicked() override;
- virtual void on_power_menu_deactivated();
private:
Gtk::Image icon;
Gtk::Menu *menu;
-
- sigc::signal<void> m_signal_power_menu_deactivated;
};
#endif // MENU_POWER_BUTTON_H
diff --git a/src/menu/recent-files-list-box.cpp b/src/menu/recent-files-list-box.cpp
index 3f8e869..86ffd60 100644
--- a/src/menu/recent-files-list-box.cpp
+++ b/src/menu/recent-files-list-box.cpp
@@ -26,10 +26,11 @@ RecentFilesListBox::RecentFilesListBox() : filter_pattern("*")
get_style_context()->add_class("menu-recent-list");
/* 最近访问文件列表发生变化时重新加载 */
- Gtk::RecentManager::get_default()->signal_changed().connect([this]() {
- KLOG_DEBUG("The recent files are changed.");
- this->load();
- });
+ Gtk::RecentManager::get_default()->signal_changed().connect(
+ [this]() {
+ KLOG_DEBUG("The recent files are changed.");
+ this->load();
+ });
load();
}
@@ -172,12 +173,6 @@ Gtk::Widget *RecentFilesListBox::create_recent_item(const Glib::RefPtr<Gtk::Rece
g_assert(context_menu != nullptr);
context_menu->attach_to_widget(*widget);
- context_menu->signal_deactivate().connect(
- [this]() -> void {
- auto toplevel = get_toplevel();
- KiranHelper::grab_input(*toplevel);
- });
-
label->set_ellipsize(Pango::ELLIPSIZE_END);
label->set_xalign(0.0f);
--
2.33.0

View File

@ -0,0 +1,132 @@
From 49591a3b1b1c2f58b8b4a7cacfa7093fad26a3ab Mon Sep 17 00:00:00 2001
From: wangxiaoqing <wangxiaoqing@kylinsec.com.cn>
Date: Tue, 6 Sep 2022 10:20:27 +0800
Subject: [PATCH] fix(tray):Fix the dbus icon can not scaled when system scale
changed
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复当系统显示设置放大2倍数托盘声音网络通知图标未放大的问题
Signed-off-by: wangxiaoqing <wangxiaoqing@kylinsec.com.cn>
---
src/tray/kiran-sn-icon.c | 51 +++++++++++++++++++++++-----------------
1 file changed, 29 insertions(+), 22 deletions(-)
diff --git a/src/tray/kiran-sn-icon.c b/src/tray/kiran-sn-icon.c
index b6644c3..f312458 100644
--- a/src/tray/kiran-sn-icon.c
+++ b/src/tray/kiran-sn-icon.c
@@ -202,9 +202,10 @@ kiran_sn_tooltip_new(GVariant *variant)
return tooltip;
}
-static GdkPixbuf *
+static cairo_surface_t *
get_icon_by_name(const gchar *icon_name,
- gint requested_size)
+ gint requested_size,
+ gint scale)
{
GtkIconTheme *icon_theme;
gint *sizes;
@@ -235,9 +236,9 @@ get_icon_by_name(const gchar *icon_name,
if (chosen_size == 0)
chosen_size = requested_size;
- return gtk_icon_theme_load_icon(icon_theme, icon_name,
- chosen_size, GTK_ICON_LOOKUP_FORCE_SIZE,
- NULL);
+ return gtk_icon_theme_load_surface(icon_theme, icon_name,
+ chosen_size, scale,
+ NULL, GTK_ICON_LOOKUP_FORCE_SIZE, NULL);
}
static cairo_surface_t *
@@ -501,44 +502,46 @@ update(KiranSnIcon *icon)
KiranSnIconPrivate *priv;
KiranSnTooltip *tip;
gint icon_size;
- gint scale;
priv = KIRAN_SN_ICON_GET_PRIVATE(icon);
- scale = gtk_widget_get_scale_factor(GTK_WIDGET(priv->image));
if (priv->icon_size > 0)
icon_size = priv->icon_size;
else
icon_size = MAX(1, priv->effective_icon_size);
- icon_size = icon_size * scale;
-
if (priv->icon_name != NULL && priv->icon_name[0] != '\0')
{
- GdkPixbuf *pixbuf;
- pixbuf = get_icon_by_name(priv->icon_name, icon_size);
- if (!pixbuf)
+ cairo_surface_t *surface;
+ gint scale;
+
+ scale = gtk_widget_get_scale_factor(GTK_WIDGET(priv->image));
+ surface = get_icon_by_name(priv->icon_name, icon_size, scale);
+ if (!surface)
{
+ GdkPixbuf *pixbuf;
+
/*try to find icons specified by path and filename*/
pixbuf = gdk_pixbuf_new_from_file(priv->icon_name, NULL);
if (pixbuf && icon_size > 1)
{
/*An icon specified by path and filename may be the wrong size for the tray */
- pixbuf = gdk_pixbuf_scale_simple(pixbuf, scale * icon_size - 2, scale * icon_size - 2, GDK_INTERP_BILINEAR);
+ pixbuf = gdk_pixbuf_scale_simple(pixbuf, icon_size - 2, icon_size - 2, GDK_INTERP_BILINEAR);
+ surface = gdk_cairo_surface_create_from_pixbuf(pixbuf, scale, NULL);
+ }
+
+ if (pixbuf)
+ {
+ g_object_unref(pixbuf);
}
}
- if (!pixbuf)
+ if (!surface)
{
/*deal with missing icon or failure to load icon*/
- pixbuf = get_icon_by_name("image-missing", icon_size);
- }
-
- if (pixbuf)
- {
- gtk_image_set_from_pixbuf(GTK_IMAGE(priv->image), pixbuf);
- g_object_unref(pixbuf);
+ surface = get_icon_by_name("image-missing", icon_size, scale);
}
+ gtk_image_set_from_surface(GTK_IMAGE(priv->image), surface);
g_free(priv->icon);
priv->icon = g_strdup(priv->icon_name);
}
@@ -551,7 +554,6 @@ update(KiranSnIcon *icon)
icon_size);
if (surface != NULL)
{
- cairo_surface_set_device_scale(surface, scale, scale);
gtk_image_set_from_surface(GTK_IMAGE(priv->image), surface);
g_free(priv->icon);
@@ -579,6 +581,11 @@ update(KiranSnIcon *icon)
cairo_surface_destroy(surface);
}
}
+ else
+ {
+ gtk_image_set_from_icon_name(GTK_IMAGE(priv->image), "image-missing", GTK_ICON_SIZE_MENU);
+ gtk_image_set_pixel_size(GTK_IMAGE(priv->image), icon_size);
+ }
tip = priv->tooltip;
if (tip != NULL)
--
2.36.1

View File

@ -0,0 +1,33 @@
From b2dc162c8ebaea927582a423b7467fd00023ab98 Mon Sep 17 00:00:00 2001
From: wangxiaoqing <wangxiaoqing@kylinsec.com.cn>
Date: Tue, 30 Aug 2022 11:22:55 +0800
Subject: [PATCH] fix(tray):Fix the icon location error when system resolution
change
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复托盘区域获取托盘位置图标,更改分辨率后错误问题
Releated #I5O77O
Signed-off-by: wangxiaoqing <wangxiaoqing@kylinsec.com.cn>
---
src/tray/kiran-tray.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/tray/kiran-tray.c b/src/tray/kiran-tray.c
index 2e7d1b9..c169a1e 100644
--- a/src/tray/kiran-tray.c
+++ b/src/tray/kiran-tray.c
@@ -992,7 +992,7 @@ get_widget_geometry(GtkWidget *widget)
{
window = gtk_widget_get_window(parent);
{
- gdk_window_get_position(window, &x, &y);
+ gdk_window_get_origin(window, &x, &y);
}
parent = gtk_widget_get_parent(parent);
}
--
2.36.1

View File

@ -0,0 +1,33 @@
From c3c06ad8ea3758d496ceff5526fabfe9e5585c27 Mon Sep 17 00:00:00 2001
From: tangjie02 <tangjie02@kylinsec.com.cn>
Date: Thu, 25 Aug 2022 09:16:58 +0800
Subject: [PATCH 2/2] feature(gitlab): Add .gitlab-ci.yml
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 添加ci配置文件
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
---
.gitlab-ci.yml | 8 ++++++++
1 file changed, 8 insertions(+)
create mode 100644 .gitlab-ci.yml
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..66ea6e7
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,8 @@
+variables:
+ RPM_BUILD_REQUIRES: 'cmake make gcc-c++ gtkmm30-devel gettext libwnck3-devel kiran-cc-daemon-devel libX11-devel libxcb-devel libXcomposite-devel mate-desktop-devel cairomm-devel kiran-log-gtk3-devel libdbusmenu-devel libxml2-devel fmt-devel kiran-panel kiran-panel-libs kiran-panel-devel json-glib-devel'
+
+include:
+ - project: 'os/gitlab-ci'
+ ref: main
+ file: '/cmake/cxx.gitlab-ci.yml'
+
--
2.33.0

View File

@ -1,31 +0,0 @@
From 9f8ff27ee3f8aa000fa005ccb6268ff1425a2033 Mon Sep 17 00:00:00 2001
From: tangjie02 <tangjie02@kylinsec.com.cn>
Date: Tue, 21 Dec 2021 21:40:58 +0800
Subject: [PATCH 2/2] feature(tray): Add fcitx to bottom panel.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 添加Fcitx到底部面板
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
---
data/com.kylinsec.kiran.tray.gschema.xml.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/data/com.kylinsec.kiran.tray.gschema.xml.in b/data/com.kylinsec.kiran.tray.gschema.xml.in
index 04c5163..d31bbfe 100644
--- a/data/com.kylinsec.kiran.tray.gschema.xml.in
+++ b/data/com.kylinsec.kiran.tray.gschema.xml.in
@@ -2,7 +2,7 @@
<schemalist>
<schema id="com.kylinsec.kiran.tray" path="/com/kylinsec/kiran/tray/">
<key name="panel-icon-ids" type="as">
- <default>['~01-keyboard', '~02-volume', '~04-network', '~05-battery', 'kiran-flameshot']</default>
+ <default>['~01-keyboard', '~02-volume', '~04-network', '~05-battery', 'kiran-flameshot', 'Fcitx']</default>
<summary>The notify icon which show in the panel</summary>
<description>The notify icon show which in the panel.</description>
</key>
--
2.27.0

View File

@ -0,0 +1,33 @@
From dc5e56b311f49532213a6a6445dc77e1f0cc4661 Mon Sep 17 00:00:00 2001
From: tangjie02 <tangjie02@kylinsec.com.cn>
Date: Tue, 9 Aug 2022 10:49:36 +0800
Subject: [PATCH 2/2] fix(coredump): Fix the coredump problem caused by
nullpointer to UserIcon.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复由于访问用户图标对象为空导致的崩溃问题
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
---
src/menu/menu-avatar-widget.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/menu/menu-avatar-widget.cpp b/src/menu/menu-avatar-widget.cpp
index 194a55e..74f8c49 100644
--- a/src/menu/menu-avatar-widget.cpp
+++ b/src/menu/menu-avatar-widget.cpp
@@ -82,7 +82,8 @@ bool MenuAvatarWidget::on_draw(const ::Cairo::RefPtr<Cairo::Context> &cr)
auto radius = image_size / 2.0;
try
{
- pixbuf = Gdk::Pixbuf::create_from_file(user_info.get_iconfile(),
+ auto icon_file = user_info.get_iconfile();
+ pixbuf = Gdk::Pixbuf::create_from_file(icon_file ? icon_file : std::string(),
allocation.get_width() * scale,
allocation.get_height() * scale);
}
--
2.33.0

View File

@ -0,0 +1,33 @@
From 6ab073b0b84df6090368a320500b2c94438d6602 Mon Sep 17 00:00:00 2001
From: tangjie02 <tangjie02@kylinsec.com.cn>
Date: Thu, 28 Jul 2022 11:10:22 +0800
Subject: [PATCH 2/2] fix(tray): Fix the problem that fcitx doesn't show in
tray area.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复fcitx没有在托盘区域中显示问题
Closes #I5HT13
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
---
src/tray/kiran-notify-icon.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/tray/kiran-notify-icon.h b/src/tray/kiran-notify-icon.h
index 02a5912..69b4f07 100644
--- a/src/tray/kiran-notify-icon.h
+++ b/src/tray/kiran-notify-icon.h
@@ -50,6 +50,7 @@ static const struct
{"Mate-volume-control-status-icon", "~02-volume", KIRAN_NOTIFY_ICON_CATEGORY_HARDWARE},
{"kiran-audio-status-icon", "~02-volume", KIRAN_NOTIFY_ICON_CATEGORY_HARDWARE},
{"ibus-ui-gtk", "~01-keyboard", KIRAN_NOTIFY_ICON_CATEGORY_HARDWARE},
+ {"Fcitx", "~01-keyboard", KIRAN_NOTIFY_ICON_CATEGORY_HARDWARE},
{"fcitx", "~01-keyboard", KIRAN_NOTIFY_ICON_CATEGORY_HARDWARE},
{"fcitx-qimpanel", "~01-keyboard", KIRAN_NOTIFY_ICON_CATEGORY_HARDWARE},
{"scim", "~01-keyboard", KIRAN_NOTIFY_ICON_CATEGORY_HARDWARE},
--
2.33.0

Binary file not shown.

BIN
kiran-menu-2.3.0.tar.gz Normal file

Binary file not shown.

View File

@ -1,19 +1,28 @@
Name: kiran-menu
Version: 2.2.6
Release: 8
Version: 2.3.0
Release: 11
Summary: Applets for mate panel from Kiran Desktop
License: Mulan PSL v2
License: MulanPSL-2.0
Source0: %{name}-%{version}.tar.gz
Patch1000: 0001-feature-menu-Hide-the-search-file-tool-on-start-menu.patch
Patch1001: 0002-feature-tray-Add-fcitx-to-bottom-panel.patch
Patch1000: 0001-fix-menu-Fix-the-switch-user-error-by-xdmcp-logging.patch
Patch1001: 0001-fix-menu-Fix-the-problem-that-some-apps-are-show-rep.patch
Patch1002: 0002-fix-tray-Fix-the-problem-that-fcitx-doesn-t-show-in-.patch
Patch1003: 0001-fix-menu-fix-the-grab-problem-when-popup-menu-on-sea.patch
Patch1004: 0001-fix-connect-Fix-some-possible-crash-problems-caused-.patch
Patch1005: 0002-fix-coredump-Fix-the-coredump-problem-caused-by-null.patch
Patch1006: 0001-fix-coredump-Fix-the-coredump-problem-caused-by-Rece.patch
Patch1007: 0002-feature-gitlab-Add-.gitlab-ci.yml.patch
Patch1008: 0001-fix-tray-Fix-the-icon-location-error-when-system-res.patch
Patch1009: 0001-fix-tray-Fix-the-dbus-icon-can-not-scaled-when-syste.patch
Patch1010: 0001-feature-menu-Add-flat-class-for-button-to-keep-consi.patch
BuildRequires: cmake > 3.0
BuildRequires: gcc-c++
BuildRequires: gtkmm30-devel
BuildRequires: json-glib-devel
BuildRequires: gettext
BuildRequires: libwnck3-devel
BuildRequires: kiran-cc-daemon-devel
@ -47,6 +56,7 @@ Summary: mate panel applets for Kiran Desktop
Requires: kiran-screensaver
Requires: mate-system-monitor
Requires: kiran-session-manager
Requires: mate-search-tool
Obsoletes: kiran-menu >= 2.0
%description -n kiran-applets
Redesigned panel applets for Mate Desktop
@ -56,7 +66,7 @@ Redesigned panel applets for Mate Desktop
%autosetup -p1
%build
%cmake -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_WITH_KIRANACCOUNTS:BOOL=ON -DKIRAN_DESKTOP:BOOL=TRUE
%cmake -DBUILD_SHARED_LIBS:BOOL=OFF
make %{?_smp_mflags}
@ -79,6 +89,8 @@ make install DESTDIR=%{buildroot}
%{_datadir}/kiran-applet/menu-menu.ui.xml
%{_datadir}/kiran-applet/tasklist-menu.ui.xml
%{_datadir}/kiran-applet/workspace-switcher-menu.ui.xml
%{_includedir}/kiran-applet/tray-i.h
%{_libdir}/pkgconfig/kiran-applet.pc
%post -n kiran-applets
glib-compile-schemas /usr/share/glib-2.0/schemas/ &> /dev/null || :
@ -86,9 +98,41 @@ gtk-update-icon-cache -f /usr/share/icons/hicolor/
%changelog
* Tue Jul 19 2022 yuanxing <yaunxing@kylinsec.com.cn> - 2.2.6-8
* Thu Oct 13 2022 tangjie02 <tangjie02@kylinsec.com.cn> - 2.3.0-11
- KYOS-F: Add flat class for button to keep consistent with the color of color block.
* Tue Sep 06 2022 wangxiaoqing <wangxiaoqing@kylinsec.com.cn> - 2.3.0-10
- KYOS-B: Fix the dbus icon can not scaled when system scale changed.(#I5LQVE)
* Tue Aug 30 2022 wangxiaoqing <wangxiaoqing@kylinsec.com.cn> - 2.3.0-9
- KYOS-B: Fix the icon location error when system resolution change.
* Thu Aug 25 2022 tangjie02 <tangjie02@kylinsec.com.cn> - 2.3.0-8
- KYOS-B: Fix the coredump problem caused by RecentFilesListBox::load
* Wed Aug 24 2022 tangjie02 <tangjie02@kylinsec.com.cn> - 2.3.0-7
- KYOS-F: Add mate-search-tool to requires list
* Tue Aug 09 2022 tangjie02 <tangjie02@kylinsec.com.cn> - 2.3.0-6
- KYOS-B: Fix the coredump problem caused by nullpointer to UserIcon.
- KYOS-B: Fix some possible crash problems caused by sigc::slot.
* Tue Aug 02 2022 tangjie02 <tangjie02@kylinsec.com.cn> - 2.3.0-5
- KYOS-B: fix the grab problem when popup menu on search entry or drag menu app icon.
* Thu Jul 28 2022 tangjie02 <tangjie02@kylinsec.com.cn> - 2.3.0-4
- KYOS-B: Fix the problem that fcitx doesn't show in tray area.(#I5HT13)
- KYOS-B: Fix the problem that some apps are show repeatly in start menu.(#I5HT8G)
* Tue Jul 19 2022 tangjie02 <tangjie02@kylinsec.com.cn> - 2.3.0-3
- KYOS-B: Fix the switch user error by xdmcp logging.(#57865)
* Tue Jul 19 2022 yuanxing <yaunxing@kylinsec.com.cn> - 2.3.0-2
- KYOS-F: Do not output the alarm information to the screen
* Fri Jul 08 2022 tangjie02 <tangjie02@kylinsec.com.cn> - 2.3.0-1
- KYOS-F: Update to version 2.3 and adapt new control panel.
* Wed Mar 09 2022 tangjie02 <tangjie02@kylinsec.com.cn> - 2.2.6-7
- KYOS-F: Add fcitx to bottom panel.

4
kiran-menu.yaml Normal file
View File

@ -0,0 +1,4 @@
version_control: gitee
src_repo: https://gitee.com/openeuler/kiran-menu.git
tag_prefix: "v"
seperator: "."

View File

@ -1,52 +0,0 @@
<svg id="多任务预览icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24">
<metadata><?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01 ">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?></metadata>
<defs>
<style>
.cls-1 {
fill: url(#linear-gradient);
}
.cls-2 {
fill: #9be2e6;
}
.cls-3 {
fill: #fff;
}
</style>
<linearGradient id="linear-gradient" x1="12" y1="24" x2="12" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#24a7a3"/>
<stop offset="1" stop-color="#63d5b1"/>
</linearGradient>
</defs>
<rect id="矩形_1" data-name="矩形 1" class="cls-1" width="24" height="24" rx="6" ry="6"/>
<rect id="矩形_2_拷贝_2" data-name="矩形 2 拷贝 2" class="cls-2" x="8" y="6" width="12" height="8"/>
<rect id="矩形_2_拷贝_3" data-name="矩形 2 拷贝 3" class="cls-3" x="4" y="10" width="12" height="8"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB