summaryrefslogtreecommitdiffstats
path: root/StackSet.hs
AgeCommit message (Collapse)Author
2007-06-04realign guardl.mai
darcs-hash:20070604182045-42ea9-c6c9a4ddc19c0713008d71ea7119a5f37953b3dd
2007-06-04swapUp/Down are also mirroredSpencer Janssen
darcs-hash:20070604183535-a5988-5ab9553321805a39ea9ada8aba0a4c53496eee4d
2007-06-04Remove redundant cases in swapUp/DownSpencer Janssen
darcs-hash:20070604183344-a5988-77df217c8b8b2f958f1adfceb3ee8fe94942e9a8
2007-06-04focusUp/Down are the same, in reversed orderSpencer Janssen
darcs-hash:20070604183143-a5988-9b9325a10eee13bb6bd96d20ca3b15c12c368883
2007-06-04Simplify focusUp/DownSpencer Janssen
darcs-hash:20070604182228-a5988-4114dc5f3d0c5533f66cb2c34e2f3fe9566f19e0
2007-06-04Integral implies EqSpencer Janssen
darcs-hash:20070604180745-a5988-bbeb0e2f34a21fe9853f67440e59929a1084c76d
2007-06-04Comment typo.Spencer Janssen
darcs-hash:20070604180554-a5988-5faec5cb8f6c7cd9a7d29df883b078f6e5e0b793
2007-06-04Use the new integrate functionSpencer Janssen
darcs-hash:20070604062653-a5988-8a6456ccc1dd03fa1c733e71dfa056dd76a91186
2007-06-04Add integrateSpencer Janssen
darcs-hash:20070604062501-a5988-52b9c72b3f989ac55438677442db48d0cf5d06e7
2007-05-31clean up mouse code a bitDon Stewart
darcs-hash:20070531085308-9c5c1-73ed940708aa9a369b0345c0d2b2a4708a231e67
2007-05-31first shot at a floating layerJason Creighton
This is a first attempting at a floating layer: mod-button1: move window mod-button2: swapMaster mod-button3: resize window mod-t: make floating window tiled again Moving or resizing a window automatically makes it floating. Known issues: Hard to manage stacking order. You can promote a window to move it to the top, (which you can do with mod-button2) but it should be easier than that. Moving a window by dragging it to a different Xinerama screen does not move it to that workspace. Code is ugly. darcs-hash:20070531044733-b9aa7-c96d5263e1d3447e91f436920f4d047050ce55d9
2007-05-26HEADS UP: change key binding for swapLeft/Right and IncMasterDon Stewart
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 == focusDown. Far more intuitive for people (dons) who live in fullscreen mode and have vim movement wired into their central nervous system. Principle of least VI surprise: movement down or up means using j and k. darcs-hash:20070526111453-9c5c1-3242145ee5b51eb070a7dc3663f0d6cc01671d5c
2007-05-26type sig for abort.Don Stewart
darcs-hash:20070526061450-9c5c1-217d8a3962ce1422eedfb90f8c9d7e8578d83d60
2007-05-24Add an abort function, called for deliberate and intentional errorsNeil Mitchell
darcs-hash:20070523233212-73ab9-81ab782d6360e1d85152c647f9c7cd19a065963a
2007-05-25Deleting a window should not affect focusRob
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
2007-05-22add swapLeft and swapRightbobstopper
darcs-hash:20070522050008-ee4f8-6073519fac239b25e5e265ce3995ee75683fcb81
2007-05-21Read instance for StackSetSpencer Janssen
darcs-hash:20070521184504-a5988-348b1e31532e664b6ad4bbb9ed82e57b53c41417
2007-05-21modifyDon Stewart
darcs-hash:20070521115750-9c5c1-8b6847930f5e2710d076c070db9835ab1ee3d76d
2007-05-21Move xinerama current/visible/hidden workspace logic into StackSet directly.Don Stewart
darcs-hash:20070521055253-9c5c1-4cc51fadb10609340f798aece25097afeae92dbb
2007-05-21focusWindow: always view the containing workspace firstJason Creighton
darcs-hash:20070521035551-b9aa7-d33479e88029b33748dd48607b51fac22343168c
2007-05-21explicit export list for StackSetDon Stewart
darcs-hash:20070521025250-9c5c1-853b26cc2d30325a099abec43648417dd6c60a9e
2007-05-20comment onlyDon Stewart
darcs-hash:20070520090846-9c5c1-6b99085411c441a4d8217cb6b9d18edf198bfd4e
2007-05-20HEADS UP: Rewrite StackSet as a ZipperDon Stewart
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
2007-05-16Read is not needed for StackSetSpencer Janssen
darcs-hash:20070516054233-a5988-b71d4b13ec6dfafe367ea4a0dad0b32f0614b318
2007-05-10keep focus stack.David Roundy
darcs-hash:20070510131637-72aca-2978a0234147fbb748962a27c68b797bd2e747d5
2007-05-08Remove unsafe fromJustSpencer Janssen
darcs-hash:20070508163822-a5988-cb12015569105b9e646a5c12fc8dc02099a4beed
2007-05-08Work around the fact that Yhc gets defaulting a bit wrongNeil Mitchell http://www.cs.york.ac.uk/~ndm/
darcs-hash:20070508124949-fbc8d-1d778c43323434b6f286af1505b2c0489eb09ac2
2007-05-08Remove unsafe use of headSpencer Janssen
darcs-hash:20070508152116-a5988-16a82d62661a5ccd0a95f88ced57cd3e9df5fd67
2007-05-08Make 'index' return Nothing, rather than errorSpencer Janssen
darcs-hash:20070508151200-a5988-3da2bb925de6c610ed9b7a5ab5bccedb3483d032
2007-05-08Use 'drop 1' rather than tail, skip equality check.Spencer Janssen
darcs-hash:20070508150943-a5988-84c0ebc06bc745ecdacae2ced6863b63a9585756
2007-05-08StackSet.view: ignore invalid indicesSpencer Janssen
darcs-hash:20070508143951-a5988-5b1aea6415436bc5cee632a60efc42300cfbf1e9
2007-05-08Change the swap function so its Haskell 98, by using list-comps instead of ↵Neil Mitchell http://www.cs.york.ac.uk/~ndm/
pattern-guards. darcs-hash:20070508123158-fbc8d-1592375172ef513d85c5e0095c689abf9ac5fc9b
2007-05-05make quickcheck tests friendlier to read.David Roundy
darcs-hash:20070505175415-72aca-2129b8432f6f2ddb9d1498b0503b86c401020194
2007-05-03Add -fglasgow-exts for pattern guards. Properties.hs doesn't complain anymoreSpencer Janssen
darcs-hash:20070503214221-a5988-c596e80afe12a486f08901e853071d42dd2d9123
2007-05-02First steps to adding floating layerSpencer Janssen
darcs-hash:20070502195917-a5988-6831029fae89604c06ae962aaffdf81bfdad3297
2007-04-30remove redundant call to 'delete' in 'shift'Don Stewart
darcs-hash:20070430031151-9c5c1-7d66b13bc36af0e33af655f33ef287c8d4a379e7
2007-04-30clean 'delete' a littleDon Stewart
darcs-hash:20070430025319-9c5c1-e9f7308996d1400c1abd42d2d5f6ef30b8f01c06
2007-04-30shrink 'swap'Don Stewart
darcs-hash:20070430024813-9c5c1-28d697989294c4c5ce03e44553b75a8d7bc6c03e
2007-04-30shrink 'rotate' a littleDon Stewart
darcs-hash:20070430024525-9c5c1-fd54666b06e2d896e023e7ae1c8f2b32fdb7a815
2007-04-30move size into Properties.hsDon Stewart
darcs-hash:20070430021758-9c5c1-f1ae3d5c2639b9c3ee91ccdebaefe0cf4a2c6df5
2007-04-30don't need 'size' operation on StackSetDon Stewart
darcs-hash:20070430015927-9c5c1-9fdb237b91b517b77ab4a63c6675afa1ca759fe6
2007-04-29move fromList into Properties.hs, -17 locDon Stewart
darcs-hash:20070429035804-9c5c1-6e23a1c166235085f34bda111b332b2ef7b50e01
2007-04-26Remove toListSpencer Janssen
darcs-hash:20070426005713-a5988-10ed3204d691050d7ce018072d3fcf03221f545e
2007-04-19add 8 new QC tests, including tests of the layout algorithmDon Stewart
darcs-hash:20070419040833-9c5c1-9d8965bf22113a8aec47244eab7c769affb75951
2007-04-19Remove useless pragmaSpencer Janssen
darcs-hash:20070419015239-a5988-c3be57b9f5a20b149c4873020fb4d91fb1ab349f
2007-04-19Parameterise StackSet by two index types, rather than breaking abstractionDon Stewart
darcs-hash:20070419012705-9c5c1-3aa97e02123af08c3f4500c9e9c3bb7ab4121652
2007-04-19tweak loc count to match count_lines scriptDon Stewart
darcs-hash:20070418224725-9c5c1-e885b1392c8f6aaa1ccd5c5cbcdc9c41b29b6b6a
2007-04-19Promote now swaps focused window with master windowDon Stewart
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
2007-04-11and the tests still runDon Stewart
darcs-hash:20070411081500-9c5c1-de5c90255b488c617bee222ece8e4ff059a8a95a
2007-04-11Change semantics of 'promote'.Don Stewart
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