Compare commits

...

10 Commits

Author SHA1 Message Date
openeuler-ci-bot
4869ac0be9
!92 sync to 2.6.0-4
From: @itisyang 
Reviewed-by: @liubuguiii 
Signed-off-by: @liubuguiii
2024-04-10 01:21:20 +00:00
yangfeng
eefc08f5c0 sync to 2.6.0-4 2024-04-09 18:20:17 +08:00
openeuler-ci-bot
b774a65b48
!89 sync to 2.6.0-3
From: @liubuguiii 
Reviewed-by: @tangjie02 
Signed-off-by: @tangjie02
2024-04-09 09:56:53 +00:00
liuxinhao
b69197a743 sync to 2.6.0-3 2024-04-09 16:16:16 +08:00
openeuler-ci-bot
755a3df853
!84 发布v2.6版本
From: @niko_yhc 
Reviewed-by: @liubuguiii 
Signed-off-by: @liubuguiii
2024-01-18 03:29:43 +00:00
niko_yhc
8777391e65 release v2.6 version 2024-01-17 13:58:51 +08:00
openeuler-ci-bot
d1fc102096
!82 修复menuItem属性设置为不可见后,但仍然可见的问题;修复当托盘程序未设置Menu时,未调用kiran_sn_icon_context_menu的情况
From: @luoqing_kylinsec 
Reviewed-by: @liubuguiii 
Signed-off-by: @liubuguiii
2023-10-09 06:17:28 +00:00
luoqing
59b37b39e4 fix(tray):Fixed an issue with the MenuItem property set and Menu not set
- 修复menuItem属性设置为不可见后,但仍然可见的问题
  修复当托盘程序未设置Menu时,未调用kiran_sn_icon_context_menu的情况

Close #17216
2023-10-08 14:16:09 +08:00
openeuler-ci-bot
33f3c383cd
!79 支持托盘右键菜单中的子项MenuItem动态增减以及属性变化
From: @luoqing_kylinsec 
Reviewed-by: @tangjie02 
Signed-off-by: @tangjie02
2023-09-18 01:54:15 +00:00
luoqing
b25b05dd44 feature(sn-icon-menu):Support dynamic increase or decrease of sub-item MenuItem in the tray right-click menu and property changes
- 支持托盘右键菜单中的子项MenuItem动态增减以及属性变化

Closed #15944
2023-09-15 09:49:13 +08:00
21 changed files with 971 additions and 161 deletions

View File

@ -0,0 +1,35 @@
From 78d16412005f188c799dbf80bc9072bc77471fe2 Mon Sep 17 00:00:00 2001
From: yangfeng <yangfeng@kylinsec.com.cn>
Date: Mon, 11 Dec 2023 10:49:16 +0800
Subject: [PATCH 0/5] fix(tasklist-app-button):Fix touch screen taskbar button
click judged as drag
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复触摸屏任务栏按钮点击被判定为拖动
Related #23600
---
src/tasklist/tasklist-app-button.cpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/tasklist/tasklist-app-button.cpp b/src/tasklist/tasklist-app-button.cpp
index cd8b2c3..15c8cb0 100644
--- a/src/tasklist/tasklist-app-button.cpp
+++ b/src/tasklist/tasklist-app-button.cpp
@@ -397,6 +397,11 @@ void TasklistAppButton::on_gesture_drag_update(double x, double y)
{
Gtk::Allocation allocation;
+ if (x < 10 && y < 10)
+ {
+ return;
+ }
+
/* 设置拖动过程中的光标样式 */
auto cursor = Gdk::Cursor::create(get_display(), "move");
get_window()->set_cursor(cursor);
--
2.27.0

View File

@ -0,0 +1,30 @@
From fa552176bffd1878a688107cbbad871401b09417 Mon Sep 17 00:00:00 2001
From: yangfeng <yangfeng@kylinsec.com.cn>
Date: Thu, 21 Dec 2023 10:05:44 +0800
Subject: [PATCH 1/5] feature(menu): Other workspace Windows are not displayed
by default.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 默认不显示其他工作区窗口
---
data/com.kylinsec.kiran.taskbar.gschema.xml.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/data/com.kylinsec.kiran.taskbar.gschema.xml.in b/data/com.kylinsec.kiran.taskbar.gschema.xml.in
index f433706..dfde810 100644
--- a/data/com.kylinsec.kiran.taskbar.gschema.xml.in
+++ b/data/com.kylinsec.kiran.taskbar.gschema.xml.in
@@ -5,7 +5,7 @@
<default>['org.gnome.Software.desktop', 'firefox.desktop', 'caja.desktop', 'mate-terminal.desktop']</default>
</key>
<key name="show-active-workspace-apps" type="b">
- <default>false</default>
+ <default>true</default>
<summary>Whether only show apps for current active workspace on the taskbar</summary>
</key>
</schema>
--
2.27.0

View File

@ -1,31 +0,0 @@
From f5d0a115fa44bd1a3a61b2a109956a15130e11e4 Mon Sep 17 00:00:00 2001
From: huangjiawen <huangjiawen@kylinsec.com.cn>
Date: Tue, 27 Jun 2023 18:51:42 +0800
Subject: [PATCH] fix(coredump): Fix crash when clicking on the power option
button in vnc
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复在vnc下点击电源选项按钮崩溃
Signed-off-by: huangjiawen <huangjiawen@kylinsec.com.cn>
---
src/common/kiran-power.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/common/kiran-power.cpp b/src/common/kiran-power.cpp
index 9ef8a2c..8485a9f 100644
--- a/src/common/kiran-power.cpp
+++ b/src/common/kiran-power.cpp
@@ -366,6 +366,7 @@ bool KiranPower::can_logout()
bool KiranPower::can_switch_user()
{
RETURN_VAL_IF_TRUE(this->settings_->get_boolean(STARTMENU_LOCKDOWN_KEY_DISABLE_USER_SWITCHING), false);
+ RETURN_VAL_IF_FALSE(this->seat_manager_proxy_, false);
try
{
--
2.33.0

View File

@ -0,0 +1,44 @@
From 43d27f12fff46595631802ea65b400df4ce44cd8 Mon Sep 17 00:00:00 2001
From: yangfeng <yangfeng@kylinsec.com.cn>
Date: Wed, 27 Dec 2023 14:41:52 +0800
Subject: [PATCH 2/5] fix(recent-files-list-box):Fixed an issue where recent
documents were not sorted
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复最近文档列表没有排序的问题
Related #24803
---
src/menu/recent-files-list-box.cpp | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/menu/recent-files-list-box.cpp b/src/menu/recent-files-list-box.cpp
index 3ae481e..5226123 100644
--- a/src/menu/recent-files-list-box.cpp
+++ b/src/menu/recent-files-list-box.cpp
@@ -17,6 +17,7 @@
#include "kiran-helper.h"
#include "kiran-opacity-menu.h"
#include "lib/base.h"
+#include <algorithm>
RecentFilesListBox::RecentFilesListBox() : filter_pattern("*")
{
@@ -50,7 +51,11 @@ void RecentFilesListBox::load()
delete row;
}
- for (auto info : Gtk::RecentManager::get_default()->get_items())
+ std::vector<Glib::RefPtr<Gtk::RecentInfo>> items = Gtk::RecentManager::get_default()->get_items();
+ std::sort(items.begin(), items.end(), [](Glib::RefPtr<Gtk::RecentInfo> a, Glib::RefPtr<Gtk::RecentInfo> b)
+ { return a->get_modified() > b->get_modified(); });
+
+ for (auto info : items)
{
Gtk::ListBoxRow *row = nullptr;
auto cell = create_recent_item(info);
--
2.27.0

View File

@ -1,51 +0,0 @@
From 2724de097ff51a06e28579066a5085d5318a7b0e Mon Sep 17 00:00:00 2001
From: luoqing <luoqing@kylinsec.com.cn>
Date: Thu, 24 Aug 2023 14:37:03 +0800
Subject: [PATCH] fix(tray):Place all tray icons in the panel and no longer in
the tray container for the time being
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 将所有托盘图标都放到面板中,暂时不再放入托盘容器中
Related #12490
---
src/tray/kiran-tray.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/tray/kiran-tray.c b/src/tray/kiran-tray.c
index 9b40d96..2d5d418 100644
--- a/src/tray/kiran-tray.c
+++ b/src/tray/kiran-tray.c
@@ -1123,7 +1123,7 @@ kiran_tray_notify_icon_added(KiranTrayManager *manager,
priv = tray->priv;
id = kiran_notify_icon_get_id(icon);
- type = kiran_tray_get_icon_type(priv->settings, id);
+ // type = kiran_tray_get_icon_type(priv->settings, id);
/* 系统已知的通知图标如声音,网络,电池等不需要记录 */
if (kiran_notify_icon_get_category(icon) != KIRAN_NOTIFY_ICON_CATEGORY_HARDWARE)
@@ -1136,6 +1136,10 @@ kiran_tray_notify_icon_added(KiranTrayManager *manager,
gtk_widget_set_name(GTK_WIDGET(icon), "iconWinButton");
+ gtk_box_pack_start(GTK_BOX(tray), GTK_WIDGET(icon), FALSE, TRUE, 0);
+ kiran_tray_icons_refresh(tray);
+
+ /*
if (type == ICON_SHOW_IN_PANEL)
{
gtk_box_pack_start(GTK_BOX(tray), GTK_WIDGET(icon), FALSE, TRUE, 0);
@@ -1149,6 +1153,7 @@ kiran_tray_notify_icon_added(KiranTrayManager *manager,
gtk_widget_show(priv->icons_win_button);
position_notify_icon_window(tray, FALSE);
}
+ */
g_signal_connect(icon,
"size-allocate",
--
2.33.0

View File

@ -1,69 +0,0 @@
From 4428d8c315ac13d8bacc533a9b6cc64bf335d30b Mon Sep 17 00:00:00 2001
From: luoqing <luoqing@kylinsec.com.cn>
Date: Wed, 30 Aug 2023 17:04:12 +0800
Subject: [PATCH] fix(tray):Fixed a crash issue that occurred when the tray
icon was removed from the tray area
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复托盘图标从托盘区域移除时,发生的崩溃问题
Related #14004
---
src/tray/kiran-tray.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/tray/kiran-tray.c b/src/tray/kiran-tray.c
index 2d5d418..4093571 100644
--- a/src/tray/kiran-tray.c
+++ b/src/tray/kiran-tray.c
@@ -1123,7 +1123,7 @@ kiran_tray_notify_icon_added(KiranTrayManager *manager,
priv = tray->priv;
id = kiran_notify_icon_get_id(icon);
- // type = kiran_tray_get_icon_type(priv->settings, id);
+ type = kiran_tray_get_icon_type(priv->settings, id);
/* 系统已知的通知图标如声音,网络,电池等不需要记录 */
if (kiran_notify_icon_get_category(icon) != KIRAN_NOTIFY_ICON_CATEGORY_HARDWARE)
@@ -1136,9 +1136,12 @@ kiran_tray_notify_icon_added(KiranTrayManager *manager,
gtk_widget_set_name(GTK_WIDGET(icon), "iconWinButton");
- gtk_box_pack_start(GTK_BOX(tray), GTK_WIDGET(icon), FALSE, TRUE, 0);
- kiran_tray_icons_refresh(tray);
-
+ if (type != ICON_NOT_SHOW)
+ {
+ gtk_box_pack_start(GTK_BOX(tray), GTK_WIDGET(icon), FALSE, TRUE, 0);
+ kiran_tray_icons_refresh(tray);
+ }
+
/*
if (type == ICON_SHOW_IN_PANEL)
{
@@ -1186,6 +1189,12 @@ kiran_tray_notify_icon_removed(KiranTrayManager *manager,
id = kiran_notify_icon_get_id(icon);
type = kiran_tray_get_icon_type(priv->settings, id);
+ if(type != ICON_NOT_SHOW)
+ {
+ gtk_container_remove(GTK_CONTAINER(tray), GTK_WIDGET(icon));
+ }
+
+ /*
if (type == ICON_SHOW_IN_PANEL)
{
gtk_container_remove(GTK_CONTAINER(tray), GTK_WIDGET(icon));
@@ -1203,6 +1212,7 @@ kiran_tray_notify_icon_removed(KiranTrayManager *manager,
position_notify_icon_window(tray, FALSE);
}
+ */
priv->icons = g_slist_remove(priv->icons, icon);
}
--
2.33.0

View File

@ -0,0 +1,126 @@
From 85fd4546c3b2cdfb4e29e78366b375f4964abd70 Mon Sep 17 00:00:00 2001
From: luoqing <luoqing@kylinsec.com.cn>
Date: Mon, 8 Jan 2024 09:40:13 +0800
Subject: [PATCH 3/5] fix(tray):Fixed an issue where the x11 tray icon did not
match the size of the icon container, causing the tray icon to display
abnormally
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复x11托盘图标高度与图标容器的高度不匹配导致的托盘图标显示异常的问题
Related #22117
---
src/tray/kiran-tray.c | 56 +++++++++++++++++++++++++++++++++-
src/tray/kiran-x11-tray-icon.h | 2 +-
2 files changed, 56 insertions(+), 2 deletions(-)
diff --git a/src/tray/kiran-tray.c b/src/tray/kiran-tray.c
index 9f7a236..9744ccc 100644
--- a/src/tray/kiran-tray.c
+++ b/src/tray/kiran-tray.c
@@ -29,6 +29,7 @@
#include "kiran-x11-tray-manager.h"
#include "kiran-x11-tray-socket.h"
#include "tray-i.h"
+#include "kiran-x11-tray-icon.h"
#define ROOT_NODE_NAME "apps"
#define APP_NODE_NAME "app"
@@ -1035,6 +1036,32 @@ get_widget_geometry(GtkWidget *widget)
return data;
}
+void kiran_tray_resize_x11_icon_window(GdkDisplay *display,Window icon_window,GtkWidget *widget)
+{
+ XWindowAttributes window_attributes;
+ Status status = XGetWindowAttributes(GDK_DISPLAY_XDISPLAY(display),icon_window,&window_attributes);
+ if(status == 0)
+ {
+ g_info("get window attributes failed");
+ return;
+ }
+ g_debug("window attributes: widget: %d, height:%d ",window_attributes.width , window_attributes.height);
+
+ GtkAllocation icon_allocation;
+ gtk_widget_get_allocation(widget, &icon_allocation);
+ g_debug("icon container allocation height:%d",icon_allocation.height);
+
+ /**
+ * 这里只将window的高与图标容器的高保持一致暂不限制window的宽 (#22117)
+ */
+ if(window_attributes.height != icon_allocation.height)
+ {
+ g_debug("resize X window");
+ XResizeWindow(GDK_DISPLAY_XDISPLAY(display),icon_window,window_attributes.width,icon_allocation.height);
+ XFlush(GDK_DISPLAY_XDISPLAY(display));
+ }
+}
+
static void
icon_size_allocate_callback(GtkWidget *widget,
GdkRectangle *allocation,
@@ -1043,6 +1070,7 @@ icon_size_allocate_callback(GtkWidget *widget,
KiranTray *tray;
KiranTrayPrivate *priv;
gchar *geometry;
+ const char *id;
if (!gtk_widget_is_visible(widget))
return;
@@ -1051,11 +1079,37 @@ icon_size_allocate_callback(GtkWidget *widget,
priv = tray->priv;
geometry = get_widget_geometry(widget);
+
+ id = kiran_notify_icon_get_id(KIRAN_NOTIFY_ICON(widget));
+ g_debug("icon size allocate changed: id:%s, %s",id ? id : "NULL",geometry);
+
kiran_sn_manager_gen_emit_geometry_changed(KIRAN_SN_MANAGER_GEN(priv->skeleton),
kiran_notify_icon_get_id(KIRAN_NOTIFY_ICON(widget)),
geometry);
-
g_free(geometry);
+
+ if(KIRAN_IS_X11_TRAY_ICON(KIRAN_X11_TRAY_ICON(widget)))
+ {
+ Window icon_window;
+ icon_window = kiran_x11_tray_icon_get_icon_window(KIRAN_X11_TRAY_ICON(widget));
+ g_debug("%s is x11 tray icon, window id : %d",id ? id : "NULL",icon_window);
+
+ if(!icon_window)
+ {
+ return;
+ }
+
+ GdkDisplay *display;
+ GdkScreen *screen;
+ screen = gtk_widget_get_screen(GTK_WIDGET(user_data));
+ display = gdk_screen_get_display(screen);
+
+ gdk_x11_display_error_trap_push(display);
+
+ kiran_tray_resize_x11_icon_window(display,icon_window,widget);
+
+ gdk_x11_display_error_trap_pop(display);
+ }
}
static gboolean
diff --git a/src/tray/kiran-x11-tray-icon.h b/src/tray/kiran-x11-tray-icon.h
index dfeb1d9..544485c 100644
--- a/src/tray/kiran-x11-tray-icon.h
+++ b/src/tray/kiran-x11-tray-icon.h
@@ -23,7 +23,7 @@ G_BEGIN_DECLS
#define KIRAN_TYPE_X11_TRAY_ICON (kiran_x11_tray_icon_get_type())
#define KIRAN_X11_TRAY_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), KIRAN_TYPE_X11_TRAY_ICON, KiranX11TrayIcon))
#define KIRAN_X11_TRAY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), KIRAN_TYPE_X11_TRAY_ICON, KiranX11TrayIconClass))
-#define KIRAN_IS_X11_TRAY_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KIRAN_TYPE_X11_TRAY_ICON)
+#define KIRAN_IS_X11_TRAY_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KIRAN_TYPE_X11_TRAY_ICON))
#define KIRAN_IS_X11_TRAY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), KIRAN_TYPE_X11_TRAY_ICON))
#define KIRAN_X11_TRAY_CION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), KIRAN_TYPE_X11_TRAY_ICON, KiranX11TrayIconClass))
--
2.27.0

View File

@ -0,0 +1,46 @@
From 05b478aa0b743794d3858c2c195574a09ba4075b Mon Sep 17 00:00:00 2001
From: yangfeng <yangfeng@kylinsec.com.cn>
Date: Mon, 8 Jan 2024 15:34:48 +0800
Subject: [PATCH 4/5] fix(common):Fix Pinyin search failed when
/etc/locale.conf is not LANG="zh_CN.UTF-8"
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复当 /etc/locale.conf 不是 LANG="zh_CN.UTF-8" 时,拼音搜索失败
Related #21369
---
lib/common.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/lib/common.cpp b/lib/common.cpp
index a2f8567..bcd0890 100644
--- a/lib/common.cpp
+++ b/lib/common.cpp
@@ -53,6 +53,12 @@ convert_chars_to_wchars(const std::string &contents)
size_t mbs_len;
wchar_t *wcs;
+ // mbstowcs 依赖全局 locale && GTK+中只认 UTF-8
+ // 当 /etc/locale.conf 为 zh_CN.utf8 时,结果正常; 当为 zh_CN.GB18030 时,结果不正常
+ // 所以此处需要设置为 utf-8
+ std::string prev_loc = std::setlocale(LC_CTYPE, nullptr);
+ setlocale(LC_CTYPE, "C.utf8");
+
mbs_len = mbstowcs(NULL, contents.c_str(), 0);
if (mbs_len == (size_t)-1)
{
@@ -70,6 +76,9 @@ convert_chars_to_wchars(const std::string &contents)
free(wcs);
return NULL;
}
+
+ // 还原
+ std::setlocale(LC_CTYPE, prev_loc.c_str());
return wcs;
}
--
2.27.0

View File

@ -0,0 +1,32 @@
From ce754635ffdfa8469db8214607a61c7bff840d96 Mon Sep 17 00:00:00 2001
From: yangfeng <yangfeng@kylinsec.com.cn>
Date: Tue, 16 Jan 2024 09:20:16 +0800
Subject: [PATCH 5/5] feat(menu): Replace "mate-panel --run-dialog" with
"kiran-panel --run-dialog"
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 使用“kiran-panel --run-dialog”替换“mate-panel --run-dialog”
- Related #24810
---
src/menu/menu-applet-window.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/menu/menu-applet-window.cpp b/src/menu/menu-applet-window.cpp
index f495bb4..fdaea92 100644
--- a/src/menu/menu-applet-window.cpp
+++ b/src/menu/menu-applet-window.cpp
@@ -675,7 +675,7 @@ void MenuAppletWindow::add_sidebar_buttons()
launcher_btn = create_launcher_button("kiran-menu-run-symbolic",
_("Run"),
- "mate-panel --run-dialog");
+ "kiran-panel --run-dialog");
side_box->add(*launcher_btn);
launcher_btn = create_launcher_button("kiran-menu-search-files-symbolic",
--
2.27.0

View File

@ -0,0 +1,33 @@
From b4328f5e462cae744a74ed968088fc4118d46aab Mon Sep 17 00:00:00 2001
From: youzhengcai <youzhengcai@kylinsec.com.cn>
Date: Fri, 19 Jan 2024 18:08:57 +0800
Subject: [PATCH 1006/1008] fix(menu):Fixed the issue where the taskbar close
window used the wrong timestamp.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复了任务栏关闭窗口函数使用了错误的时间戳问题
Related #26368
---
lib/window.cpp | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/lib/window.cpp b/lib/window.cpp
index 4a9d844..eaf2211 100644
--- a/lib/window.cpp
+++ b/lib/window.cpp
@@ -483,8 +483,7 @@ void Window::close()
KLOG_PROFILE("xid: %" PRIu64 ", name: %s.", this->get_xid(), this->get_name().c_str());
g_return_if_fail(this->wnck_window_ != nullptr);
- uint64_t now = Glib::DateTime::create_now_local().to_unix();
- wnck_window_close(this->wnck_window_, now);
+ wnck_window_close(this->wnck_window_, gtk_get_current_event_time());
}
WindowGeometry Window::get_geometry()
--
2.27.0

View File

@ -0,0 +1,48 @@
From 4c1ef83abc019a7ae1e39dde6f450fe2bef4e1e2 Mon Sep 17 00:00:00 2001
From: yangfeng <yangfeng@kylinsec.com.cn>
Date: Thu, 1 Feb 2024 15:37:15 +0800
Subject: [PATCH 1007/1008] fix(menu-applet-button):Fix win key popup Start
menu does not get focus, can not directly keyboard operation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复win键弹出开始菜单没有获得焦点无法直接键盘操作
Related #21246
---
src/menu/menu-applet-button.cpp | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/menu/menu-applet-button.cpp b/src/menu/menu-applet-button.cpp
index d2cd311..7b1b013 100644
--- a/src/menu/menu-applet-button.cpp
+++ b/src/menu/menu-applet-button.cpp
@@ -13,6 +13,7 @@
*/
#include "menu-applet-button.h"
+#include <gdk/gdkx.h>
#include <glibmm/i18n.h>
#include "kiran-helper.h"
#include "lib/base.h"
@@ -44,8 +45,14 @@ void MenuAppletButton::on_toggled()
{
if (this->get_active())
{
- // This may mean raising the window in the stacking order, deiconifying it, moving it to the current desktop,
- // and/or giving it the keyboard focus, possibly dependent on the users platform, window manager, and preferences.
+ window.show(); // 必须要先show,get_window才有值
+ auto gdk_window = window.get_window();
+ GdkWindow *gdk_x11_window = gdk_window->gobj();
+
+ // 当通过win快捷键触发时gtk_get_current_event_time 值为0
+ guint32 server_time = gdk_x11_get_server_time(gdk_x11_window);
+
+ gdk_x11_window_set_user_time(gdk_x11_window, server_time);
window.present();
}
else
--
2.27.0

View File

@ -0,0 +1,47 @@
From 0de2a19f3935fd25dffc7e6b4931bb5c4a377d6a Mon Sep 17 00:00:00 2001
From: luoqing <luoqing@kylinsec.com.cn>
Date: Tue, 27 Feb 2024 11:06:34 +0800
Subject: [PATCH 1008/1008] fix(tray):when resize icon window, it is necessary
to consider the impact of the scale factor.The correct resize height is the
height of the container multiplied by the scale factor of the container.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 在resize icon window时,需要考虑缩放率的影响,正确的resize高度为容器的高乘以容器的缩放率
Close #30889
---
src/tray/kiran-tray.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/tray/kiran-tray.c b/src/tray/kiran-tray.c
index 9744ccc..fc361d8 100644
--- a/src/tray/kiran-tray.c
+++ b/src/tray/kiran-tray.c
@@ -1049,15 +1049,19 @@ void kiran_tray_resize_x11_icon_window(GdkDisplay *display,Window icon_window,Gt
GtkAllocation icon_allocation;
gtk_widget_get_allocation(widget, &icon_allocation);
- g_debug("icon container allocation height:%d",icon_allocation.height);
+ int scale = gtk_widget_get_scale_factor(widget);
+ g_debug("icon container allocation height:%d , scale:%d",icon_allocation.height, scale);
/**
+ * NOTE:
* 这里只将window的高与图标容器的高保持一致暂不限制window的宽 (#22117)
+ * 匹配window的高和容器的高时需要考虑缩放率的影响。
+ * 例如缩放率设置为200%在X协议层会对icon window的高度进行缩放 ,但是icon container容器高度没有变化
*/
- if(window_attributes.height != icon_allocation.height)
+ if(window_attributes.height != (icon_allocation.height * scale))
{
g_debug("resize X window");
- XResizeWindow(GDK_DISPLAY_XDISPLAY(display),icon_window,window_attributes.width,icon_allocation.height);
+ XResizeWindow(GDK_DISPLAY_XDISPLAY(display),icon_window,window_attributes.width,icon_allocation.height * scale);
XFlush(GDK_DISPLAY_XDISPLAY(display));
}
}
--
2.27.0

View File

@ -0,0 +1,109 @@
From dacd31dd59799269e06334ee1e238c8c0d4d2b47 Mon Sep 17 00:00:00 2001
From: yangfeng <yangfeng@kylinsec.com.cn>
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 @@
}
</style>
</defs>
- <path id="形状_1_拷贝" data-name="形状 1 拷贝" class="cls-1" d="M1556,1063l-5,4.46-5-4.46v1.54l5,4.46,5-4.46V1063Z" transform="translate(-1543 -1058)"/>
+ <path id="icon_arrow" class="cls-1" d="M5831,327.994l8,8.122,8-8.122v1.889l-8,8.122-8-8.122v-1.889Z" transform="translate(-5831 -325)"/>
</svg>
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 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
- <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: #fff;
- fill-rule: evenodd;
- }
- </style>
- </defs>
- <path id="形状_1" data-name="形状 1" class="cls-1" d="M1556,1050l-5-4.46-5,4.46v-1.54l5-4.46,5,4.46V1050Z" transform="translate(-1543 -1039)"/>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:#FFFFFF;}
+</style>
+<path id="icon_arrow" class="st0" d="M0,11.1L8,3l8,8.1V13L8,4.9L0,13L0,11.1z"/>
+<path id="icon_arrow_1_" class="st0" d="M16,13L8,4.9L0,13l0-1.9L8,3l8,8.1V13z"/>
</svg>
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<TasklistPagingButton>(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<Gtk::Image>();
+ image->set(pixbuf);
+ button->set_image(*image);
+ button->set_size_request(30, -1);
button->set_tooltip_text(tooltip_text);
return button;
--
2.27.0

View File

@ -0,0 +1,176 @@
From e87333e61da73cb79f44697aa7a62207dea78ebc Mon Sep 17 00:00:00 2001
From: yangfeng <yangfeng@kylinsec.com.cn>
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 @@
}
</style>
</defs>
- <path id="icon_arrow" class="cls-1" d="M5831,327.994l8,8.122,8-8.122v1.889l-8,8.122-8-8.122v-1.889Z" transform="translate(-5831 -325)"/>
+ <path id="下箭头" class="cls-1" d="M2309,1231l-5,4.87-5-4.87v1.13l5,4.87,5-4.87V1231Z" transform="translate(-2296 -1226)"/>
</svg>
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 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
-<style type="text/css">
- .st0{fill:#FFFFFF;}
-</style>
-<path id="icon_arrow" class="st0" d="M0,11.1L8,3l8,8.1V13L8,4.9L0,13L0,11.1z"/>
-<path id="icon_arrow_1_" class="st0" d="M16,13L8,4.9L0,13l0-1.9L8,3l8,8.1V13z"/>
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+ <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: #fff;
+ fill-rule: evenodd;
+ }
+ </style>
+ </defs>
+ <path id="上箭头" class="cls-1" d="M2325,1237l-5-4.87-5,4.87v-1.13l5-4.87,5,4.87V1237Z" transform="translate(-2312 -1226)"/>
</svg>
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<TasklistPagingButton>(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<Gtk::Image>();
- 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

View File

@ -0,0 +1,92 @@
From e5403df890ccfc0ea8790c6596714a643a6ea573 Mon Sep 17 00:00:00 2001
From: yangfeng <yangfeng@kylinsec.com.cn>
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<Cairo::Context> &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<Gdk::Pixbuf> 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

View File

@ -0,0 +1,32 @@
From 0e0899576d7a03b53ef7189d641b54850c9f0fca Mon Sep 17 00:00:00 2001
From: yangfeng <yangfeng@kylinsec.com.cn>
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

View File

@ -0,0 +1,30 @@
From 2dc0271b00d00acdae3db2778162949c67615d37 Mon Sep 17 00:00:00 2001
From: yangfeng <yangfeng@kylinsec.com.cn>
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

View File

@ -0,0 +1,49 @@
From 1acb0598eb7b85e02e822c1b85771607b2b8c6f4 Mon Sep 17 00:00:00 2001
From: yangfeng <yangfeng@kylinsec.com.cn>
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<Gdk::DragContext> &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<Gdk::DragContext> &context, Gtk::SelectionData &selection, guint info, guint timestamp)
--
2.27.0

Binary file not shown.

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

Binary file not shown.

View File

@ -1,14 +1,26 @@
Name: kiran-menu Name: kiran-menu
Version: 2.5.1 Version: 2.6.0
Release: 3 Release: 4
Summary: Applets for mate panel from Kiran Desktop Summary: Applets for mate panel from Kiran Desktop
License: MulanPSL-2.0 License: MulanPSL-2.0
Source0: %{name}-%{version}.tar.gz Source0: %{name}-%{version}.tar.gz
Patch0001: 0001-fix-coredump-Fix-crash-when-clicking-on-the-power-op.patch Patch1000: 0000-fix-tasklist-app-button-Fix-touch-screen-taskbar-but.patch
Patch0002: 0002-fix-tray-Place-all-tray-icons-in-the-panel-and-no-lo.patch Patch1001: 0001-feature-menu-Other-workspace-Windows-are-not-display.patch
Patch0003: 0003-fix-tray-Fixed-a-crash-issue-that-occurred-when-the-.patch Patch1002: 0002-fix-recent-files-list-box-Fixed-an-issue-where-recen.patch
Patch1003: 0003-fix-tray-Fixed-an-issue-where-the-x11-tray-icon-did-.patch
Patch1004: 0004-fix-common-Fix-Pinyin-search-failed-when-etc-locale..patch
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: cmake > 3.0
BuildRequires: gcc-c++ BuildRequires: gcc-c++
@ -100,12 +112,32 @@ gtk-update-icon-cache -f /usr/share/icons/hicolor/
%changelog %changelog
* Fri Sep 01 2023 luoqing <luoqing@kylinsec.com.cn> - 2.5.1-3 * Tue Apr 09 2024 yangfeng <yangfeng@kylinsec.com.cn> - 2.6.0-4
- KYOS-F: Place all tray icons in the panel and no longer in the tray container for the time being (#12490) - KYOS-B: Fixed an issue where taskbar page-turning ICONS cover each other(#19588)
- KYOS-F: Fixed a crash issue that occurred when the tray icon was removed from the tray area (#14004) - 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)
* Fri Jun 30 2023 huangjiawen <huangjiawen@kylinsec.com.cn> - 2.5.1-2 * Tue Mar 05 2024 luoqing <luoqing@kylinsec.com.cn> - 2.6.0-3
- KYOS-F: Fix crash when clicking on the power option button in vnc. - 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)
- KYOS-B: :when resize icon window, it is necessary to consider the impact of the scale factor.The correct resize height is the height of the container multiplied by the scale factor of the container (#30889)
* Thu Jan 18 2024 yangfeng <yangfeng@kylinsec.com.cn> - 2.6.0-2
- KYOS-B: Fix touch screen taskbar button click judged as drag.(#23600)
- KYOS-F: Other workspace Windows are not displayed by default.
- KYOS-B: Fixed an issue where recent documents were not sorted.(#24803)
- KYOS-B: Fixed an issue where the x11 tray icon did not match the size of the icon container, causing the tray icon to display abnormally.(#22117)
- KYOS-B: Fix Pinyin search failed when /etc/locale.conf is not LANG="zh_CN.UTF-8".(#21369)
- KYOS-F: Replace "mate-panel --run-dialog" with "kiran-panel --run-dialog".(#24810)
* Wed Dec 06 2023 liuxinhao <liuxinhao@kylinsec.com.cn> - 2.6.0-1.kb1
- release 2.6,new start menu icon
* Thu May 11 2023 kpkg <kpkg.kylinsec.com.cn> - 2.5.1-1.kb1
- rebuild for KiranUI-2.5-next
* Wed May 10 2023 tangjie02 <tangjie02@kylinsec.com.cn> - 2.5.1-1 * Wed May 10 2023 tangjie02 <tangjie02@kylinsec.com.cn> - 2.5.1-1
- KYOS-F: replace suspend/hibernate/shutdown api with SessionManager. - KYOS-F: replace suspend/hibernate/shutdown api with SessionManager.