diff --git a/0001-feature-menu-Add-flat-class-for-button-to-keep-consi.patch b/0001-feature-menu-Add-flat-class-for-button-to-keep-consi.patch new file mode 100644 index 0000000..e631a8b --- /dev/null +++ b/0001-feature-menu-Add-flat-class-for-button-to-keep-consi.patch @@ -0,0 +1,170 @@ +From d6faccac23ee5dd61fafded0269d8a12752be0e3 Mon Sep 17 00:00:00 2001 +From: tangjie02 +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 +--- + 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 @@ + +- ++ + + + +@@ -10,9 +10,6 @@ + 682 + True + True +- +- +- + + + True +@@ -56,7 +53,7 @@ + True + vertical + +- ++ + True + False + True +@@ -358,5 +355,8 @@ + + + ++ ++ ++ + + +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 &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("menu-container", main_box); + builder->get_widget("menu-sider-container", sider_box); ++ builder->get_widget("menu-view-stack-switcher", menu_view_stack_switcher); + builder->get_widget("menu-view-stack", menu_view_stack); + builder->get_widget("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(); + 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 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(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 + diff --git a/0001-fix-connect-Fix-some-possible-crash-problems-caused-.patch b/0001-fix-connect-Fix-some-possible-crash-problems-caused-.patch new file mode 100644 index 0000000..93de67b --- /dev/null +++ b/0001-fix-connect-Fix-some-possible-crash-problems-caused-.patch @@ -0,0 +1,204 @@ +From ee1e902961b07f16b22916338bc37b98ba9d9060 Mon Sep 17 00:00:00 2001 +From: tangjie02 +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 +--- + 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 &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 &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 &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(_("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(_("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 &context) override; + virtual void on_drag_data_get(const Glib::RefPtr &context, Gtk::SelectionData &selection, guint info, guint timestamp) override; + virtual void on_drag_end(const Glib::RefPtr &context) override; ++ bool on_drag_failed(const Glib::RefPtr &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 MenuAppsContainer::signal_app_launched() +-{ +- return m_signal_app_launched; +-} +- + sigc::signal MenuAppsContainer::signal_category_clicked() + { + return m_signal_category_clicked; +@@ -157,10 +153,6 @@ MenuAppItem *MenuAppsContainer::create_app_item(std::shared_ptr 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 signal_app_launched(); +- + /** + * @brief siganl_category_clicked 信号,容器内的应用分类标签点击后触发 + */ +-- +2.33.0 + diff --git a/0001-fix-coredump-Fix-the-coredump-problem-caused-by-Rece.patch b/0001-fix-coredump-Fix-the-coredump-problem-caused-by-Rece.patch new file mode 100644 index 0000000..3d58667 --- /dev/null +++ b/0001-fix-coredump-Fix-the-coredump-problem-caused-by-Rece.patch @@ -0,0 +1,47 @@ +From 6da7f67dbc6e4d1226a96768256db1c903cf7e95 Mon Sep 17 00:00:00 2001 +From: tangjie02 +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 +--- + 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::RefPtrset_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 + diff --git a/0001-fix-menu-Fix-the-problem-that-some-apps-are-show-rep.patch b/0001-fix-menu-Fix-the-problem-that-some-apps-are-show-rep.patch new file mode 100644 index 0000000..372fa31 --- /dev/null +++ b/0001-fix-menu-Fix-the-problem-that-some-apps-are-show-rep.patch @@ -0,0 +1,34 @@ +From 28c431b9323e2201498738fdffaa9a6d1fd562fd Mon Sep 17 00:00:00 2001 +From: tangjie02 +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 +--- + 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 node) : repeat_(true), ++Category::Category(std::shared_ptr node) : repeat_(false), + node_(node) + { + if (node->get_type() != CategoryNodeType::CATEGORY_NODE_TYPE_CATEGORY) +-- +2.33.0 + diff --git a/0001-fix-menu-Fix-the-switch-user-error-by-xdmcp-logging.patch b/0001-fix-menu-Fix-the-switch-user-error-by-xdmcp-logging.patch new file mode 100644 index 0000000..29290c7 --- /dev/null +++ b/0001-fix-menu-Fix-the-switch-user-error-by-xdmcp-logging.patch @@ -0,0 +1,66 @@ +From 40e7e134d87727cb651e9d290a852bd9ef95b826 Mon Sep 17 00:00:00 2001 +From: tangjie02 +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 +--- + 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>(variant_value).get(); ++ } ++ catch (const Glib::Error &e) ++ { ++ KLOG_WARNING("%s", e.what().c_str()); ++ } + return true; + } + +-- +2.33.0 + diff --git a/0001-fix-menu-fix-the-grab-problem-when-popup-menu-on-sea.patch b/0001-fix-menu-fix-the-grab-problem-when-popup-menu-on-sea.patch new file mode 100644 index 0000000..9d7c006 --- /dev/null +++ b/0001-fix-menu-fix-the-grab-problem-when-popup-menu-on-sea.patch @@ -0,0 +1,264 @@ +From b89025f85ee172103524d9505ea7fa4e0878eaaa Mon Sep 17 00:00:00 2001 +From: tangjie02 +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 +--- + 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 &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 MenuAppItem::get_app() const + { + return app.lock(); +@@ -122,16 +124,19 @@ void MenuAppItem::on_drag_data_get(const Glib::RefPtr &context + + void MenuAppItem::on_drag_end(const Glib::RefPtr &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 &_app, int icon_size = 24, Gtk::Orientation orient = Gtk::ORIENTATION_HORIZONTAL); +- ~MenuAppItem() = default; ++ virtual ~MenuAppItem(); + sigc::signal 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 &context, Gtk::SelectionData &selection, guint info, guint timestamp) override; + virtual void on_drag_end(const Glib::RefPtr &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 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(); +- 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 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 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 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::RefPtrattach_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 + diff --git a/0001-fix-tray-Fix-the-dbus-icon-can-not-scaled-when-syste.patch b/0001-fix-tray-Fix-the-dbus-icon-can-not-scaled-when-syste.patch new file mode 100644 index 0000000..a3efe99 --- /dev/null +++ b/0001-fix-tray-Fix-the-dbus-icon-can-not-scaled-when-syste.patch @@ -0,0 +1,132 @@ +From 49591a3b1b1c2f58b8b4a7cacfa7093fad26a3ab Mon Sep 17 00:00:00 2001 +From: wangxiaoqing +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 +--- + 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 + diff --git a/0001-fix-tray-Fix-the-icon-location-error-when-system-res.patch b/0001-fix-tray-Fix-the-icon-location-error-when-system-res.patch new file mode 100644 index 0000000..f39bb8a --- /dev/null +++ b/0001-fix-tray-Fix-the-icon-location-error-when-system-res.patch @@ -0,0 +1,33 @@ +From b2dc162c8ebaea927582a423b7467fd00023ab98 Mon Sep 17 00:00:00 2001 +From: wangxiaoqing +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 +--- + 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 + diff --git a/0002-feature-gitlab-Add-.gitlab-ci.yml.patch b/0002-feature-gitlab-Add-.gitlab-ci.yml.patch new file mode 100644 index 0000000..a7855a8 --- /dev/null +++ b/0002-feature-gitlab-Add-.gitlab-ci.yml.patch @@ -0,0 +1,33 @@ +From c3c06ad8ea3758d496ceff5526fabfe9e5585c27 Mon Sep 17 00:00:00 2001 +From: tangjie02 +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 +--- + .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 + diff --git a/0002-feature-tray-Add-fcitx-to-bottom-panel.patch b/0002-feature-tray-Add-fcitx-to-bottom-panel.patch deleted file mode 100644 index 669fe25..0000000 --- a/0002-feature-tray-Add-fcitx-to-bottom-panel.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 9f8ff27ee3f8aa000fa005ccb6268ff1425a2033 Mon Sep 17 00:00:00 2001 -From: tangjie02 -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 ---- - 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 @@ - - - -- ['~01-keyboard', '~02-volume', '~04-network', '~05-battery', 'kiran-flameshot'] -+ ['~01-keyboard', '~02-volume', '~04-network', '~05-battery', 'kiran-flameshot', 'Fcitx'] - The notify icon which show in the panel - The notify icon show which in the panel. - --- -2.27.0 - diff --git a/0002-fix-coredump-Fix-the-coredump-problem-caused-by-null.patch b/0002-fix-coredump-Fix-the-coredump-problem-caused-by-null.patch new file mode 100644 index 0000000..1a9d92e --- /dev/null +++ b/0002-fix-coredump-Fix-the-coredump-problem-caused-by-null.patch @@ -0,0 +1,33 @@ +From dc5e56b311f49532213a6a6445dc77e1f0cc4661 Mon Sep 17 00:00:00 2001 +From: tangjie02 +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 +--- + 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 &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 + diff --git a/0002-fix-tray-Fix-the-problem-that-fcitx-doesn-t-show-in-.patch b/0002-fix-tray-Fix-the-problem-that-fcitx-doesn-t-show-in-.patch new file mode 100644 index 0000000..d0e532a --- /dev/null +++ b/0002-fix-tray-Fix-the-problem-that-fcitx-doesn-t-show-in-.patch @@ -0,0 +1,33 @@ +From 6ab073b0b84df6090368a320500b2c94438d6602 Mon Sep 17 00:00:00 2001 +From: tangjie02 +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 +--- + 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 + diff --git a/kiran-menu-2.2.6.tar.gz b/kiran-menu-2.2.6.tar.gz deleted file mode 100644 index 204c601..0000000 Binary files a/kiran-menu-2.2.6.tar.gz and /dev/null differ diff --git a/kiran-menu-2.3.0.tar.gz b/kiran-menu-2.3.0.tar.gz new file mode 100644 index 0000000..d774231 Binary files /dev/null and b/kiran-menu-2.3.0.tar.gz differ diff --git a/kiran-menu.spec b/kiran-menu.spec index 2a49478..f3216f9 100644 --- a/kiran-menu.spec +++ b/kiran-menu.spec @@ -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 - 2.2.6-8 +* Thu Oct 13 2022 tangjie02 - 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 - 2.3.0-10 +- KYOS-B: Fix the dbus icon can not scaled when system scale changed.(#I5LQVE) + +* Tue Aug 30 2022 wangxiaoqing - 2.3.0-9 +- KYOS-B: Fix the icon location error when system resolution change. + +* Thu Aug 25 2022 tangjie02 - 2.3.0-8 +- KYOS-B: Fix the coredump problem caused by RecentFilesListBox::load + +* Wed Aug 24 2022 tangjie02 - 2.3.0-7 +- KYOS-F: Add mate-search-tool to requires list + +* Tue Aug 09 2022 tangjie02 - 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 - 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 - 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 - 2.3.0-3 +- KYOS-B: Fix the switch user error by xdmcp logging.(#57865) + +* Tue Jul 19 2022 yuanxing - 2.3.0-2 - KYOS-F: Do not output the alarm information to the screen +* Fri Jul 08 2022 tangjie02 - 2.3.0-1 +- KYOS-F: Update to version 2.3 and adapt new control panel. + * Wed Mar 09 2022 tangjie02 - 2.2.6-7 - KYOS-F: Add fcitx to bottom panel. diff --git a/kiran-menu.yaml b/kiran-menu.yaml new file mode 100644 index 0000000..a809eb3 --- /dev/null +++ b/kiran-menu.yaml @@ -0,0 +1,4 @@ +version_control: gitee +src_repo: https://gitee.com/openeuler/kiran-menu.git +tag_prefix: "v" +seperator: "." diff --git a/workspace-switcher.svg b/workspace-switcher.svg deleted file mode 100644 index 6de12c6..0000000 --- a/workspace-switcher.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -