Correctly handle widgets with zero weight

This commit is contained in:
Matthias Schiffer 2011-08-21 08:47:32 +02:00
parent 022783f4a7
commit ddca7c3ec5

View file

@ -30,7 +30,7 @@ import Phi.Phi
import qualified Phi.Types as Phi import qualified Phi.Types as Phi
import qualified Phi.Panel as Panel import qualified Phi.Panel as Panel
import qualified Phi.Widget as Widget import qualified Phi.Widget as Widget
import Phi.Widget (Widget) import Phi.Widget hiding (Display, handleMessage)
import Phi.X11.Atoms import Phi.X11.Atoms
import qualified Phi.Bindings.Util as Util import qualified Phi.Bindings.Util as Util
@ -110,10 +110,11 @@ runPhi xconfig config widget = do
dispmvar <- liftIO $ newMVar disp dispmvar <- liftIO $ newMVar disp
let screenPanels = zip screens panelWindows let screenPanels = zip screens panelWindows
dispvar = Widget.Display dispmvar atoms screenPanels dispvar = Widget.Display dispmvar atoms screenPanels
widgetState <- liftIO $ Widget.initWidget widget phi dispvar widget' = widget <~> separator 0 (if weight widget > 0 then 0 else 1)
widgetState <- liftIO $ Widget.initWidget widget' phi dispvar
Widget.withDisplay dispvar $ \disp -> do Widget.withDisplay dispvar $ \disp -> do
panels <- mapM (\(screen, window) -> createPanel disp window widget widgetState screen) screenPanels panels <- mapM (\(screen, window) -> createPanel disp window widget' widgetState screen) screenPanels
forM_ panels $ \panel -> do forM_ panels $ \panel -> do
setPanelProperties disp panel setPanelProperties disp panel