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.Panel as Panel
import qualified Phi.Widget as Widget
import Phi.Widget (Widget)
import Phi.Widget hiding (Display, handleMessage)
import Phi.X11.Atoms
import qualified Phi.Bindings.Util as Util
@ -110,10 +110,11 @@ runPhi xconfig config widget = do
dispmvar <- liftIO $ newMVar disp
let screenPanels = zip screens panelWindows
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
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
setPanelProperties disp panel