Skip to content

Commit 8ee07c3

Browse files
committed
Taskbar - Linux Fixes
1 parent 29214f3 commit 8ee07c3

File tree

2 files changed

+7
-17
lines changed

2 files changed

+7
-17
lines changed

include/taskbar/taskbaritem.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ namespace Nickvision::Taskbar
109109
CComPtr<ITaskbarList3> m_taskbar;
110110
ULONG_PTR m_gdi;
111111
#elif defined(__linux__)
112-
std::shared_ptr<GDBusConnection> m_connection;
112+
GDBusConnection* m_connection;
113113
std::string m_appUri;
114114
#endif
115115
};

src/taskbar/taskbaritem.cpp

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include "taskbar/taskbaritem.h"
2-
#include <array>
32
#include <limits>
43
#ifdef _WIN32
54
#include <dwmapi.h>
@@ -62,9 +61,8 @@ namespace Nickvision::Taskbar
6261
GVariant* params[2]{ g_variant_new_string(m_appUri.c_str()), g_variant_new_dict_entry(g_variant_new_string("progress-visible"), g_variant_new_boolean(m_progressState >= ProgressState::Normal)) };
6362
GVariant* tuple{ g_variant_new_tuple(params, 2) };
6463
g_dbus_message_set_body(message, tuple);
65-
g_dbus_connection_send_message(m_connection.get(), message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, nullptr, nullptr);
64+
g_dbus_connection_send_message(m_connection, message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, nullptr, nullptr);
6665
g_object_unref(G_OBJECT(message));
67-
g_object_unref(G_OBJECT(tuple));
6866
}
6967
#endif
7068
}
@@ -91,9 +89,8 @@ namespace Nickvision::Taskbar
9189
GVariant* params[2]{ g_variant_new_string(m_appUri.c_str()), g_variant_new_dict_entry(g_variant_new_string("progress"), g_variant_new_double(m_progress)) };
9290
GVariant* tuple{ g_variant_new_tuple(params, 2) };
9391
g_dbus_message_set_body(message, tuple);
94-
g_dbus_connection_send_message(m_connection.get(), message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, nullptr, nullptr);
92+
g_dbus_connection_send_message(m_connection, message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, nullptr, nullptr);
9593
g_object_unref(G_OBJECT(message));
96-
g_object_unref(G_OBJECT(tuple));
9794
}
9895
#endif
9996
lock.unlock();
@@ -128,9 +125,8 @@ namespace Nickvision::Taskbar
128125
GVariant* params[2]{ g_variant_new_string(m_appUri.c_str()), g_variant_new_dict_entry(g_variant_new_string("urgent"), g_variant_new_boolean(m_urgent)) };
129126
GVariant* tuple{ g_variant_new_tuple(params, 2) };
130127
g_dbus_message_set_body(message, tuple);
131-
g_dbus_connection_send_message(m_connection.get(), message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, nullptr, nullptr);
128+
g_dbus_connection_send_message(m_connection, message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, nullptr, nullptr);
132129
g_object_unref(G_OBJECT(message));
133-
g_object_unref(G_OBJECT(tuple));
134130
}
135131
#endif
136132
}
@@ -181,9 +177,8 @@ namespace Nickvision::Taskbar
181177
GVariant* params[2]{ g_variant_new_string(m_appUri.c_str()), g_variant_new_dict_entry(g_variant_new_string("count-visible"), g_variant_new_boolean(m_countVisible)) };
182178
GVariant* tuple{ g_variant_new_tuple(params, 2) };
183179
g_dbus_message_set_body(message, tuple);
184-
g_dbus_connection_send_message(m_connection.get(), message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, nullptr, nullptr);
180+
g_dbus_connection_send_message(m_connection, message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, nullptr, nullptr);
185181
g_object_unref(G_OBJECT(message));
186-
g_object_unref(G_OBJECT(tuple));
187182
}
188183
#endif
189184
}
@@ -205,9 +200,8 @@ namespace Nickvision::Taskbar
205200
GVariant* params[2]{ g_variant_new_string(m_appUri.c_str()), g_variant_new_dict_entry(g_variant_new_string("count"), g_variant_new_int64(m_count)) };
206201
GVariant* tuple{ g_variant_new_tuple(params, 2) };
207202
g_dbus_message_set_body(message, tuple);
208-
g_dbus_connection_send_message(m_connection.get(), message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, nullptr, nullptr);
203+
g_dbus_connection_send_message(m_connection, message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, nullptr, nullptr);
209204
g_object_unref(G_OBJECT(message));
210-
g_object_unref(G_OBJECT(tuple));
211205
}
212206
#endif
213207
lock.unlock();
@@ -245,11 +239,7 @@ namespace Nickvision::Taskbar
245239
{
246240
return false;
247241
}
248-
m_connection = { g_bus_get_sync(G_BUS_TYPE_SESSION, nullptr, nullptr), [](GDBusConnection* connection)
249-
{
250-
g_dbus_connection_close_sync(connection, nullptr, nullptr);
251-
g_object_unref(G_OBJECT(connection));
252-
}};
242+
m_connection = g_bus_get_sync(G_BUS_TYPE_SESSION, nullptr, nullptr); //returns a singleton, no need to manage it
253243
if (m_connection)
254244
{
255245
m_appUri = "application://" + desktopFile;

0 commit comments

Comments
 (0)