Commit Graph

1284 Commits

Author SHA1 Message Date
2b77be8c87 seat: start transaction on focus-output
This fixes a delay due to the missing startTransaction() call causing
unapplied pending state.
2020-09-30 11:16:27 +02:00
d783347476 layer-shell: default to focused output
Layer shell clients may leave the output on which to display a layer
surface up to the compositor. Instead of always putting such surfaces
on the first output use the focused output of the default seat.
2020-09-29 17:27:33 +02:00
3e955935eb docs: use foot in the example config.sh 2020-09-28 22:57:22 +02:00
b3279b87cc layer-shell: make invalid 0 dimension a hard error 2020-09-28 22:52:53 +02:00
e019b9de47 view: always set fullscreen x/y to 0,0
This position is output relative not layout relative.
2020-09-28 16:28:47 +02:00
c95c0416d5 docs: focus-follows-cursor fix options to be bold 2020-09-15 17:44:06 +02:00
52cd871151 Implement map -release 2020-09-15 15:58:54 +02:00
7e02fb679c Implement focus-follows-cursor 2020-09-15 15:15:55 +02:00
f597e7da63 seat: implement drag and drop 2020-09-14 20:11:25 +02:00
976a3ce73d cursor: handle borderless views in move/resize 2020-09-08 18:54:57 +02:00
989e7aaeda config: implement map-pointer command
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-24 18:57:43 +02:00
fd8c5e6410 style: attach_mode() -> attachMode() 2020-08-24 11:50:38 +02:00
e92b6307d9 river-status: don't report destroying views 2020-08-22 17:17:57 +02:00
dd425a3e66 root: clean up initialization 2020-08-21 21:06:59 +02:00
0b2c992f4d river-status: clean up initialization 2020-08-21 21:06:59 +02:00
997b151df2 output: clean up initialization 2020-08-21 21:06:59 +02:00
4a334829f3 config: handle alloc failure in Mapping init 2020-08-21 21:06:59 +02:00
c7c1934b70 Keyboard: clean up initialization 2020-08-21 21:06:59 +02:00
163fa47822 xdg-decoration: clean up initialization 2020-08-21 21:06:59 +02:00
5098553fb4 river-status: clean up initialization 2020-08-21 21:06:58 +02:00
a201ced77d config: clean up initialization 2020-08-21 21:06:58 +02:00
71a751f1ad seat: clean up initialization 2020-08-21 21:06:58 +02:00
37ea1bac36 layer-surface: clean up initialization 2020-08-21 16:53:04 +02:00
eb21e03b42 xdg-popup: clean up initialization 2020-08-21 16:51:09 +02:00
5cea3f68e3 xwayland: clean up initialization 2020-08-21 16:48:17 +02:00
1fbaaa55b3 xdg-toplevel: clean up initialization 2020-08-21 16:45:27 +02:00
283f3f8061 view: clean up initialization 2020-08-21 16:43:12 +02:00
7274761069 cursor: leave mode if target view is destroyed 2020-08-21 16:31:39 +02:00
db416eb119 view stack: rework iteration for flexibility
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-21 16:31:39 +02:00
fa08d85c58 view: implement frame-perfect destroy
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-21 16:31:39 +02:00
59d6432332 Implement "attach-mode" 2020-08-18 11:00:51 +02:00
340bfbd7f1 xwayland: fix signed to unsigned int casting error 2020-08-13 13:47:14 +02:00
7de2edb623 seat: implement kde idle protocol 2020-08-13 12:22:32 +02:00
aabd85b028 layer-shell: improve configure handling
- don't send a new configure on commit if nothing has changed
- simplify code
2020-08-13 11:17:15 +02:00
7a6ac8eb6e seat: set focus before starting transactions
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-13 11:17:15 +02:00
bd99428766 view: handle setting fullscreen in configure() 2020-08-13 11:17:15 +02:00
2669a615b6 root: refactor transaction initiation
- 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-13 11:17:15 +02:00
50d008adbb ci: run only on master branch 2020-08-11 22:38:30 +02:00
946e4f21ba Enforce minimum window size also for views with constraints 2020-08-10 22:15:09 +02:00
45a730cbd3 Fix crashing bug for window size smaller than 2 * (border width + gap size) 2020-08-10 19:26:13 +02:00
e66c8b0019 code: clean up cursor resize mode
- offset_{x,y} is consistent with delta_{x,y}
- no need to name the type, it's only referenced in one place
2020-08-07 21:36:28 +02:00
0c4e3295b1 cursor: implement implicit grabs
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-07 13:54:58 +02:00
91052f7477 cursor: refactor mode handling 2020-08-07 12:08:58 +02:00
96a91fd2f7 view: double buffer focus, use counter not bool
- 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-03 18:54:18 +02:00
7d77160fe3 view: arrange on unmap if fullscreened from layout
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-01 20:03:32 +02:00
ef4efbcadf view: fix xdg_toplevel fullscreen request handling 2020-08-01 19:56:34 +02:00
845fcad9e6 layout: use fork/execve instead of ChildProcess
This keeps things simpler, and we will need this control anyways in
order to enforce a timeout.
2020-08-01 18:37:06 +02:00
05557086e6 output: simplify layout code 2020-08-01 17:34:45 +02:00
56df9176b3 server: handle SIGINT/SIGTERM with wl_event_loop
This is cleaner than having a separate signal handler and should be more
consistent/reliable.
2020-08-01 17:27:49 +02:00
54b09c4ae9 server: use fork/execve for startup command
std.ChildProcess leaks an fd currently and is more complex than what we
need anyways.
2020-08-01 13:40:41 +02:00