diff --git a/html/Ocean.std-theme/ocean.css b/html/Ocean.std-theme/ocean.css index 0baa14433bb80658926e8d8a2210448e5d73c0de..79f43834b38905e0e30036328a3f628c450dfa3a 100644 --- a/html/Ocean.std-theme/ocean.css +++ b/html/Ocean.std-theme/ocean.css @@ -125,10 +125,6 @@ ul.links li a { background-image: url(plus.gif); background-repeat: no-repeat; } -span.module.collapser, -span.module.expander { - background-position: 0 0.3em; -} p.caption.collapser, p.caption.expander { background-position: 0 0.4em; @@ -518,6 +514,11 @@ div#style-menu-holder { clear: right; } +#module-list span.collapser, +#module-list span.expander { + background-position: 0 0.3em; +} + #module-list .package { float: right; } diff --git a/src/Haddock/Backends/Xhtml.hs b/src/Haddock/Backends/Xhtml.hs index 8ea55e9b20a9e942ae2733483c12fba0c4362534..1ae8b12d7a21658884f2742a282a5f0139ad48a2 100644 --- a/src/Haddock/Backends/Xhtml.hs +++ b/src/Haddock/Backends/Xhtml.hs @@ -262,12 +262,19 @@ mkNode :: [String] -> String -> ModuleTree -> Html mkNode ss p (Node s leaf pkg short ts) = htmlModule +++ shortDescr +++ htmlPkg +++ subtree where - modAttrs = case ts of - [] -> [theclass "module"] - _ -> collapseControl p True "module" - - htmlModule = thespan ! modAttrs << - (if leaf + modAttrs = case (ts, leaf) of + (_:_, False) -> collapseControl p True "module" + (_, _ ) -> [theclass "module"] + + cBtn = case (ts, leaf) of + (_:_, True) -> thespan ! collapseControl p True "" << spaceHtml + (_, _ ) -> noHtml + -- We only need an explicit collapser button when the module name + -- is also a leaf, and so is a link to a module page. Indeed, the + -- spaceHtml is a minor hack and does upset the layout a fraction. + + htmlModule = thespan ! modAttrs << (cBtn +++ + if leaf then ppModule (mkModule (stringToPackageId (fromMaybe "" pkg)) (mkModuleName mdl)) else toHtml s