aboutsummaryrefslogtreecommitdiffstats
path: root/StackSet.hs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* HEADS UP: change key binding for swapLeft/Right and IncMasterDon Stewart2007-05-261-43/+48
| | | | | | | | | | | | | | | | The use of arrow keys for swapLeft/Right clash with firefox's back button. Use the more intuitive mod-shift-jk for this. (It's a movement operation, after all). This clashes with IncMaster, so we use mod+comma and mod+period for these (i.e. the keys mod < and mod > , to move windows to and from the master area). While we're here, replace the use of the terms 'left' and 'right' for navigation, in comments and identifiers, with 'up' and 'down' instead. Hence mod-j darcs-hash:20070526111453-9c5c1-3242145ee5b51eb070a7dc3663f0d6cc01671d5c.gz
* type sig for abort.Don Stewart2007-05-261-2/+3
| | | | darcs-hash:20070526061450-9c5c1-217d8a3962ce1422eedfb90f8c9d7e8578d83d60.gz
* Add an abort function, called for deliberate and intentional errorsNeil Mitchell2007-05-241-2/+6
| | | | darcs-hash:20070523233212-73ab9-81ab782d6360e1d85152c647f9c7cd19a065963a.gz
* Deleting a window should not affect focusRob2007-05-251-2/+5
| | | | | | | | | | | This fixes a bug whereby deleting a window will first move focus to that window before deleting it without moving focus back afterwards. The fix generalises the remove inner function to delete a window from the stack whether it's in focus or not. If the window is in focus, behaviour remains as it was. darcs-hash:20070525024118-64d90-a9f70b49186be59e62af4b11671099996c5e294f.gz
* add swapLeft and swapRightbobstopper2007-05-221-7/+24
| | | | darcs-hash:20070522050008-ee4f8-6073519fac239b25e5e265ce3995ee75683fcb81.gz
* Read instance for StackSetSpencer Janssen2007-05-211-4/+4
| | | | darcs-hash:20070521184504-a5988-348b1e31532e664b6ad4bbb9ed82e57b53c41417.gz
* modifyDon Stewart2007-05-211-1/+2
| | | | darcs-hash:20070521115750-9c5c1-8b6847930f5e2710d076c070db9835ab1ee3d76d.gz
* Move xinerama current/visible/hidden workspace logic into StackSet directly.Don Stewart2007-05-211-46/+55
| | | | darcs-hash:20070521055253-9c5c1-4cc51fadb10609340f798aece25097afeae92dbb.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
* HEADS UP: Rewrite StackSet as a ZipperDon Stewart2007-05-201-211/+337
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* keep focus stack.David Roundy2007-05-101-15/+23
| | | | darcs-hash:20070510131637-72aca-2978a0234147fbb748962a27c68b797bd2e747d5.gz
* Remove unsafe fromJustSpencer Janssen2007-05-081-1/+1
| | | | darcs-hash:20070508163822-a5988-cb12015569105b9e646a5c12fc8dc02099a4beed.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
* 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-081-4/+4
| | | | 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
* 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
* make quickcheck tests friendlier to read.David Roundy2007-05-051-1/+1
| | | | darcs-hash:20070505175415-72aca-2129b8432f6f2ddb9d1498b0503b86c401020194.gz
* Add -fglasgow-exts for pattern guards. Properties.hs doesn't complain anymoreSpencer Janssen2007-05-031-0/+2
| | | | darcs-hash:20070503214221-a5988-c596e80afe12a486f08901e853071d42dd2d9123.gz
* First steps to adding floating layerSpencer Janssen2007-05-021-14/+17
| | | | darcs-hash:20070502195917-a5988-6831029fae89604c06ae962aaffdf81bfdad3297.gz
* remove redundant call to 'delete' in 'shift'Don Stewart2007-04-301-1/+1
| | | | darcs-hash:20070430031151-9c5c1-7d66b13bc36af0e33af655f33ef287c8d4a379e7.gz
* clean 'delete' a littleDon Stewart2007-04-301-7/+5
| | | | darcs-hash:20070430025319-9c5c1-e9f7308996d1400c1abd42d2d5f6ef30b8f01c06.gz
* shrink 'swap'Don Stewart2007-04-301-8/+5
| | | | darcs-hash:20070430024813-9c5c1-28d697989294c4c5ce03e44553b75a8d7bc6c03e.gz
* shrink 'rotate' a littleDon Stewart2007-04-301-4/+2
| | | | darcs-hash:20070430024525-9c5c1-fd54666b06e2d896e023e7ae1c8f2b32fdb7a815.gz
* move size into Properties.hsDon Stewart2007-04-301-4/+1
| | | | darcs-hash:20070430021758-9c5c1-f1ae3d5c2639b9c3ee91ccdebaefe0cf4a2c6df5.gz
* don't need 'size' operation on StackSetDon Stewart2007-04-301-5/+6
| | | | darcs-hash:20070430015927-9c5c1-9fdb237b91b517b77ab4a63c6675afa1ca759fe6.gz
* move fromList into Properties.hs, -17 locDon Stewart2007-04-291-20/+3
| | | | darcs-hash:20070429035804-9c5c1-6e23a1c166235085f34bda111b332b2ef7b50e01.gz
* Remove toListSpencer Janssen2007-04-261-9/+2
| | | | darcs-hash:20070426005713-a5988-10ed3204d691050d7ce018072d3fcf03221f545e.gz
* add 8 new QC tests, including tests of the layout algorithmDon Stewart2007-04-191-2/+6
| | | | darcs-hash:20070419040833-9c5c1-9d8965bf22113a8aec47244eab7c769affb75951.gz
* Remove useless pragmaSpencer Janssen2007-04-191-1/+0
| | | | darcs-hash:20070419015239-a5988-c3be57b9f5a20b149c4873020fb4d91fb1ab349f.gz
* Parameterise StackSet by two index types, rather than breaking abstractionDon Stewart2007-04-191-45/+43
| | | | darcs-hash:20070419012705-9c5c1-3aa97e02123af08c3f4500c9e9c3bb7ab4121652.gz
* tweak loc count to match count_lines scriptDon Stewart2007-04-191-5/+5
| | | | darcs-hash:20070418224725-9c5c1-e885b1392c8f6aaa1ccd5c5cbcdc9c41b29b6b6a.gz
* Promote now swaps focused window with master windowDon Stewart2007-04-191-4/+27
| | | | | | | | | | | | | This means other windows are unaffected. The change from the previous cycling behaviour was felt necessary, since cycling isn't a terribly useful operation. Some properties that hold: focus is unchanged by promotion promote is idempotent (promoting twice does nothing) the focused and master window will swap their positions in the stack darcs-hash:20070418224236-9c5c1-4539f9f397e181f91dc9743e3ffac4b5796c0fac.gz
* and the tests still runDon Stewart2007-04-111-14/+5
| | | | darcs-hash:20070411081500-9c5c1-de5c90255b488c617bee222ece8e4ff059a8a95a.gz
* Change semantics of 'promote'.Don Stewart2007-04-111-6/+15
| | | | | | | | | | | | Previously 'promote' would move the currently focused window into the master position in tiled mode. This was *almost* a cycle of the windows, but not quite (depending on where the focus was, it was in fact a cycle). Now we do the obvious generalisation, and just cycle the current window stack. Simpler to understand, simpler to reason about. darcs-hash:20070411073456-9c5c1-3ee88f9ac46e2301b4c803ec4fd66798e6fee91d.gz
* merge with toList/fromList patchDon Stewart2007-04-111-10/+12
| | | | darcs-hash:20070411060947-9c5c1-88a2c630ec0bb669c5d34410fb546cc1ff538ded.gz
* Statically distinguish Workspace and Screen indicesDon Stewart2007-04-111-32/+45
| | | | darcs-hash:20070411060456-9c5c1-a5642813cffe434e60310d21497217ef3704b296.gz
* fromList/toList have # of screens + another QC propertyJason Creighton2007-04-111-9/+10
| | | | darcs-hash:20070411044215-b9aa7-e66ef93fac9102201bfd145ebb26c38bbecd25de.gz
* Xinerama screen switching bugfixJason Creighton2007-04-111-1/+1
| | | | darcs-hash:20070411041615-b9aa7-fb18a7f93c7825f269844c0fcb1acb24ec494870.gz
* moved screen <-> workspace mapping from XMonad to StackSetJason Creighton2007-04-101-17/+45
| | | | darcs-hash:20070410062731-b9aa7-e1768a3fe6c0e3c749400dffc4a5a5e33e6a08c4.gz
* Remove trailing spaces, no content changedAlec Berryman2007-04-011-2/+2
| | | | darcs-hash:20070401144539-39448-1903870c5ef75cc918a8ea3153c5b154feb4e644.gz
* formatting onlyDon Stewart2007-04-011-3/+8
| | | | darcs-hash:20070401004726-9c5c1-ffe359da72bfe742bd6c6855e8451c0ea8a8938f.gz
* allow mouse to change current workspacedaniel2007-03-281-2/+2
| | | | darcs-hash:20070328103435-c98ca-4d9fe6e66589e0bc9cbd79eabe41a559084ce37f.gz
* Add promoteSpencer Janssen2007-03-221-0/+6
| | | | darcs-hash:20070322221547-a5988-e45624fd50539d7db13cf34d2b1e94612bdb06e9.gz
* Add raiseFocus.Spencer Janssen2007-03-201-0/+7
| | | | darcs-hash:20070320160135-a5988-01f4a5df331fac6fbf00c209a40105da74b9b88d.gz
* Decouple the concepts of focus and window order. First step to tiling!Spencer Janssen2007-03-201-9/+24
| | | | darcs-hash:20070320051124-a5988-5127c4860ce23d6eb569f6145cd592fe26689061.gz