Skip to content

Commit ed5c8e5

Browse files
authored
optimize code (#1155)
* optimize icon acquisition logic to prepare for customizing icons for other desktop environments in the future
1 parent 7c21217 commit ed5c8e5

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

src/modules/notificationitem/notificationitem.cpp

+12-8
Original file line numberDiff line numberDiff line change
@@ -55,20 +55,24 @@ class StatusNotifierItem : public dbus::ObjectVTable<StatusNotifierItem> {
5555
}
5656
void activate(int, int) { parent_->instance()->toggle(); }
5757
void secondaryActivate(int, int) {}
58-
std::string iconName() {
59-
static bool preferSymbolic = !isKDE();
60-
std::string icon;
61-
if (preferSymbolic) {
62-
icon = "input-keyboard-symbolic";
58+
std::string keyboardIconName() const {
59+
if (isKDE()) {
60+
return "input-keyboard";
6361
} else {
64-
icon = "input-keyboard";
62+
return "input-keyboard-symbolic";
6563
}
64+
}
65+
std::string iconName() {
66+
std::string icon;
67+
6668
if (auto *ic = parent_->menu()->lastRelevantIc()) {
6769
icon = parent_->instance()->inputMethodIcon(ic);
6870
}
69-
if (icon == "input-keyboard" && preferSymbolic) {
70-
return "input-keyboard-symbolic";
71+
72+
if (icon.empty() || icon == "input-keyboard") {
73+
icon = keyboardIconName();
7174
}
75+
7276
return IconTheme::iconName(icon);
7377
}
7478

0 commit comments

Comments
 (0)