Commit Graph

38 Commits

Author SHA1 Message Date
Ivan Molodetskikh 5ad5f29a92 Extract check_ops 2023-09-26 20:41:55 +04:00
Ivan Molodetskikh 756997ca83 Fix panic when adding previously-removed output sometimes 2023-09-26 20:36:48 +04:00
Ivan Molodetskikh b7be8fcb75 Fix verify_invariants() asserts 2023-09-26 20:35:08 +04:00
Ivan Molodetskikh 953d1064c2 Add layer shell exclusive zone support 2023-09-26 20:12:04 +04:00
Ivan Molodetskikh a62e1cbef6 Make focus ring configurable 2023-09-26 13:45:03 +04:00
Ivan Molodetskikh f58e56d65a Add focus rings 2023-09-24 18:11:20 +04:00
Ivan Molodetskikh 51df1aba01 layout: Focus prev column when removing just created column
This works similar to tabs in Firefox: when you create a tab and then
close it without focusing any other tabs, the focus returns to the
previously-focused tab, rather than the usual next tab. The logic is
that in this case, the new tab was likely transient, and the user wants
to get right back to what they were doing.

In niri's case, this also serves as a workaround for wl-clipboard
spawning and destroying a window, messing up the focus.
2023-09-24 10:08:43 +04:00
Ivan Molodetskikh b3b1e082ac layout: Preserve active column when column to the left is removed 2023-09-24 09:42:49 +04:00
Ivan Molodetskikh 109668fa30 Add output configuration & integer scaling support 2023-09-21 13:48:50 +04:00
Ivan Molodetskikh cfa73c153c layout: Fix workspace output updating 2023-09-21 13:48:50 +04:00
Ivan Molodetskikh 37ec524264 Add by-index workspace commands and binds 2023-09-16 12:14:02 +04:00
Ivan Molodetskikh 46403bd84a layout: Correct view offset when swapping columns 2023-09-13 19:37:14 +04:00
Ivan Molodetskikh 219ca08836 Implement minimizing view movement on changes
Before this commit, windows were always left-aligned.

Now, when changing focus, if the window is fully visible, the view
doesn't move. If the window is not fully visible, the view is moved the
minimum amount.
2023-09-13 16:57:12 +04:00
Ivan Molodetskikh 84885fe5fb layout: Add tests for various operations 2023-09-12 19:46:12 +04:00
Ivan Molodetskikh 99b4ea6541 layout: Fix assertion in verify_invariants() 2023-09-12 19:46:12 +04:00
Ivan Molodetskikh 513763eaec layout: Replace add_window_to_output with add_window 2023-09-12 19:46:12 +04:00
Ivan Molodetskikh 18e29d0028 layout: Fix input to non-active window in column 2023-09-05 18:14:42 +04:00
Ivan Molodetskikh 95cbe2a636 Send scanout feedbacks to surfaces 2023-09-03 15:15:55 +04:00
Ivan Molodetskikh 1575753b69 Extract different parts of rendering into functions 2023-08-27 17:44:22 +04:00
Ivan Molodetskikh 78090e1140 Remove some commented out code 2023-08-16 20:29:57 +04:00
Ivan Molodetskikh 6e36ccb1bd Implement wp-presentation 2023-08-16 10:59:34 +04:00
Ivan Molodetskikh d4d2cefe50 Respect max window width 2023-08-16 10:03:24 +04:00
Ivan Molodetskikh c8a60c4513 Use the correct min_size state 2023-08-16 09:59:27 +04:00
Ivan Molodetskikh fc8f51da53 Put active window on top 2023-08-16 09:22:46 +04:00
Ivan Molodetskikh 6494df398d Add basic fullscreen impl 2023-08-16 09:08:10 +04:00
Ivan Molodetskikh d96daf68a7 Add binds to move between monitors 2023-08-16 08:03:20 +04:00
Ivan Molodetskikh 37cbed890f Add initial layer-shell implementation
Those surfaces never receive mouse focus and always keyboard focus,
which may not be always good, but it'll do for now.
2023-08-15 12:49:26 +04:00
Ivan Molodetskikh c05326d1b6 Add Mod+F to maximize 2023-08-14 18:37:33 +04:00
Ivan Molodetskikh 2a163bb4b5 Add Mod+R to toggle between preset widths 2023-08-14 18:37:33 +04:00
Ivan Molodetskikh adbd53327c Advance animations in process_input_event 2023-08-14 18:37:33 +04:00
Ivan Molodetskikh 99ab96d348 layout: Update workspace original output 2023-08-14 18:37:33 +04:00
Ivan Molodetskikh b5c02253ff Add workspace switch animations 2023-08-14 18:37:33 +04:00
Ivan Molodetskikh dd23e0b6ee Centralize workspace clean-up logic 2023-08-14 18:37:33 +04:00
Ivan Molodetskikh dbf998119f Move things to Monitor impl 2023-08-14 18:37:33 +04:00
Ivan Molodetskikh 0e3b800337 Add focus change animations 2023-08-14 18:37:33 +04:00
Ivan Molodetskikh 430fb47cd6 Centralize sending configure 2023-08-14 14:48:10 +04:00
Ivan Molodetskikh 8f71842e7c Refactor everything again, make more things work 2023-08-13 19:55:37 +04:00
Ivan Molodetskikh 95c810c855 Refactor everything, add initial tiling code 2023-08-13 12:46:53 +04:00