aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Move xinerama current/visible/hidden workspace logic into StackSet directly.Don Stewart2007-05-213-126/+120
| | | | darcs-hash:20070521055253-9c5c1-4cc51fadb10609340f798aece25097afeae92dbb.gz
* s/workspace/windowset/Jason Creighton2007-05-213-8/+8
| | | | darcs-hash:20070521040330-b9aa7-5a36f8a4f90cc4116ffa3532a14bf405bfb942bb.gz
* focusWindow: always view the containing workspace firstJason Creighton2007-05-211-9/+4
| | | | darcs-hash:20070521035551-b9aa7-d33479e88029b33748dd48607b51fac22343168c.gz
* explicit export list for StackSetDon Stewart2007-05-211-1/+5
| | | | darcs-hash:20070521025250-9c5c1-853b26cc2d30325a099abec43648417dd6c60a9e.gz
* comment onlyDon Stewart2007-05-201-4/+4
| | | | darcs-hash:20070520090846-9c5c1-6b99085411c441a4d8217cb6b9d18edf198bfd4e.gz
* only hide old workspace on view if the old workspace is not visible (Xinerama)Jason Creighton2007-05-211-1/+3
| | | | darcs-hash:20070521031435-b9aa7-2a3825712b36c5ef267c89286006d0ea0073c57d.gz
* Fix mod-j/k bindingsSpencer Janssen2007-05-211-3/+3
| | | | darcs-hash:20070521030253-a5988-3e4e92d04f8a4459cfb692f73ad7bda11348f9ad.gz
* Be explicit about suspicious System.Mem importSpencer Janssen2007-05-201-1/+1
| | | | darcs-hash:20070520165741-a5988-a02abd4cb1ad1518a43c203b6b8965563b0e72a8.gz
* HEADS UP: Rewrite StackSet as a ZipperDon Stewart2007-05-207-757/+1107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to give a better account of how focus and master interact, and how each operation affects focus, we reimplement the StackSet type as a two level nested 'Zipper'. To quote Oleg: A Zipper is essentially an `updateable' and yet pure functional cursor into a data structure. Zipper is also a delimited continuation reified as a data structure. That is, we use the Zipper as a cursor which encodes the window which is in focus. Thus our data structure tracks focus correctly by construction! We then get simple, obvious semantics for e.g. insert, in terms of how it affects focus/master. Our transient-messes-with-focus bug evaporates. 'swap' becomes trivial. By moving focus directly into the stackset, we can toss some QC properties about focus handling: it is simply impossible now for focus to go wrong. As a benefit, we get a dozen new QC properties for free, governing how master and focus operate. The encoding of focus in the data type also simplifies the focus handling in Operations: several operations affecting focus are now simply wrappers over StackSet. For the full story, please read the StackSet module, and the QC properties. Finally, we save ~40 lines with the simplified logic in Operations.hs For more info, see the blog post on the implementation, http://cgi.cse.unsw.edu.au/~dons/blog/2007/05/17#xmonad_part1b_zipper darcs-hash:20070520070053-9c5c1-241f7ee7793f5db2b9e33d375965cdc21b26cbd7.gz
* Read is not needed for StackSetSpencer Janssen2007-05-161-1/+1
| | | | darcs-hash:20070516054233-a5988-b71d4b13ec6dfafe367ea4a0dad0b32f0614b318.gz
* variable number of windows in master areaJason Creighton2007-05-163-13/+25
| | | | darcs-hash:20070516031437-b9aa7-03d82cb2565a45fa0e17a34c4c20740b51ff625c.gz
* Use camelCase, please.Spencer Janssen2007-05-161-10/+10
| | | | darcs-hash:20070516014454-a5988-48a5ca0e1ee75c6636a669e28484016eecc0f2fe.gz
* beautify tileDavid Roundy2007-05-152-14/+21
| | | | darcs-hash:20070515154011-72aca-1557c99da679a2be1e52f365f6ae72cfaf40fc87.gz
* put doLayout in the X monad.David Roundy2007-05-122-5/+7
| | | | darcs-hash:20070512215301-72aca-59213ac37c38e57d6ffed1d518afd4729f1744c9.gz
* setsid() before exec. Intended to fix issue #7Spencer Janssen2007-05-141-2/+2
| | | | darcs-hash:20070514044547-a5988-0e3c07a629fd1a28e11ee9ae1395086a5477dae2.gz
* keep focus stack.David Roundy2007-05-102-24/+35
| | | | darcs-hash:20070510131637-72aca-2978a0234147fbb748962a27c68b797bd2e747d5.gz
* bump LOC limit to 550Jason Creighton2007-05-101-1/+1
| | | | darcs-hash:20070510032731-b9aa7-3fccb4cbb55c59636264a451c091b743c549e1f9.gz
* Remove broken prop_promoterotate, replace it with prop_promote_raise_idSpencer Janssen2007-05-081-4/+7
| | | | darcs-hash:20070508211907-a5988-25a6a03356b3017540a53f73bc609a98938c9a9e.gz
* Disable shift_reversible until focus issues are decided.Spencer Janssen2007-05-081-1/+5
| | | | darcs-hash:20070508210952-a5988-becbb2c91df5be261943aefeb50f6849fc805067.gz
* Disable delete.push until focus issues are decidedSpencer Janssen2007-05-081-1/+5
| | | | darcs-hash:20070508204921-a5988-7397764877c6d1a4acf1c004a1486231961d67d5.gz
* Remove unsafe fromJustSpencer Janssen2007-05-081-1/+1
| | | | darcs-hash:20070508163822-a5988-cb12015569105b9e646a5c12fc8dc02099a4beed.gz
* Add the initial Catch testing framework for StackSetNeil Mitchell http://www.cs.york.ac.uk/~ndm/2007-05-081-0/+60
| | | | darcs-hash:20070508154621-fbc8d-8aeafa9c3c6cb40abf72a71f83c5a26d06a71501.gz
* Work around the fact that Yhc gets defaulting a bit wrongNeil Mitchell http://www.cs.york.ac.uk/~ndm/2007-05-081-1/+3
| | | | darcs-hash:20070508124949-fbc8d-1d778c43323434b6f286af1505b2c0489eb09ac2.gz
* Make tests typecheckSpencer Janssen2007-05-081-1/+1
| | | | darcs-hash:20070508152449-a5988-9c8631ebe825ce20e6513f74cb776fb69e0f8509.gz
* Remove unsafe use of headSpencer Janssen2007-05-081-1/+2
| | | | darcs-hash:20070508152116-a5988-16a82d62661a5ccd0a95f88ced57cd3e9df5fd67.gz
* Make 'index' return Nothing, rather than errorSpencer Janssen2007-05-082-7/+7
| | | | darcs-hash:20070508151200-a5988-3da2bb925de6c610ed9b7a5ab5bccedb3483d032.gz
* Use 'drop 1' rather than tail, skip equality check.Spencer Janssen2007-05-081-4/+5
| | | | darcs-hash:20070508150943-a5988-84c0ebc06bc745ecdacae2ced6863b63a9585756.gz
* Redundant parensSpencer Janssen2007-05-081-1/+1
| | | | darcs-hash:20070508150412-a5988-abf7b3c1e96051cb0cb964f6a94239ac76f83a4e.gz
* StackSet.view: ignore invalid indicesSpencer Janssen2007-05-081-3/+3
| | | | darcs-hash:20070508143951-a5988-5b1aea6415436bc5cee632a60efc42300cfbf1e9.gz
* Change the swap function so its Haskell 98, by using list-comps instead of ↵Neil Mitchell http://www.cs.york.ac.uk/~ndm/2007-05-081-7/+4
| | | | | | pattern-guards. darcs-hash:20070508123158-fbc8d-1592375172ef513d85c5e0095c689abf9ac5fc9b.gz
* Arbitrary instance for StackSet must set random focus on each workspaceDon Stewart2007-05-081-7/+33
| | | | | | | | | | | | | | | | | | When focus was separated from the stack order on each workspace, we forgot to update the Arbitrary instance to set random focus. As spotted by David R, this then invalidates 4 of our QC properties. In particular, the property involving where focus goes after a random transient (annoying behaviour) appeared to be correct, but wasn't, due to inadequate coverage. This patch sets focus to a random window on each workspace. As a result, we now catch the focus/raise/delete issue people have been complaining about. Lesson: make sure your QuickCheck generators are doing what you think they are. darcs-hash:20070508051126-9c5c1-55a0597e6838b35f12b3d348e85360cda6c237ca.gz
* make quickcheck tests friendlier to read.David Roundy2007-05-052-2/+7
| | | | darcs-hash:20070505175415-72aca-2129b8432f6f2ddb9d1498b0503b86c401020194.gz
* make Properties.hs exit with failure on test failureJason Creighton2007-05-051-7/+8
| | | | darcs-hash:20070505174357-b9aa7-2dc94a5ade7740c859831865d49e2da28d2ba0ac.gz
* since we just ignore type errors, no need to derive ShowDon Stewart2007-05-042-2/+2
| | | | darcs-hash:20070504094143-9c5c1-44d5edcd4b261a2d93b054f48e7818b0c9e58db2.gz
* Constrain layout messages to be members of a Message classDon Stewart2007-05-043-32/+54
| | | | | | | | | | | | | | | | | | 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 darcs-hash:20070504081649-9c5c1-954b406e8c21c2ca4428960e4fc1f9ffb17fb296.gz
* Handle empty layout listsSpencer Janssen2007-05-043-10/+13
| | | | darcs-hash:20070504045644-a5988-68a6d650bacab936f893b96bf866696da3f73436.gz
* refactoring, style, comments on new layout codeDon Stewart2007-05-042-40/+61
| | | | darcs-hash:20070504023618-9c5c1-4b5a4021212b08fedff7f8ec3d8b4234431aada3.gz
* use anyKey constant instead of magic numberJason Creighton2007-05-041-1/+1
| | | | darcs-hash:20070504015043-b9aa7-a9e8a52b54a21ba00fba0b13a3ec1cc150b1aae5.gz
* added mirrorLayout to mirror arbitrary layoutsJason Creighton2007-05-042-18/+11
| | | | darcs-hash:20070504014653-b9aa7-1709cb0b718a7a058021c76fb95f9654c43f54b1.gz
* Fix layout switching orderSpencer Janssen2007-05-041-2/+1
| | | | darcs-hash:20070503235632-a5988-98863d7067876591bd9da2b33d062bfe2c5b42fd.gz
* More Config.hs bugsSpencer Janssen2007-05-041-3/+3
| | | | darcs-hash:20070503234607-a5988-3f9f46071263093707fdaba677899edc1a85edc1.gz
* Revert accidental change to Config.hsSpencer Janssen2007-05-041-1/+1
| | | | darcs-hash:20070503233148-a5988-628ec9194db704513dd804fc7c72bb478689526e.gz
* Add -fglasgow-exts for pattern guards. Properties.hs doesn't complain anymoreSpencer Janssen2007-05-031-0/+2
| | | | darcs-hash:20070503214221-a5988-c596e80afe12a486f08901e853071d42dd2d9123.gz
* Avoid the unsafe pattern match, in case Config.hs has no layoutsSpencer Janssen2007-05-031-1/+1
| | | | darcs-hash:20070503214007-a5988-f427a9747f76859219abf029c2f550e7dbec258f.gz
* add support for extensible layouts.David Roundy2007-05-035-44/+43
| | | | darcs-hash:20070503144750-72aca-f44bca4573837e12fc1f89333b55e04abd52787c.gz
* comments. and stop tracing events to stderrDon Stewart2007-05-032-6/+15
| | | | darcs-hash:20070503075821-9c5c1-d5bc043872adb9f95c23e0fde87ae11f16108785.gz
* -Wall policeDon Stewart2007-05-031-0/+2
| | | | darcs-hash:20070503074937-9c5c1-769ff9e521726032973c5712940c8c671746153e.gz
* elaborate documentation in Config.hsDon Stewart2007-05-031-15/+38
| | | | darcs-hash:20070503074843-9c5c1-52a96686d7d6a1e260790db263c03799116b1202.gz
* Use updated refreshKeyboardMapping. Requires latest X11-extrasSpencer Janssen2007-05-031-4/+1
| | | | darcs-hash:20070503032040-a5988-f30dac176a6db3139e07c8b29bbc31d27c67d410.gz
* Add 'mod-n': refreshes current layoutSpencer Janssen2007-05-031-0/+3
| | | | darcs-hash:20070503002252-a5988-751a9563c3a2574a423367cdcba11e3e661f9d92.gz