Age | Commit message (Collapse) | Author |
|
Using Typeables as the only constraint on layout messages is a bit
scary, as a user can send arbitrary values to layoutMsg, whether they
make sense or not: there's basically no type feedback on the values you
supply to layoutMsg.
Folloing Simon Marlow's dynamically extensible exceptions paper, we use
an existential type, and a Message type class, to constrain valid
arguments to layoutMsg to be valid members of Message.
That is, a user writes some data type for messages their layout
algorithm accepts:
data MyLayoutEvent = Zoom
| Explode
| Flaming3DGlassEffect
deriving (Typeable)
and they then add this to the set of valid message types:
instance Message MyLayoutEvent
Done. We also reimplement the dynamic type check while we're here, to
just directly use 'cast', rather than expose a raw fromDynamic/toDyn.
With this, I'm much happier about out dynamically extensible layout
event subsystem.
darcs-hash:20070504081649-9c5c1-954b406e8c21c2ca4428960e4fc1f9ffb17fb296
|
|
darcs-hash:20070504045644-a5988-68a6d650bacab936f893b96bf866696da3f73436
|
|
darcs-hash:20070504023618-9c5c1-4b5a4021212b08fedff7f8ec3d8b4234431aada3
|
|
darcs-hash:20070503144750-72aca-f44bca4573837e12fc1f89333b55e04abd52787c
|
|
darcs-hash:20070503075821-9c5c1-d5bc043872adb9f95c23e0fde87ae11f16108785
|
|
darcs-hash:20070430162647-a5988-70420c2db283eb1585c96d977e5ac5ca3d0d1532
|
|
darcs-hash:20070430161635-a5988-ee0abcdeff2aa92df2d593de488797015c0fc7e7
|
|
darcs-hash:20070430161511-a5988-2196c16d0c2d0d5207b68a6b27d66b11b4fe0014
|
|
darcs-hash:20070430054715-a5988-a74f5e2868f47443a69b0cd821fa690e43a4a7e1
|
|
This also fixes a bug where xmonad was assuming a 24-bit display, and just
using, eg, 0xff0000 as an index into a colormap without querying the X server
to determine the proper pixel value for "red".
darcs-hash:20070430043859-b9aa7-9467ff583ec95144e5baa088e4b1536a725e7bc6
|
|
darcs-hash:20070419040833-9c5c1-9d8965bf22113a8aec47244eab7c769affb75951
|
|
darcs-hash:20070419015430-a5988-1abfb64ca77e80031074f4a01f1f4e1a2e5efbac
|
|
darcs-hash:20070419012705-9c5c1-3aa97e02123af08c3f4500c9e9c3bb7ab4121652
|
|
focus, master, and cycling direction between the modes
darcs-hash:20070411080747-9c5c1-0f6e9cc92481db8ba812976ee8d3cb0f7dde6626
|
|
darcs-hash:20070411065607-9c5c1-dcbe0dac9354e1588ab6970daf65bc1405a204b0
|
|
darcs-hash:20070411060456-9c5c1-a5642813cffe434e60310d21497217ef3704b296
|
|
darcs-hash:20070410062731-b9aa7-e1768a3fe6c0e3c749400dffc4a5a5e33e6a08c4
|
|
darcs-hash:20070409223500-a5988-fa8da8a067b0a923c8709f5656648a5b21241eeb
|
|
darcs-hash:20070409073510-a5988-b2a95e4ba83a58a7be01dc49961449fa1f817014
|
|
darcs-hash:20070409073414-a5988-cad31b0c3b3272413e0f3b1721d3b6997e448f30
|
|
darcs-hash:20070409072302-9c5c1-f55281c59754fa1fe17dbfe406f2fe2c71f7061d
|
|
darcs-hash:20070403050610-a5988-34a441f8eb299905ed28d415a9524121585d06d0
|
|
darcs-hash:20070403040658-b9aa7-4bbe82e188fd19de00f8d6f86a3e4d3b4a39bf01
|
|
darcs-hash:20070402214605-a5988-385c975d34b98deb0609579f9ca9208cf522e2b5
|
|
darcs-hash:20070402045114-a5988-3fa15b1c4d8d79494bf430dcad921d22cdfa8d16
|
|
darcs-hash:20070401144539-39448-1903870c5ef75cc918a8ea3153c5b154feb4e644
|
|
darcs-hash:20070401021846-3a569-083f7d441afc41bdeef843113c1de1d3a5e40ee3
|
|
darcs-hash:20070401014706-3a569-26a764b57274f67057adf0b81eb71158b58f49de
|
|
darcs-hash:20070401002803-9c5c1-e15fd397cbaf1182a13e1c55ca024ef2ef2fdbae
|
|
darcs-hash:20070328101540-c98ca-92140a718ff7491aa88895c0592cd9a964e671b0
|
|
darcs-hash:20070326150213-3a569-64dd38c00558d58f27c3803ab15485892c24cfaa
|
|
darcs-hash:20070321054245-c98ca-fc10278adbcbfe61de0f7bb4d4e14c5befc565b2
|
|
darcs-hash:20070320071812-a5988-5f091f18a418d6aaf940b800530e0c6a7c4bc312
|
|
darcs-hash:20070320044253-b9aa7-d32f71aca7e91b282efaad1689310c5ca72a0e1f
|
|
darcs-hash:20070317234904-b9aa7-ef29cf597970298a24d770ec789f83638390d22a
|
|
darcs-hash:20070316022201-a5988-71ce8c0c697df2949eb818f45dd67682e1701b7c
|
|
darcs-hash:20070313235931-a5988-71a6be9213d889a01cb645299c5a90d65616c995
|
|
darcs-hash:20070313215009-a5988-2bd5423b68531d6bb83e3de013a0f1b94bfbef00
|
|
darcs-hash:20070313153310-a5988-47512502a33b3b003a6a3106ad730e61cbd0d548
|
|
darcs-hash:20070312062612-9c5c1-bd010ffbd84cfe17ec71b264c390ab030b6b4a6c
|
|
darcs-hash:20070312012350-9c5c1-1753dcb9d066d8954fe5d2f2ed8f5d06a6f976aa
|
|
darcs-hash:20070311102653-9c5c1-de74160d207f006000afc640dc9745d1b20ce05b
|
|
darcs-hash:20070310070152-9c5c1-f78385326379d5ff19cb3db926c5b02117e433ff
|