From fffb52dd936b7e633996e1a506577c7409cef1fc Mon Sep 17 00:00:00 2001 From: jgmdev Date: Sun, 7 Feb 2021 00:50:52 -0400 Subject: [PATCH 1/3] [wlr/taskbar] Check StartupWMClass on list returned by g_desktop_app_info_searchi() --- src/modules/wlr/taskbar.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/modules/wlr/taskbar.cpp b/src/modules/wlr/taskbar.cpp index c2acbd9a..e91b19a7 100644 --- a/src/modules/wlr/taskbar.cpp +++ b/src/modules/wlr/taskbar.cpp @@ -137,8 +137,13 @@ static std::string get_from_desktop_app_info_search(const std::string &app_id) for (size_t i=0; desktop_list[0][i]; i++) { if(desktop_file == "") { desktop_file = desktop_list[0][i]; + } else { + auto tmp_info = Gio::DesktopAppInfo::create(desktop_list[0][i]); + auto startup_class = tmp_info->get_startup_wm_class(); + + if (startup_class == app_id) + desktop_file = desktop_list[0][i]; } - break; } g_strfreev(desktop_list[0]); } From f14a73584f4eeb1c2c761ba293ad616cb7020975 Mon Sep 17 00:00:00 2001 From: jgmdev Date: Sun, 7 Feb 2021 01:01:57 -0400 Subject: [PATCH 2/3] [wlr/taskbar] Added break when matching StartupWMClass is found. --- src/modules/wlr/taskbar.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/wlr/taskbar.cpp b/src/modules/wlr/taskbar.cpp index e91b19a7..08e8bf34 100644 --- a/src/modules/wlr/taskbar.cpp +++ b/src/modules/wlr/taskbar.cpp @@ -141,8 +141,10 @@ static std::string get_from_desktop_app_info_search(const std::string &app_id) auto tmp_info = Gio::DesktopAppInfo::create(desktop_list[0][i]); auto startup_class = tmp_info->get_startup_wm_class(); - if (startup_class == app_id) + if (startup_class == app_id) { desktop_file = desktop_list[0][i]; + break; + } } } g_strfreev(desktop_list[0]); From e4a65c72dd8d48a787f065ce330230c45b2e74cb Mon Sep 17 00:00:00 2001 From: jgmdev Date: Sun, 7 Feb 2021 04:27:16 -0400 Subject: [PATCH 3/3] Added missing 'if' space. --- src/modules/wlr/taskbar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/wlr/taskbar.cpp b/src/modules/wlr/taskbar.cpp index 08e8bf34..ef46f36a 100644 --- a/src/modules/wlr/taskbar.cpp +++ b/src/modules/wlr/taskbar.cpp @@ -135,7 +135,7 @@ static std::string get_from_desktop_app_info_search(const std::string &app_id) gchar*** desktop_list = g_desktop_app_info_search(app_id.c_str()); if (desktop_list != nullptr && desktop_list[0] != nullptr) { for (size_t i=0; desktop_list[0][i]; i++) { - if(desktop_file == "") { + if (desktop_file == "") { desktop_file = desktop_list[0][i]; } else { auto tmp_info = Gio::DesktopAppInfo::create(desktop_list[0][i]);