summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2011-07-18 12:44:55 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2011-07-18 12:44:55 +0200
commit4292cbce3e1f77bae0297cea20b2e3fe67f98121 (patch)
tree9f3d60f29b77fdde12ea31ffb6d370d31218c246
parent0b92eda1bbf0793360460c054607cc5cb8fd148e (diff)
downloadphi-4292cbce3e1f77bae0297cea20b2e3fe67f98121.tar
phi-4292cbce3e1f77bae0297cea20b2e3fe67f98121.zip
Don't change the ordering of the window list we get from _NET_CLIENT_LIST, as that is the order we tab through
-rw-r--r--lib/Phi/Widgets/Taskbar.hs17
-rw-r--r--src/Phi.hs2
2 files changed, 8 insertions, 11 deletions
diff --git a/lib/Phi/Widgets/Taskbar.hs b/lib/Phi/Widgets/Taskbar.hs
index 92c93e8..80a5cc7 100644
--- a/lib/Phi/Widgets/Taskbar.hs
+++ b/lib/Phi/Widgets/Taskbar.hs
@@ -317,7 +317,7 @@ taskbarRunner :: Phi -> Display -> IO ()
taskbarRunner phi dispvar = do
let screens = getScreens dispvar
(windows, states, icons, scaledIcons, windowScreens) <- liftIO $ withDisplay dispvar $ \disp -> do
- (windows, states, icons, scaledIcons, windowScreens) <- getWindowStates disp screens (getAtoms dispvar) [] M.empty M.empty M.empty M.empty
+ (windows, states, icons, scaledIcons, windowScreens) <- getWindowStates disp screens (getAtoms dispvar) M.empty M.empty M.empty M.empty
desktopCount <- getDesktopCount disp (getAtoms dispvar)
current <- getCurrentDesktop disp (getAtoms dispvar)
activeWindow <- getActiveWindow disp (getAtoms dispvar)
@@ -367,7 +367,7 @@ handleEvent phi dispvar XExtras.PropertyEvent {XExtras.ev_atom = atom, XExtras.e
sendMessage phi Repaint
when (atom == atom_NET_CLIENT_LIST atoms) $ do
(windows, windowStates, icons, scaledIcons, windowScreens) <- get
- (windows', windowStates', icons', scaledIcons', windowScreens') <- liftIO $ getWindowStates disp screens atoms windows windowStates icons scaledIcons windowScreens
+ (windows', windowStates', icons', scaledIcons', windowScreens') <- liftIO $ getWindowStates disp screens atoms windowStates icons scaledIcons windowScreens
when (windows /= windows') $ do
sendMessage phi $ WindowListUpdate windows' windowStates' icons' scaledIcons' windowScreens'
@@ -425,10 +425,10 @@ getActiveWindow :: Xlib.Display -> Atoms -> IO Window
getActiveWindow disp atoms =
liftM (fromIntegral . fromMaybe 0 . join . fmap listToMaybe) $ XExtras.getWindowProperty32 disp (atom_NET_ACTIVE_WINDOW atoms) $ Xlib.defaultRootWindow disp
-getWindowStates :: Xlib.Display -> [Xlib.Rectangle] -> Atoms -> [Window] -> M.Map Window WindowState -> M.Map Window [(Int, Surface)] -> M.Map Window (IORef (Maybe (Int, Surface))) -> M.Map Window Xlib.Rectangle
+getWindowStates :: Xlib.Display -> [Xlib.Rectangle] -> Atoms -> M.Map Window WindowState -> M.Map Window [(Int, Surface)] -> M.Map Window (IORef (Maybe (Int, Surface))) -> M.Map Window Xlib.Rectangle
-> IO ([Window], M.Map Window WindowState, M.Map Window [(Int, Surface)], M.Map Window (IORef (Maybe (Int, Surface))), M.Map Window Xlib.Rectangle)
-getWindowStates disp screens atoms oldWindows windowStates windowIcons windowScaledIcons windowScreens = do
- windows <- getWindowList disp atoms oldWindows
+getWindowStates disp screens atoms windowStates windowIcons windowScaledIcons windowScreens = do
+ windows <- getWindowList disp atoms
let windowStates' = map (\w -> (w, M.lookup w windowStates)) windows
windowIcons' = map (\w -> (w, M.lookup w windowIcons)) windows
@@ -543,11 +543,8 @@ showWindow disp atoms window = do
]
-getWindowList :: Xlib.Display -> Atoms -> [Window] -> IO [Window]
-getWindowList disp atoms windows = do
- newWindows <- liftM (map fromIntegral . join . maybeToList) $ XExtras.getWindowProperty32 disp (atom_NET_CLIENT_LIST atoms) $ Xlib.defaultRootWindow disp
- return $ (filter (flip elem newWindows) windows) ++ (filter (not . flip elem windows) newWindows)
-
+getWindowList :: Xlib.Display -> Atoms -> IO [Window]
+getWindowList disp atoms = liftM (map fromIntegral . join . maybeToList) $ XExtras.getWindowProperty32 disp (atom_NET_CLIENT_LIST atoms) $ Xlib.defaultRootWindow disp
taskbar :: TaskbarConfig -> Widget
taskbar config = do
diff --git a/src/Phi.hs b/src/Phi.hs
index e9bf43f..4749bde 100644
--- a/src/Phi.hs
+++ b/src/Phi.hs
@@ -41,7 +41,7 @@ main = do
}
- theTaskbar = taskbar defaultTaskbarConfig { normalTaskStyle = taskStyle {taskIconStyle = desaturateIconStyle 0.7}
+ theTaskbar = taskbar defaultTaskbarConfig { normalTaskStyle = taskStyle {taskIconStyle = desaturateIconStyle 0.6}
, activeTaskStyle = taskStyle {taskBorder = activeTaskBorder}
, desktopStyle = Just (normalDesktopStyle, currentDesktopStyle)
}