From c7ce0b5486ee9445cc26559818dd41b00b243c7c Mon Sep 17 00:00:00 2001 From: Spencer Janssen Date: Fri, 10 Aug 2007 23:39:40 +0200 Subject: Cleanup darcs-hash:20070810213940-a5988-7baa041cdf9a07038cb36645f314eb48bb8423aa.gz --- Operations.hs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'Operations.hs') diff --git a/Operations.hs b/Operations.hs index c8a9d7a..3e2a561 100644 --- a/Operations.hs +++ b/Operations.hs @@ -511,14 +511,17 @@ mouseDrag :: (Position -> Position -> X ()) -> X () -> X () mouseDrag f done = do drag <- gets dragging case drag of - Just _ -> return () -- error case? we're already dragging - Nothing -> do XConf { theRoot = root, display = d } <- ask - io $ grabPointer d root False (buttonReleaseMask .|. pointerMotionMask) - grabModeAsync grabModeAsync none none currentTime - let cleanup = do io $ ungrabPointer d currentTime - modify $ \s -> s { dragging = Nothing } - done - modify $ \s -> s { dragging = Just (f, cleanup) } + Just _ -> return () -- error case? we're already dragging + Nothing -> do + XConf { theRoot = root, display = d } <- ask + io $ grabPointer d root False (buttonReleaseMask .|. pointerMotionMask) + grabModeAsync grabModeAsync none none currentTime + modify $ \s -> s { dragging = Just (f, cleanup) } + where + cleanup = do + withDisplay $ io . flip ungrabPointer currentTime + modify $ \s -> s { dragging = Nothing } + done mouseMoveWindow :: Window -> X () mouseMoveWindow w = whenX (isClient w) $ withDisplay $ \d -> do -- cgit v1.2.3