diff options
Diffstat (limited to 'desktop')
| -rw-r--r-- | desktop/island/Logic.js | 4 | ||||
| -rw-r--r-- | desktop/island/test_logic.js | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/desktop/island/Logic.js b/desktop/island/Logic.js index 8df35de..e79625c 100644 --- a/desktop/island/Logic.js +++ b/desktop/island/Logic.js @@ -13,7 +13,9 @@ // The default sink's icon name. Thresholds in thirds, as waybar's wb-icon did. function volumeIcon(volume, muted) { - if (muted || volume <= 0) return "audio-volume-muted"; + // !(> 0) also catches a volume not populated yet (undefined, NaN), which + // would otherwise fall through every test and read as high. + if (muted || !(volume > 0)) return "audio-volume-muted"; if (volume < 0.33) return "audio-volume-low"; if (volume < 0.66) return "audio-volume-medium"; return "audio-volume-high"; diff --git a/desktop/island/test_logic.js b/desktop/island/test_logic.js index 44e7a73..5932991 100644 --- a/desktop/island/test_logic.js +++ b/desktop/island/test_logic.js @@ -14,6 +14,9 @@ const L = new Function(src + assert.strictEqual(L.volumeIcon(0.5, true), "audio-volume-muted"); assert.strictEqual(L.volumeIcon(0, false), "audio-volume-muted"); assert.strictEqual(L.volumeIcon(0.2, false), "audio-volume-low"); +assert.strictEqual(L.volumeIcon(undefined, false), "audio-volume-muted"); +assert.strictEqual(L.volumeIcon(NaN, false), "audio-volume-muted"); +assert.strictEqual(L.volumeIcon(0.33, false), "audio-volume-medium"); assert.strictEqual(L.volumeIcon(0.5, false), "audio-volume-medium"); assert.strictEqual(L.volumeIcon(0.66, false), "audio-volume-high"); assert.strictEqual(L.volumeIcon(1.2, false), "audio-volume-high"); |
