From 4866f2e367dfcf22a9591231ba40948826a1b438 Mon Sep 17 00:00:00 2001 From: Spencer Janssen Date: Thu, 1 Nov 2007 21:10:59 +0100 Subject: Hierarchify darcs-hash:20071101201059-a5988-fc1f1262bec1b69e13ba18ae7cefeafc8c4471d4.gz --- FlexibleResize.hs | 67 ------------------------------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 FlexibleResize.hs (limited to 'FlexibleResize.hs') diff --git a/FlexibleResize.hs b/FlexibleResize.hs deleted file mode 100644 index e6bb338..0000000 --- a/FlexibleResize.hs +++ /dev/null @@ -1,67 +0,0 @@ ------------------------------------------------------------------------------ --- | --- Module : XMonadContrib.FlexibleResize --- Copyright : (c) Lukas Mai --- License : BSD3-style (see LICENSE) --- --- Maintainer : --- Stability : unstable --- Portability : unportable --- --- Lets you resize floating windows from any corner. --- ------------------------------------------------------------------------------ - -module XMonadContrib.FlexibleResize ( - -- * Usage - -- $usage - XMonadContrib.FlexibleResize.mouseResizeWindow -) where - -import XMonad -import XMonad.Operations -import Graphics.X11.Xlib -import Graphics.X11.Xlib.Extras -import Foreign.C.Types - --- $usage --- Put something like this in your Config.hs file: --- --- > import qualified XMonadContrib.FlexibleResize as Flex --- > mouseBindings = M.fromList --- > [ ... --- > , ((modMask, button3), (\w -> focus w >> Flex.mouseResizeWindow w)) ] - --- %import qualified XMonadContrib.FlexibleResize as Flex --- %mousebind , ((modMask, button3), (\\w -> focus w >> Flex.mouseResizeWindow w)) - -mouseResizeWindow :: Window -> X () -mouseResizeWindow w = whenX (isClient w) $ withDisplay $ \d -> do - io $ raiseWindow d w - wa <- io $ getWindowAttributes d w - sh <- io $ getWMNormalHints d w - (_, _, _, _, _, ix, iy, _) <- io $ queryPointer d w - let - [pos_x, pos_y, width, height] = map (fromIntegral . ($ wa)) [wa_x, wa_y, wa_width, wa_height] - west = firstHalf ix width - north = firstHalf iy height - (cx, fx, gx) = mkSel west width pos_x - (cy, fy, gy) = mkSel north height pos_y - io $ warpPointer d none w 0 0 0 0 cx cy - mouseDrag (\ex ey -> do - wa' <- io $ getWindowAttributes d w - let [px, py] = map (fromIntegral . ($ wa')) [wa_x, wa_y] - io $ moveResizeWindow d w (fx px (fromIntegral ex)) - (fy py (fromIntegral ey)) - `uncurry` applySizeHints sh (gx $ fromIntegral ex, gy $ fromIntegral ey)) - (float w) - where - firstHalf :: CInt -> Position -> Bool - firstHalf a b = fromIntegral a * 2 <= b - cfst = curry fst - csnd = curry snd - mkSel :: Bool -> Position -> Position -> (Position, a -> a -> a, CInt -> Position) - mkSel b k p = - if b - then (0, csnd, ((k + p) -) . fromIntegral) - else (k, cfst, subtract p . fromIntegral) -- cgit v1.2.3