aboutsummaryrefslogtreecommitdiff
path: root/swaybar/tray
diff options
context:
space:
mode:
Diffstat (limited to 'swaybar/tray')
-rw-r--r--swaybar/tray/item.c5
-rw-r--r--swaybar/tray/watcher.c6
2 files changed, 6 insertions, 5 deletions
diff --git a/swaybar/tray/item.c b/swaybar/tray/item.c
index ca6c03ad..12929743 100644
--- a/swaybar/tray/item.c
+++ b/swaybar/tray/item.c
@@ -15,6 +15,7 @@
#include "cairo_util.h"
#include "list.h"
#include "log.h"
+#include "stringop.h"
#include "wlr-layer-shell-unstable-v1-client-protocol.h"
// TODO menu
@@ -161,7 +162,7 @@ static int get_property_callback(sd_bus_message *msg, void *data,
}
if (strcmp(prop, "Status") == 0 || (sni->status && (sni->status[0] == 'N' ?
- prop[0] == 'A' : strncmp(prop, "Icon", 4) == 0))) {
+ prop[0] == 'A' : has_prefix(prop, "Icon")))) {
set_sni_dirty(sni);
}
cleanup:
@@ -364,7 +365,7 @@ static void handle_click(struct swaybar_sni *sni, int x, int y,
method = "ContextMenu";
}
- if (strncmp(method, "Scroll", strlen("Scroll")) == 0) {
+ if (has_prefix(method, "Scroll")) {
char dir = method[strlen("Scroll")];
char *orientation = (dir == 'U' || dir == 'D') ? "vertical" : "horizontal";
int sign = (dir == 'U' || dir == 'L') ? -1 : 1;
diff --git a/swaybar/tray/watcher.c b/swaybar/tray/watcher.c
index 54f000bd..28496403 100644
--- a/swaybar/tray/watcher.c
+++ b/swaybar/tray/watcher.c
@@ -31,9 +31,9 @@ static int handle_lost_service(sd_bus_message *msg,
struct swaybar_watcher *watcher = data;
for (int idx = 0; idx < watcher->items->length; ++idx) {
char *id = watcher->items->items[idx];
- int cmp_res = using_standard_protocol(watcher) ?
- cmp_id(id, service) : strncmp(id, service, strlen(service));
- if (cmp_res == 0) {
+ bool cmp_res = using_standard_protocol(watcher) ?
+ cmp_id(id, service) == 0 : has_prefix(id, service);
+ if (cmp_res) {
sway_log(SWAY_DEBUG, "Unregistering Status Notifier Item '%s'", id);
list_del(watcher->items, idx--);
sd_bus_emit_signal(watcher->bus, obj_path, watcher->interface,