Commit graph

128 commits

Author SHA1 Message Date
Victoria Brekenfeld
c3d2b5f0b7 element: Allow overriding default scanout behaviour 2025-08-07 19:40:23 +02:00
Victoria Brekenfeld
9f4db0b28b floating: Properly scale positions on migration (fixes #1167) 2025-08-04 17:11:46 +02:00
Victoria Brekenfeld
befcdadf88 floating: animation fixes 2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
77084ba1cc floating: Return pending geometry on unmap 2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
83ed79af16 workspace: Consistently set minimized state 2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
adedb705e7 shell: handle fullscreen windows on a dedicated layer
I hoped to split this up into multiple commits, but the api
changes to `shell/workspace.rs` were to invasive to feasibly do this.

Here is a rough list of changes:

- Fullscreen windows aren't mapped to other layers anymore
  - This they need their own logic for:
    - Sending frames
    - Dmabuf Feedback
    - Primary outputs
    - On commit handlers
    - cursor tests
  - They get their own unmap/remap logic
  - They get a new restore state similar to minimized windows
    - Refactored the minimized window state to reuse as much as possible
      here
  - They need to be part of focus stacks, which means adjusting them
    to a new type `FocusTarget` as they previously only handled
    `CosmicMapped`.
  - Various shell handlers (minimize, move, menu) now have dedicated
    logic for fullscreen surfaces
    - This was partially necessary due to relying on CosmicSurface now,
      partially because they should've had their own logic from the
      start. E.g. the context menu is now reflecting the fullscreen
      state
- Fullscreen windows may be rendered behind other windows now, when they
  loose focus.
  - This needed changes to input handling / rendering
2025-07-04 19:45:54 +02:00
Peter Krull
ad2cba324e fix: Remove extra scaling of borders 2025-03-12 16:55:00 +01:00
Victoria Brekenfeld
95b27637ae chore: smithay update 2025-03-12 16:50:58 +01:00
Victoria Brekenfeld
a1211e2499 floating: Refresh space after mapping 2025-03-07 14:37:17 +01:00
Victoria Brekenfeld
638684642c stack: Remember position during continuous move action 2025-03-05 18:24:28 +01:00
Victoria Brekenfeld
a57a2163f6 floating: Fix resize indicator order 2025-02-20 20:11:40 +01:00
Daniel
2553810621
grabs: Snap Window Edges to Close Output Edges 2025-02-14 11:58:09 +01:00
Victoria Brekenfeld
f6143747da layout/floating: Fix indicator element order 2025-02-07 13:32:30 +01:00
Victoria Brekenfeld
53d2cf01aa floating/resize: Fix broken global geometry 2025-01-16 19:44:12 +01:00
Victoria Brekenfeld
e217a91fec floating: Throttle resizes 2025-01-16 19:44:12 +01:00
Ian Douglas Scott
b685512127 Migrate away from Rectangle::from_loc_and_size
Deprecated in `smithay` by https://github.com/Smithay/smithay/pull/1621.
2025-01-07 12:50:35 +01:00
Ian Douglas Scott
61692b21ad Run cargo format 2024-11-18 18:24:53 +01:00
Victoria Brekenfeld
0092dac08c input: Use render_input_order 2024-10-22 19:43:47 +02:00
Victoria Brekenfeld
51c8588f89 render: Use render_input_order 2024-10-22 19:43:47 +02:00
skewballfox
7da0bc430a added cursor_follows_focus and focus_follows_cursor 2024-09-04 20:22:40 +02:00
julianbraha
52ad30c264 Remove unnecessary lifetimes 2024-08-30 17:53:56 +02:00
Ian Douglas Scott
94fecec9cb Add a SplitRenderElements type, with useful methods
`(w_elements, p_elements)` tuples are used in a bunch of places. A
struct with named fields is generally an improvement just due to the
fact the order is non-obvious.

But we can also add methods. In particular,
`extend_from_workspace_elements` abstracts out some of the more
redundant code in `workspace_elements`.

It would be nice to avoid allocation everywhere, but iterators would
complicate lifetimes, run into issues with needing multiple mutable
borrows to things like the `Renderer`, and be awkward in certain
functions without generator syntax. In any case, cosmic-comp already
relies on allocating vectors here.

If this abstraction is commonly useful in compositors, perhaps it could
be moved to Smithay.
2024-07-15 17:12:05 +02:00
Victoria Brekenfeld
b9a323c9ff shell: Populate focus_stack when unstacking 2024-07-03 21:04:28 +02:00
Michael Aaron Murphy
553c49b42b feat: runtime configurable keybindings 2024-07-01 15:20:23 +02:00
Victoria Brekenfeld
5662a0f219 floating: Correctly place grabbed tiled windows 2024-06-28 12:24:09 +02:00
Victoria Brekenfeld
da9af7ad23 floating: Add proper recalculate function
Don't just check maximized windows on every refresh, remapping them and
causing flickering, but introduce a proper recalculate method to be
called on layer-shell events / set_output event.

Also if we need to remap, remap all windows to keep stacking order.
2024-06-27 13:35:48 +02:00
Victoria Brekenfeld
bd58481d19 element: Introduce CosmicMappedKey for safely hashing windows across threads 2024-06-26 12:59:33 +02:00
Victoria Brekenfeld
e78e199663 chore: Update smithay for thread-safety 2024-06-26 12:59:33 +02:00
Ian Douglas Scott
f2342f56c1 Update to latest Smithay version 2024-06-19 12:39:16 +02:00
Ashley Wulber
13e67f3dc2 fix: apply activated state when updating maximized layout 2024-05-30 22:25:33 +02:00
Ashley Wulber
a3df48fe17 fix: update maximized elements when refreshing the floating layout
fixes the gap between the window and the panel
2024-05-29 01:05:09 +02:00
Ian Douglas Scott
4f076e0753 Update smithay, with xwayland shell, Cow, etc. 2024-05-21 19:31:50 +02:00
Ian Douglas Scott
73b12194c0 Update smithay 2024-05-10 13:51:28 +02:00
Ryan Brue
90227471bf feat: floating window tiling gaps 2024-04-22 10:44:14 +02:00
Ian Douglas Scott
bddfba464c shell: Add touch support to ResizeSurfaceGrab
Seems to work well with GTK.
2024-04-15 11:37:03 +02:00
Victoria Brekenfeld
10940a723f floating: Don't drop stack on themselves 2024-03-28 17:25:09 +01:00
Victoria Brekenfeld
5449858e70 Fix #385 2024-03-27 17:48:50 +01:00
Victoria Brekenfeld
5459f52d5e input: Rework PointerFocus to operate directly on WlSurface 2024-03-26 18:50:56 +01:00
Ryan Brue
3837e56382 floating mouse tiling: add corner tiling, implement designs 2024-03-22 17:04:57 +01:00
Victoria Brekenfeld
d341cb8b86 debug: Drop puffin integration 2024-03-21 17:49:06 +01:00
Ian Douglas Scott
a1c8b3aa3e Add support for profiling using tracy 2024-03-20 23:55:21 +01:00
Ryan Brue
a4f3006313 feat: maximize/half tiling drag zones 2024-03-20 11:51:53 +01:00
Victoria Brekenfeld
153ed8d0a5 workspace: Re-maximize windows when changing tile mode 2024-03-07 12:22:39 +01:00
Victoria Brekenfeld
a8846ed2b8 floating: Make sure new windows don't overflow output size 2024-03-05 16:55:30 +01:00
Victoria Brekenfeld
4d118dda8b shell: Play with minimize duration again 2024-03-04 19:20:52 +01:00
Victoria Brekenfeld
61a3f5c4c8 shell: Even longer minimize duration 2024-03-04 19:20:52 +01:00
Victoria Brekenfeld
625218bbf6 shell: Delay alpha changes for minimize animations 2024-03-04 19:20:52 +01:00
Victoria Brekenfeld
4f55f4127b minimize: Slower animation 2024-03-04 19:20:52 +01:00
Victoria Brekenfeld
4e09fc0398 floating: Fix maximize animation again 2024-03-04 19:20:52 +01:00
Victoria Brekenfeld
3eb7e5f82e shell: implement minimize 2024-03-04 19:20:52 +01:00