aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-09-15Implement map -releaseMarten Ringwelski5-29/+73
2020-09-15Implement focus-follows-cursorMarten Ringwelski5-0/+83
2020-09-14seat: implement drag and dropIsaac Freund5-22/+122
2020-09-08cursor: handle borderless views in move/resizeIsaac Freund1-1/+5
2020-08-24config: implement map-pointer commandIsaac Freund14-81/+235
This command takes a mode, modifiers, button/event name, and pointer action as arguments. It stores these in the config data structure. The currently available pointer actions are move-view and resize-view, which replace the previously hard-coded functionality. Closing the hovered view with middle click has temorarily been removed until it is decided if we wish to make this another special pointer action or perhaps allow running any arbitrary command (which would of course include close).
2020-08-24style: attach_mode() -> attachMode()Isaac Freund2-2/+2
2020-08-22river-status: don't report destroying viewsIsaac Freund1-0/+1
2020-08-21root: clean up initializationIsaac Freund1-19/+17
2020-08-21river-status: clean up initializationIsaac Freund3-27/+15
2020-08-21output: clean up initializationIsaac Freund1-34/+21
2020-08-21config: handle alloc failure in Mapping initIsaac Freund1-2/+6
2020-08-21Keyboard: clean up initializationIsaac Freund1-5/+7
2020-08-21xdg-decoration: clean up initializationIsaac Freund2-12/+9
2020-08-21river-status: clean up initializationIsaac Freund1-10/+11
2020-08-21config: clean up initializationIsaac Freund2-28/+22
2020-08-21seat: clean up initializationIsaac Freund3-69/+49
2020-08-21layer-surface: clean up initializationIsaac Freund1-15/+13
2020-08-21xdg-popup: clean up initializationIsaac Freund1-12/+9
2020-08-21xwayland: clean up initializationIsaac Freund2-13/+11
2020-08-21xdg-toplevel: clean up initializationIsaac Freund1-8/+7
2020-08-21view: clean up initializationIsaac Freund1-35/+17
2020-08-21cursor: leave mode if target view is destroyedIsaac Freund3-13/+29
2020-08-21view stack: rework iteration for flexibilityIsaac Freund9-217/+185
There is now a single iter() function which accepts a filter and context allowing users of the api to filter the views in any arbitrary way. This change allowed for a good amount of code cleanup, and this commit also ensures that the correct properties are checked in each case, including the new View.destroying field added in the previous commit. This fixes at least one crash involving switching focus to a destroying view.
2020-08-21view: implement frame-perfect destroyIsaac Freund6-34/+61
river's View objects may now outlive their wlroots counterparts so that we can continue to render a destroyed view until the transaction is completed.
2020-08-18Implement "attach-mode"Leon Henrik Plickat6-2/+84
2020-08-13xwayland: fix signed to unsigned int casting errorIsaac Freund1-2/+2
2020-08-13seat: implement kde idle protocolIsaac Freund5-6/+22
2020-08-13layer-shell: improve configure handlingIsaac Freund1-26/+18
- don't send a new configure on commit if nothing has changed - simplify code
2020-08-13seat: set focus before starting transactionsIsaac Freund9-29/+36
Focus was made double-buffered in 96a91fd. However, much of the code still behaved as if focus was separate from the transaction system. This commit completes the work started in 96a91fd and ensures that focus is applied consistently in a single transaction.
2020-08-13view: handle setting fullscreen in configure()Isaac Freund4-19/+3
2020-08-13root: refactor transaction initiationIsaac Freund13-105/+133
- require the caller to use Root.startTransaction() directly - introduce View.applyPending() to unify logic - introduce View.shouldTrackConfigure() to unify more logic - update all callsites to intelligently rearrange only what is necessary
2020-08-11ci: run only on master branchIsaac Freund1-1/+7
2020-08-10Enforce minimum window size also for views with constraintsLeon Henrik Plickat2-4/+4
2020-08-10Fix crashing bug for window size smaller than 2 * (border width + gap size)Leon Henrik Plickat1-2/+4
2020-08-07code: clean up cursor resize modeIsaac Freund1-12/+10
- offset_{x,y} is consistent with delta_{x,y} - no need to name the type, it's only referenced in one place
2020-08-07cursor: implement implicit grabsIsaac Freund2-29/+55
When a button is held down and the cursor leaves a surface, events now continue to be sent to the client. This allows e.g. dragging a scroll bar from outside the surface.
2020-08-07cursor: refactor mode handlingIsaac Freund2-195/+158
2020-08-03view: double buffer focus, use counter not boolIsaac Freund8-54/+49
- Double buffering focus state ensures that border color is kept in sync with the transaction state of views in the layout. - Using a counter instead of a bool will allow for proper handling of multiple seats. This is done in the same commit to avoid more churn in the future.
2020-08-01view: arrange on unmap if fullscreened from layoutIsaac Freund1-1/+2
We don't rearrange the layout on fullscreening a view that is part of the layout since the fullscreened view hides the layout. This means that if a non-floating fullscreen view is closed the layout needs to be rearranged.
2020-08-01view: fix xdg_toplevel fullscreen request handlingIsaac Freund3-23/+22
2020-08-01layout: use fork/execve instead of ChildProcessIsaac Freund1-19/+21
This keeps things simpler, and we will need this control anyways in order to enforce a timeout.
2020-08-01output: simplify layout codeIsaac Freund1-29/+25
2020-08-01server: handle SIGINT/SIGTERM with wl_event_loopIsaac Freund3-21/+22
This is cleaner than having a separate signal handler and should be more consistent/reliable.
2020-08-01server: use fork/execve for startup commandIsaac Freund1-11/+12
std.ChildProcess leaks an fd currently and is more complex than what we need anyways.
2020-08-01doc: shorten riverctl’s synopsisLennard Hofmann1-2/+1
The set-option command got removed but was still present in SYNOPSIS, which confused me. It is not the first time, we forgot to update it.
2020-07-31view: remember floating dimesionsIsaac Freund2-1/+10
When a floating view is returned to the layout or made fullscreen, it now saves the dimesions it had while floating and returns to that same position/size if made to float again.
2020-07-31cursor: handle xwayland views for move/resizeIsaac Freund3-26/+46
2020-07-31view: sidestep transaction for float/fullscreenIsaac Freund5-21/+37
Transactions are only useful when multiple views need to atomically change size together. Float/fullscreen views are independant of the layout and should bypass the transaction system.
2020-07-31cursor: forbid move/resize of fullscreen viewsIsaac Freund1-2/+3
2020-07-31view: forbid mode change if cursor targetIsaac Freund3-2/+23
Making a floating view tiled during a resize breaks things badly.