From eefc08f5c0bbdfc6fcfba265079dead9e744a883 Mon Sep 17 00:00:00 2001 From: yangfeng Date: Tue, 9 Apr 2024 18:18:11 +0800 Subject: [PATCH] sync to 2.6.0-4 --- ...-widget-Fixed-an-issue-where-taskbar.patch | 109 +++++++++++ ...-widget-Fixed-the-taskbar-page-turni.patch | 176 ++++++++++++++++++ ...-The-plugin-button-loads-the-icon-fr.patch | 92 +++++++++ ...et-window-Fix-xnest-connection-crash.patch | 32 ++++ ...-button-Fixed-an-issue-where-the-tas.patch | 30 +++ ...tart-Menu-without-icon-application-d.patch | 49 +++++ kiran-menu.spec | 16 +- 7 files changed, 503 insertions(+), 1 deletion(-) create mode 100644 1009-fix-tasklist-app-widget-Fixed-an-issue-where-taskbar.patch create mode 100644 1010-fix-tasklist-app-widget-Fixed-the-taskbar-page-turni.patch create mode 100644 1011-feat-applet-icon-The-plugin-button-loads-the-icon-fr.patch create mode 100644 1012-fix-menu-applet-window-Fix-xnest-connection-crash.patch create mode 100644 1013-fix-tasklist-app-button-Fixed-an-issue-where-the-tas.patch create mode 100644 1014-fix-menu-Fixed-start-Menu-without-icon-application-d.patch diff --git a/1009-fix-tasklist-app-widget-Fixed-an-issue-where-taskbar.patch b/1009-fix-tasklist-app-widget-Fixed-an-issue-where-taskbar.patch new file mode 100644 index 0000000..deb9ead --- /dev/null +++ b/1009-fix-tasklist-app-widget-Fixed-an-issue-where-taskbar.patch @@ -0,0 +1,109 @@ +From dacd31dd59799269e06334ee1e238c8c0d4d2b47 Mon Sep 17 00:00:00 2001 +From: yangfeng +Date: Wed, 6 Mar 2024 11:58:27 +0800 +Subject: [PATCH 1009/1014] fix(tasklist-app-widget):Fixed an issue where + taskbar page-turning ICONS cover each other +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +- 修复任务栏翻页图标互相遮盖问题 + +Related #19588 +--- + icons/kiran-tasklist-next-symbolic.svg | 2 +- + icons/kiran-tasklist-previous-symbolic.svg | 47 +++++----------------- + src/tasklist/tasklist-applet-widget.cpp | 13 ++++-- + 3 files changed, 20 insertions(+), 42 deletions(-) + +diff --git a/icons/kiran-tasklist-next-symbolic.svg b/icons/kiran-tasklist-next-symbolic.svg +index 78c1827..97ecca5 100644 +--- a/icons/kiran-tasklist-next-symbolic.svg ++++ b/icons/kiran-tasklist-next-symbolic.svg +@@ -35,5 +35,5 @@ + } + + +- ++ + +diff --git a/icons/kiran-tasklist-previous-symbolic.svg b/icons/kiran-tasklist-previous-symbolic.svg +index c8cc991..cd4501f 100644 +--- a/icons/kiran-tasklist-previous-symbolic.svg ++++ b/icons/kiran-tasklist-previous-symbolic.svg +@@ -1,39 +1,10 @@ +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ + +diff --git a/src/tasklist/tasklist-applet-widget.cpp b/src/tasklist/tasklist-applet-widget.cpp +index dc20b69..1601920 100644 +--- a/src/tasklist/tasklist-applet-widget.cpp ++++ b/src/tasklist/tasklist-applet-widget.cpp +@@ -150,9 +150,16 @@ Gtk::Button *TasklistAppletWidget::create_paging_button(const std::string &icon_ + { + auto button = Gtk::make_managed(applet); + +- button->set_size_request(16, 16); +- // button->set_icon_image(icon_resource, 16); +- button->set_image_from_icon_name(icon_name, Gtk::ICON_SIZE_BUTTON); ++ auto scale = Gdk::Window::get_default_root_window()->get_scale_factor(); ++ auto icon_info = Gtk::IconTheme::get_default()->lookup_icon(icon_name, 6, scale); ++ auto style_context = Gtk::StyleContext::create(); ++ bool was_symbolic = true; ++ auto pixbuf = icon_info.load_symbolic(style_context, was_symbolic); ++ ++ auto image = Gtk::make_managed(); ++ image->set(pixbuf); ++ button->set_image(*image); ++ button->set_size_request(30, -1); + button->set_tooltip_text(tooltip_text); + + return button; +-- +2.27.0 + diff --git a/1010-fix-tasklist-app-widget-Fixed-the-taskbar-page-turni.patch b/1010-fix-tasklist-app-widget-Fixed-the-taskbar-page-turni.patch new file mode 100644 index 0000000..5442557 --- /dev/null +++ b/1010-fix-tasklist-app-widget-Fixed-the-taskbar-page-turni.patch @@ -0,0 +1,176 @@ +From e87333e61da73cb79f44697aa7a62207dea78ebc Mon Sep 17 00:00:00 2001 +From: yangfeng +Date: Tue, 19 Mar 2024 15:57:38 +0800 +Subject: [PATCH 1010/1014] fix(tasklist-app-widget):Fixed the taskbar + page-turning ICONS hiding each other when zoom rate was 200% +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +- 修复当缩放率为200%时,任务栏翻页图标互相遮盖 + +Related #19588 +--- + data/applet.css | 4 ++ + icons/kiran-tasklist-next-symbolic.svg | 2 +- + icons/kiran-tasklist-previous-symbolic.svg | 47 +++++++++++++++++----- + src/tasklist/tasklist-applet-widget.cpp | 24 ++--------- + src/tasklist/tasklist-paging-button.cpp | 1 + + 5 files changed, 48 insertions(+), 30 deletions(-) + +diff --git a/data/applet.css b/data/applet.css +index e8dc027..d6052a6 100644 +--- a/data/applet.css ++++ b/data/applet.css +@@ -132,6 +132,10 @@ button.kiran-tasklist-button { + -gtkmm__CustomObject_KiranTasklistAppButton-indicator-size: 4px; + } + ++button.tasklist-arrow-button { ++ border: none; ++ border-radius: 0px; ++} + + window.app-previewer button.window-thumbnail { + min-width: 200px; +diff --git a/icons/kiran-tasklist-next-symbolic.svg b/icons/kiran-tasklist-next-symbolic.svg +index 97ecca5..35cb5fb 100644 +--- a/icons/kiran-tasklist-next-symbolic.svg ++++ b/icons/kiran-tasklist-next-symbolic.svg +@@ -35,5 +35,5 @@ + } + + +- ++ + +diff --git a/icons/kiran-tasklist-previous-symbolic.svg b/icons/kiran-tasklist-previous-symbolic.svg +index cd4501f..7242da8 100644 +--- a/icons/kiran-tasklist-previous-symbolic.svg ++++ b/icons/kiran-tasklist-previous-symbolic.svg +@@ -1,10 +1,39 @@ +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +diff --git a/src/tasklist/tasklist-applet-widget.cpp b/src/tasklist/tasklist-applet-widget.cpp +index 1601920..da61329 100644 +--- a/src/tasklist/tasklist-applet-widget.cpp ++++ b/src/tasklist/tasklist-applet-widget.cpp +@@ -53,7 +53,7 @@ void on_applet_size_allocate(MatePanelApplet *applet UNUSED, + delete[] hints; + } + +-TasklistAppletWidget::TasklistAppletWidget(MatePanelApplet *applet_) : button_box(Gtk::ORIENTATION_VERTICAL), ++TasklistAppletWidget::TasklistAppletWidget(MatePanelApplet *applet_) : button_box(Gtk::ORIENTATION_HORIZONTAL), + prev_btn(nullptr), + next_btn(nullptr), + container(applet_), +@@ -106,14 +106,9 @@ void TasklistAppletWidget::init_ui() + prev_btn = create_paging_button("kiran-tasklist-previous-symbolic", _("Previous")); + next_btn = create_paging_button("kiran-tasklist-next-symbolic", _("Next")); + +- prev_btn->set_valign(Gtk::ALIGN_FILL); +- next_btn->set_valign(Gtk::ALIGN_FILL); +- + button_box.set_spacing(2); + button_box.set_margin_start(5); + button_box.set_margin_end(5); +- button_box.set_valign(Gtk::ALIGN_FILL); +- button_box.set_halign(Gtk::ALIGN_CENTER); + button_box.pack_start(*prev_btn, true, true); + button_box.pack_end(*next_btn, true, true); + +@@ -125,13 +120,11 @@ void TasklistAppletWidget::init_ui() + { + if (get_orientation() == Gtk::ORIENTATION_HORIZONTAL) + { +- button_box.set_orientation(Gtk::ORIENTATION_VERTICAL); +- button_box.set_size_request(16, -1); ++ button_box.set_orientation(Gtk::ORIENTATION_HORIZONTAL); + } + else + { +- button_box.set_orientation(Gtk::ORIENTATION_HORIZONTAL); +- button_box.set_size_request(-1, 16); ++ button_box.set_orientation(Gtk::ORIENTATION_VERTICAL); + } + + container.update_orientation(); +@@ -150,16 +143,7 @@ Gtk::Button *TasklistAppletWidget::create_paging_button(const std::string &icon_ + { + auto button = Gtk::make_managed(applet); + +- auto scale = Gdk::Window::get_default_root_window()->get_scale_factor(); +- auto icon_info = Gtk::IconTheme::get_default()->lookup_icon(icon_name, 6, scale); +- auto style_context = Gtk::StyleContext::create(); +- bool was_symbolic = true; +- auto pixbuf = icon_info.load_symbolic(style_context, was_symbolic); +- +- auto image = Gtk::make_managed(); +- image->set(pixbuf); +- button->set_image(*image); +- button->set_size_request(30, -1); ++ button->set_image_from_icon_name(icon_name, Gtk::ICON_SIZE_BUTTON); + button->set_tooltip_text(tooltip_text); + + return button; +diff --git a/src/tasklist/tasklist-paging-button.cpp b/src/tasklist/tasklist-paging-button.cpp +index 7563029..2b2a27b 100644 +--- a/src/tasklist/tasklist-paging-button.cpp ++++ b/src/tasklist/tasklist-paging-button.cpp +@@ -29,6 +29,7 @@ TasklistPagingButton::TasklistPagingButton(MatePanelApplet *applet_) : applet(ap + drag_dest_set(targets, Gtk::DEST_DEFAULT_ALL, Gdk::ACTION_MOVE); + + get_style_context()->add_class("tasklist-arrow-button"); ++ get_style_context()->add_class("flat"); + } + + // void TasklistPagingButton::set_icon_image(const Glib::ustring icon_resource_, int icon_size_) +-- +2.27.0 + diff --git a/1011-feat-applet-icon-The-plugin-button-loads-the-icon-fr.patch b/1011-feat-applet-icon-The-plugin-button-loads-the-icon-fr.patch new file mode 100644 index 0000000..5d4bb86 --- /dev/null +++ b/1011-feat-applet-icon-The-plugin-button-loads-the-icon-fr.patch @@ -0,0 +1,92 @@ +From e5403df890ccfc0ea8790c6596714a643a6ea573 Mon Sep 17 00:00:00 2001 +From: yangfeng +Date: Wed, 20 Mar 2024 10:18:12 +0800 +Subject: [PATCH 1011/1014] feat(applet-icon):The plugin button loads the icon + from the system theme +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +- 插件按钮从系统主题中载入图标 +--- + src/common/kiran-applet-button.cpp | 12 +++++------- + src/common/kiran-applet-button.h | 4 ++-- + src/menu/menu-applet-button.cpp | 2 +- + src/workspace/workspace-applet-button.cpp | 2 +- + 4 files changed, 9 insertions(+), 11 deletions(-) + +diff --git a/src/common/kiran-applet-button.cpp b/src/common/kiran-applet-button.cpp +index 7600e37..fe3952f 100644 +--- a/src/common/kiran-applet-button.cpp ++++ b/src/common/kiran-applet-button.cpp +@@ -123,16 +123,14 @@ void KiranAppletButton::generate_pixbuf() + { + int scale = get_scale_factor(); + +- KLOG_INFO("generate pixbuf for button, resource %s\n", +- icon_resource.c_str()); +- icon_pixbuf = Gdk::Pixbuf::create_from_resource(icon_resource, +- icon_size * scale, +- icon_size * scale); ++ KLOG_INFO("generate pixbuf for button, theme icon %s\n", ++ icon_name.c_str()); ++ icon_pixbuf = Gtk::IconTheme::get_default()->load_icon(icon_name, icon_size, scale, Gtk::ICON_LOOKUP_USE_BUILTIN); + } + +-void KiranAppletButton::set_icon_from_resource(const std::string &resource) ++void KiranAppletButton::set_icon_from_theme(const std::string &name) + { +- icon_resource = resource; ++ icon_name = name; + + icon_pixbuf.clear(); + if (get_realized()) +diff --git a/src/common/kiran-applet-button.h b/src/common/kiran-applet-button.h +index 8049630..0355b3c 100644 +--- a/src/common/kiran-applet-button.h ++++ b/src/common/kiran-applet-button.h +@@ -31,13 +31,13 @@ protected: + virtual void get_preferred_height_vfunc(int &minimum_height, int &natural_height) const override; + virtual void on_size_allocate(Gtk::Allocation &allocation) override; + virtual bool on_draw(const ::Cairo::RefPtr &cr) override; +- virtual void set_icon_from_resource(const std::string &resource); ++ virtual void set_icon_from_theme(const std::string &name); + void generate_pixbuf(); + + private: + MatePanelApplet *applet; + +- std::string icon_resource; ++ std::string icon_name; + Glib::RefPtr icon_pixbuf; //图标 + int icon_size; //图标显示尺寸 + }; +diff --git a/src/menu/menu-applet-button.cpp b/src/menu/menu-applet-button.cpp +index 7b1b013..61d83ce 100644 +--- a/src/menu/menu-applet-button.cpp ++++ b/src/menu/menu-applet-button.cpp +@@ -23,7 +23,7 @@ + MenuAppletButton::MenuAppletButton(MatePanelApplet *panel_applet) : KiranAppletButton(panel_applet) + { + set_tooltip_text(_("Kiran Start Menu")); +- set_icon_from_resource("/kiran-menu/icon/logo"); ++ set_icon_from_theme("kiran-menu"); + get_style_context()->add_class("menu-applet-button"); + + window.signal_size_changed().connect( +diff --git a/src/workspace/workspace-applet-button.cpp b/src/workspace/workspace-applet-button.cpp +index ddeb6b0..b959151 100644 +--- a/src/workspace/workspace-applet-button.cpp ++++ b/src/workspace/workspace-applet-button.cpp +@@ -16,7 +16,7 @@ + + WorkspaceAppletButton::WorkspaceAppletButton(MatePanelApplet *applet_) : KiranAppletButton(applet_) + { +- set_icon_from_resource("/kiran-workspace/icon/button"); ++ set_icon_from_theme("kiran-workspace-switcher"); + + applet_window.signal_unmap_event().connect( + [this](GdkEventAny *event) -> bool +-- +2.27.0 + diff --git a/1012-fix-menu-applet-window-Fix-xnest-connection-crash.patch b/1012-fix-menu-applet-window-Fix-xnest-connection-crash.patch new file mode 100644 index 0000000..73de70d --- /dev/null +++ b/1012-fix-menu-applet-window-Fix-xnest-connection-crash.patch @@ -0,0 +1,32 @@ +From 0e0899576d7a03b53ef7189d641b54850c9f0fca Mon Sep 17 00:00:00 2001 +From: yangfeng +Date: Wed, 20 Mar 2024 12:06:29 +0800 +Subject: [PATCH 1012/1014] fix(menu-applet-window):Fix xnest connection crash +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +- 修复xnest连接崩溃问题 +--- + src/menu/menu-applet-window.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/menu/menu-applet-window.cpp b/src/menu/menu-applet-window.cpp +index fdaea92..5266fe8 100644 +--- a/src/menu/menu-applet-window.cpp ++++ b/src/menu/menu-applet-window.cpp +@@ -387,7 +387,10 @@ void MenuAppletWindow::init_window_visual() + + /*设置窗口的Visual为RGBA visual,确保窗口背景透明度可以正常绘制 */ + rgba_visual = get_screen()->get_rgba_visual(); +- gtk_widget_set_visual(widget, rgba_visual->gobj()); ++ if (rgba_visual && rgba_visual->gobj()) ++ { ++ gtk_widget_set_visual(widget, rgba_visual->gobj()); ++ } + } + + /* app列表页Stack */ +-- +2.27.0 + diff --git a/1013-fix-tasklist-app-button-Fixed-an-issue-where-the-tas.patch b/1013-fix-tasklist-app-button-Fixed-an-issue-where-the-tas.patch new file mode 100644 index 0000000..022977a --- /dev/null +++ b/1013-fix-tasklist-app-button-Fixed-an-issue-where-the-tas.patch @@ -0,0 +1,30 @@ +From 2dc0271b00d00acdae3db2778162949c67615d37 Mon Sep 17 00:00:00 2001 +From: yangfeng +Date: Wed, 20 Mar 2024 12:03:55 +0800 +Subject: [PATCH 1013/1014] fix(tasklist-app-button):Fixed an issue where the + taskbar does not drag smoothly +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +- 修复任务栏拖动不流畅问题 +--- + src/tasklist/tasklist-app-button.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/tasklist/tasklist-app-button.cpp b/src/tasklist/tasklist-app-button.cpp +index 15c8cb0..9d33936 100644 +--- a/src/tasklist/tasklist-app-button.cpp ++++ b/src/tasklist/tasklist-app-button.cpp +@@ -397,7 +397,7 @@ void TasklistAppButton::on_gesture_drag_update(double x, double y) + { + Gtk::Allocation allocation; + +- if (x < 10 && y < 10) ++ if (ABS(x) < 10 && ABS(y) < 10) + { + return; + } +-- +2.27.0 + diff --git a/1014-fix-menu-Fixed-start-Menu-without-icon-application-d.patch b/1014-fix-menu-Fixed-start-Menu-without-icon-application-d.patch new file mode 100644 index 0000000..e9465bf --- /dev/null +++ b/1014-fix-menu-Fixed-start-Menu-without-icon-application-d.patch @@ -0,0 +1,49 @@ +From 1acb0598eb7b85e02e822c1b85771607b2b8c6f4 Mon Sep 17 00:00:00 2001 +From: yangfeng +Date: Tue, 9 Apr 2024 14:55:44 +0800 +Subject: [PATCH 1014/1014] fix(menu):Fixed start Menu without icon application + drag and drop causes the bottom panel to crash +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +- 修复开始菜单无图标应用拖拽会导致底部面板崩溃 + +Related #34719 +--- + lib/app.cpp | 2 +- + src/menu/menu-app-item.cpp | 5 ++++- + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/lib/app.cpp b/lib/app.cpp +index 6168e76..c27b53b 100644 +--- a/lib/app.cpp ++++ b/lib/app.cpp +@@ -144,7 +144,7 @@ bool App::should_show() + RETURN_VAL_IF_FALSE(this->desktop_app_, false); + RETURN_VAL_IF_FALSE(get_kind() != AppKind::USER_TASKBAR, false); + +- return (this->desktop_app_->should_show() && !this->x_kiran_no_display_); ++ return (this->desktop_app_->should_show() && !this->x_kiran_no_display_ && !this->icon_name_.empty()); + } + + bool App::is_active() +diff --git a/src/menu/menu-app-item.cpp b/src/menu/menu-app-item.cpp +index 3e2376b..732d708 100644 +--- a/src/menu/menu-app-item.cpp ++++ b/src/menu/menu-app-item.cpp +@@ -101,7 +101,10 @@ void MenuAppItem::on_drag_begin(const Glib::RefPtr &context) + * 设置拖动操作的Icon + */ + auto app = get_app(); +- gtk_drag_set_icon_gicon(context->gobj(), app->get_icon()->gobj(), 0, 0); ++ if (app->get_icon()) ++ { ++ gtk_drag_set_icon_gicon(context->gobj(), app->get_icon()->gobj(), 0, 0); ++ } + } + + void MenuAppItem::on_drag_data_get(const Glib::RefPtr &context, Gtk::SelectionData &selection, guint info, guint timestamp) +-- +2.27.0 + diff --git a/kiran-menu.spec b/kiran-menu.spec index aa0781a..d78023a 100644 --- a/kiran-menu.spec +++ b/kiran-menu.spec @@ -1,6 +1,6 @@ Name: kiran-menu Version: 2.6.0 -Release: 3 +Release: 4 Summary: Applets for mate panel from Kiran Desktop License: MulanPSL-2.0 @@ -15,6 +15,12 @@ Patch1005: 0005-feat-menu-Replace-mate-panel-run-dialog-with-kiran-p.patch Patch1006: 1006-fix-menu-Fixed-the-issue-where-the-taskbar-close-win.patch Patch1007: 1007-fix-menu-applet-button-Fix-win-key-popup-Start-menu-.patch Patch1008: 1008-fix-tray-when-resize-icon-window-it-is-necessary-to-.patch +Patch1009: 1009-fix-tasklist-app-widget-Fixed-an-issue-where-taskbar.patch +Patch1010: 1010-fix-tasklist-app-widget-Fixed-the-taskbar-page-turni.patch +Patch1011: 1011-feat-applet-icon-The-plugin-button-loads-the-icon-fr.patch +Patch1012: 1012-fix-menu-applet-window-Fix-xnest-connection-crash.patch +Patch1013: 1013-fix-tasklist-app-button-Fixed-an-issue-where-the-tas.patch +Patch1014: 1014-fix-menu-Fixed-start-Menu-without-icon-application-d.patch BuildRequires: cmake > 3.0 BuildRequires: gcc-c++ @@ -106,6 +112,14 @@ gtk-update-icon-cache -f /usr/share/icons/hicolor/ %changelog +* Tue Apr 09 2024 yangfeng - 2.6.0-4 +- KYOS-B: Fixed an issue where taskbar page-turning ICONS cover each other(#19588) +- KYOS-B: Fixed the taskbar page-turning ICONS hiding each other when zoom rate was 200%(#19588) +- KYOS-F: The plugin button loads the icon from the system theme +- KYOS-B: Fixed xnest connection crash +- KYOS-B: Fixed an issue where the taskbar does not drag smoothly +- KYOS-B: Fixed start Menu without icon application drag and drop causes the bottom panel to crash(#34719) + * Tue Mar 05 2024 luoqing - 2.6.0-3 - KYOS-B: Fixed the issue where the taskbar close window used the wrong timestamp.(#26368) - KYOS-B: Fix win key popup Start menu does not get focus, can not directly keyboard operation (#21246)