mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-08-09 08:21:51 -07:00
XMonad.Hooks.Minimize handles both minimize and restore messages. Handling restore messages was already done in RestoreMinimized, which this module intends to replace.
50 lines
1.6 KiB
Haskell
50 lines
1.6 KiB
Haskell
----------------------------------------------------------------------------
|
|
-- |
|
|
-- Module : XMonad.Hooks.RestoreMinimized
|
|
-- Copyright : (c) Jan Vornberger 2009
|
|
-- License : BSD3-style (see LICENSE)
|
|
--
|
|
-- Maintainer : jan.vornberger@informatik.uni-oldenburg.de
|
|
-- Stability : unstable
|
|
-- Portability : not portable
|
|
--
|
|
-- (Deprecated: Use XMonad.Hooks.Minimize) Lets you restore minimized
|
|
-- windows (see "XMonad.Layout.Minimize") by selecting them on a
|
|
-- taskbar (listens for _NET_ACTIVE_WINDOW and WM_CHANGE_STATE).
|
|
--
|
|
-----------------------------------------------------------------------------
|
|
|
|
module XMonad.Hooks.RestoreMinimized
|
|
( -- * Usage
|
|
-- $usage
|
|
RestoreMinimized (..)
|
|
, restoreMinimizedEventHook
|
|
) where
|
|
|
|
import Data.Monoid
|
|
import Control.Monad(when)
|
|
|
|
import XMonad
|
|
import XMonad.Layout.Minimize
|
|
|
|
-- $usage
|
|
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
|
--
|
|
-- > import XMonad.Hooks.RestoreMinimized
|
|
-- >
|
|
-- > myHandleEventHook = restoreMinimizedEventHook
|
|
-- >
|
|
-- > main = xmonad defaultConfig { handleEventHook = myHandleEventHook }
|
|
|
|
data RestoreMinimized = RestoreMinimized deriving ( Show, Read )
|
|
|
|
restoreMinimizedEventHook :: Event -> X All
|
|
restoreMinimizedEventHook (ClientMessageEvent {ev_window = w,
|
|
ev_message_type = mt}) = do
|
|
a_aw <- getAtom "_NET_ACTIVE_WINDOW"
|
|
a_cs <- getAtom "WM_CHANGE_STATE"
|
|
when (mt == a_aw || mt == a_cs) $ do
|
|
sendMessage (RestoreMinimizedWin w)
|
|
return (All True)
|
|
restoreMinimizedEventHook _ = return (All True)
|