robot 1.0.1 → 1.0.1.1
raw patch · 3 files changed
+27/−9 lines, 3 files
Files
- Test/Robot/Internal.hs +8/−5
- Test/Robot/Internal/XTest.hs +18/−3
- robot.cabal +1/−1
Test/Robot/Internal.hs view
@@ -83,17 +83,20 @@ -- | @clipIntegral x :: T@ converts the value @x@ to type @T@. -- If the argument does not fit in @T@, it is clipped, rather than -- wrapping around as with 'fromIntegral'.------ The range of the result type must be a subset of the argument type.--- If not, the behavior of this function is undefined.--- clipIntegral :: (Integral a, Integral b, Ord a, Bounded b) => a -> b-clipIntegral x = result+clipIntegral = narrow . widen++widen :: Integral a => a -> Integer+widen = fromIntegral++narrow :: (Integral b, Bounded b) => Integer -> b+narrow x = result where result | x < fromIntegral (minBound `asTypeOf` result) = minBound | x > fromIntegral (maxBound `asTypeOf` result) = maxBound | otherwise = fromIntegral x+ -- | Release all the keys and buttons, in case some were left held down. -- This is called automatically before 'runRobot' returns.
Test/Robot/Internal/XTest.hs view
@@ -20,7 +20,7 @@ import Data.Map (Map) import qualified Data.Map as M import Data.Tuple (swap)-import Data.Word (Word16)+import Data.Int (Int16) import Graphics.XHB import Graphics.XHB.Gen.Test@@ -40,12 +40,27 @@ in fakeInput c req -motion :: Connection -> Bool -> (Word16, Word16) -> IO ()+motion :: Connection -> Bool -> (Int16, Int16) -> IO () motion c relative (x, y) = let eventType = 6 isRelative = if relative then 1 else 0- req = MkFakeInput eventType isRelative 0 noWindow x y 0+ req = MkFakeInput eventType isRelative 0 noWindow+ -- See note [fromIntegral]+ (fromIntegral x) (fromIntegral y) 0 in fakeInput c req++{-++Note [fromIntegral]+~~~~~~~~~~~~~~~~~~~++In xcb-proto < 1.7, the x and y coordinates are declared incorrectly as+Word16, instead of Int16 as they should be. As a temporary workaround,+we use fromIntegral to coerce the values.++See <http://cgit.freedesktop.org/~keithp/xcb-proto/commit/src/xtest.xml?id=f3ae971edce37ad96ef0b8a6059c1f853e88fcf3>++ -} noWindow :: WINDOW
robot.cabal view
@@ -1,5 +1,5 @@ Name: robot-Version: 1.0.1+Version: 1.0.1.1 Synopsis: Simulate keyboard and mouse events Homepage: https://github.com/lfairy/robot License: OtherLicense