taffybar 7.0.0 → 7.0.1
raw patch · 6 files changed
+47/−13 lines, 6 filesdep ~gtk-sni-traydep ~status-notifier-itemPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: gtk-sni-tray, status-notifier-item
API changes (from Hackage documentation)
Files
- CHANGELOG.md +20/−1
- src/System/Taffybar/Widget/HyprlandLayout.hs +1/−2
- src/System/Taffybar/Widget/SNITray/PrioritizedCollapsible.hs +5/−1
- src/System/Taffybar/Widget/Workspaces.hs +1/−6
- taffybar.cabal +4/−3
- test/unit/System/Taffybar/Information/Workspaces/EWMHSpec.hs +16/−0
CHANGELOG.md view
@@ -1,5 +1,24 @@ # Unreleased +## Refactors++* Decouple layout and workspace/window information providers from widget+ rendering, and move shared workspace/window support helpers out of widget+ modules.++# 7.0.1++## Tray++* Avoid prioritized-collapsible tray rebuilds for overlay-icon, tooltip, and+ status-only updates that do not affect visible tray content.++## Packaging++* Require `gtk-sni-tray >= 0.2.1.1` and `status-notifier-item >= 0.3.2.13`+ so tray consumers pick up the host-side suppression of redundant no-op+ property update churn.+ # 7.0.0 ## Breaking Changes@@ -764,4 +783,4 @@ * Readable widget for freedesktop notifications * Fixed a few potential deadlocks on startup- * Use the GTK+ rc-file styling system for colors instead of hard coding them+ * Use the GTK+ rc-file styling system for colors instead
src/System/Taffybar/Widget/HyprlandLayout.hs view
@@ -35,8 +35,7 @@ import System.Log.Logger (Priority (..)) import System.Taffybar.Context import System.Taffybar.Hyprland- ( runHyprlandCommandJsonT,- runHyprlandCommandRawT,+ ( runHyprlandCommandRawT, ) import qualified System.Taffybar.Information.Hyprland as Hypr import System.Taffybar.Information.Layout.Hyprland
src/System/Taffybar/Widget/SNITray/PrioritizedCollapsible.hs view
@@ -966,7 +966,11 @@ case updateType of H.ItemAdded -> scheduleRefresh True True updateType H.ItemRemoved -> scheduleRefresh True True updateType- _ -> scheduleRefresh False False updateType+ H.IconUpdated -> scheduleRefresh False False updateType+ H.TitleUpdated -> scheduleRefresh False False updateType+ H.OverlayIconUpdated -> return ()+ H.ToolTipUpdated -> return ()+ H.StatusUpdated -> return () installUpdateHandler = do maybeHandlerId <- readIORef updateHandlerRef
src/System/Taffybar/Widget/Workspaces.hs view
@@ -56,12 +56,11 @@ import qualified Data.Map.Strict as M import qualified Data.Text as T import Data.Word (Word64)+import Data.Int (Int32) import qualified GI.Gdk.Enums as Gdk import qualified GI.Gdk.Structs.EventScroll as Gdk import qualified GI.GdkPixbuf.Objects.Pixbuf as Gdk import qualified GI.Gtk as Gtk-import Data.Int (Int32)-import System.Log.Logger (Priority (..), logM) import System.Taffybar.Context (Backend (..), TaffyIO, backend) import System.Taffybar.Information.EWMHDesktopInfo ( ewmhWMIcon,@@ -577,7 +576,3 @@ WorkspaceVisible -> Visible WorkspaceHidden -> Hidden WorkspaceEmpty -> Empty--wLog :: Priority -> String -> TaffyIO ()-wLog level message =- liftIO $ logM "System.Taffybar.Widget.Workspaces" level message
taffybar.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.4 name: taffybar-version: 7.0.0+version: 7.0.1 synopsis: A desktop bar similar to xmobar, but with more GUI license: BSD-3-Clause license-file: LICENSE@@ -87,7 +87,7 @@ , gi-gtk-hs >= 0.3.17 && < 0.4 , gi-pango , gtk-scaling-image >= 0.1.0.0 && < 0.2- , gtk-sni-tray >= 0.2.1.0+ , gtk-sni-tray >= 0.2.1.1 , gtk-strut >= 0.1.4.0 , haskell-gi-base >= 0.24 , hslogger@@ -104,7 +104,7 @@ , safe >= 0.3 && < 1 , scotty >= 0.20 && < 0.31 , split >= 0.1.4.2- , status-notifier-item >= 0.3.2.11+ , status-notifier-item >= 0.3.2.13 , stm , template-haskell , text@@ -374,6 +374,7 @@ , System.Taffybar.ContextSpec , System.Taffybar.Information.CryptoSpec , System.Taffybar.Information.LayoutSpec+ , System.Taffybar.Information.Workspaces.EWMHSpec , System.Taffybar.Information.X11DesktopInfoSpec , System.Taffybar.Information.WakeupSpec , System.Taffybar.SimpleConfigSpec
+ test/unit/System/Taffybar/Information/Workspaces/EWMHSpec.hs view
@@ -0,0 +1,16 @@+module System.Taffybar.Information.Workspaces.EWMHSpec (spec) where++import Data.List (elem)+import System.Taffybar.Information.Workspaces.EWMH+ ( defaultEWMHWorkspaceProviderConfig,+ workspaceUpdateEvents,+ )+import System.Taffybar.Information.X11DesktopInfo (xmonadVisibleWorkspaces)+import Test.Hspec++spec :: Spec+spec =+ describe "defaultEWMHWorkspaceProviderConfig" $+ it "subscribes to xmonad visible workspace updates" $+ xmonadVisibleWorkspaces `elem` workspaceUpdateEvents defaultEWMHWorkspaceProviderConfig+ `shouldBe` True