aboutsummaryrefslogtreecommitdiff
path: root/src/window
AgeCommit message (Collapse)Author
2025-01-05Set is-active-in-column to true for unmapped windows (#934)Frans Skarman
* Set is-active-in-column to true for unmapped windows * Update wiki/Configuration:-Window-Rules.md --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-01-04Migrate to new Rectangle functionsIvan Molodetskikh
2024-12-30Implement default-window-height for scrolling windowsIvan Molodetskikh
2024-12-30Add default-floating-position window ruleIvan Molodetskikh
2024-12-30Implement is-floating window rule matcherIvan Molodetskikh
2024-12-30Implement default-window-height window ruleIvan Molodetskikh
Only works for floats that aren't initially fullscreen atm.
2024-12-30floating: Support default-column-width in most casesIvan Molodetskikh
open-fullscreen + open-floating default width is still not supported in this commit.
2024-12-30Add open-focused window ruleIvan Molodetskikh
2024-12-30floating: Don't use fullscreen size as floating sizeIvan Molodetskikh
2024-12-30floating: Improve expected size requests to avoid (0, 0) and duplicatesIvan Molodetskikh
2024-12-30floating: Remember and restore window sizeIvan Molodetskikh
2024-12-30floating: Request size only onceIvan Molodetskikh
Let floating windows resize themselves and keep that size.
2024-12-30layout: Rename update_interactive_resize() to on_commit()Ivan Molodetskikh
2024-12-30layout: Accept &mut self in request_fullscreen()Ivan Molodetskikh
2024-12-30Implement floating child stacking above parentsIvan Molodetskikh
2024-12-30Honor min/max size in more places like initial configureIvan Molodetskikh
2024-12-30Initial WIP floating window implementationIvan Molodetskikh
2024-12-09Extract rules.apply_{min,max}_size()Ivan Molodetskikh
2024-12-01layout: Extract ScrollingSpaceIvan Molodetskikh
Leave the Workspace to do the workspace parts, and extract the scrolling parts into a new file. This is a pre-requisite for things like the floating layer (which will live in a workspace alongside the scrolling layer). As part of this huge refactor, I found and fixed at least these issues: - Wrong horizontal popup unconstraining for a smaller window in an always-centered column. - Wrong workspace switch in focus_up_or_right().
2024-11-29Activate newly mapped windows with a valid activation tokenChristian Meissl
most of the time the activation token is passed while the window is still unmapped. in this case store the intend to activate the window for later retrieval on map.
2024-11-14config: Add RegexEq util type instead of manual PartialEqIvan Molodetskikh
2024-11-12Add PID to Window IPCIvan Molodetskikh
2024-11-02Replace current_state() with with_toplevel_role()Ivan Molodetskikh
Avoid microallocations that happen in current_state().
2024-11-02Add with_toplevel_role() util functionIvan Molodetskikh
2024-09-12Always clamp non-auto window height with >1 windows in columnIvan Molodetskikh
2024-09-01Change IdCounter to be backed by an AtomicU64Ivan Molodetskikh
Let's see if anyone complains.
2024-09-01Change MappedIt::get() to return u64Ivan Molodetskikh
2024-08-22Implement resize transactionsIvan Molodetskikh
2024-08-22Implement window resize throttlingIvan Molodetskikh
2024-08-22Update Smithay (apply state in post commit)Ivan Molodetskikh
2024-08-22feature: add on-demand vrr (#586)Michael Yang
* feature: add on-demand vrr * Don't require connector::Info in try_to_set_vrr * Improve VRR help message * Rename connector_handle => connector * Fix tracy span name * Move on demand vrr flag set higher * wiki: Mention on-demand VRR --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2024-07-16Implement gradient color interpolation option (#548)Ivan Molodetskikh
* Added the better color averaging code (tested & functional) * rustfmt * Make Color f32 0..1, clarify premul/unpremul * Fix imports and test name * Premultiply gradient colors matching CSS * Fix indentation * fixup * Add gradient image --------- Co-authored-by: K's Thinkpad <K.T.Kraft@protonmail.com>
2024-07-08bump smithayChristian Meissl
2024-06-28Fix blocked-out + popups and rounded corners window screencastsIvan Molodetskikh
2024-06-28mapped: Add idIvan Molodetskikh
2024-06-28mapped: Make is_active_in_column privateIvan Molodetskikh
2024-06-19Handle KDE decorations in Mapped::has_ssdKirill Chibisov
This fixes an issue with default CSD border being drawn for SSD rendering firefox, because only xdg decorations were checked.
2024-06-18Refactor layout to fractional-logicalIvan Molodetskikh
Lets borders, gaps, and everything else stay pixel-perfect even with fractional scale. Allows setting fractional border widths, gaps, struts. See the new wiki .md for more details.
2024-06-10Signal fractional scale to clientsIvan Molodetskikh
Doesn't do anything yet because we don't bind the fractional scale manager and don't allow fractional scales.
2024-05-16Implement at-startup window ruleIvan Molodetskikh
2024-05-16Implement named workspacesGergely Nagy
This is an implementation of named, pre-declared workspaces. With this implementation, workspaces can be declared in the configuration file by name: ``` workspace "name" { open-on-output "winit" } ``` The `open-on-output` property is optional, and can be skipped, in which case the workspace will open on the primary output. All actions that were able to target a workspace by index can now target them by either an index, or a name. In case of the command line, where we do not have types available, this means that workspace names that also pass as `u8` cannot be switched to by name, only by index. Unlike dynamic workspaces, named workspaces do not close when they are empty, they remain static. Like dynamic workspaces, named workspaces are bound to a particular output. Switching to a named workspace, or moving a window or column to one will also switch to, or move the thing in question to the output of the workspace. When reloading the configuration, newly added named workspaces will be created, and removed ones will lose their name. If any such orphaned workspace was empty, they will be removed. If they weren't, they'll remain as a dynamic workspace, without a name. Re-declaring a workspace with the same name later will create a new one. Additionally, this also implements a `open-on-workspace "<name>"` window rule. Matching windows will open on the given workspace (or the current one, if the named workspace does not exist). Signed-off-by: Gergely Nagy <niri@gergo.csillger.hu>
2024-05-11Add is_active_in_columnTheZoq2
Add missing ``` Fix tests
2024-05-11Implement double-resize-click to reset height/toggle full widthIvan Molodetskikh
2024-05-11Split get resize data from updateIvan Molodetskikh
2024-05-10Implement interactive mouse resizingIvan Molodetskikh
2024-05-04Extract RenderTarget::should_block_out()Ivan Molodetskikh
2024-05-02Implement rounded window cornersIvan Molodetskikh
2024-05-01Split rendering between popups and window surfaceIvan Molodetskikh
2024-05-01Move unmap snapshot from Mapped to TileIvan Molodetskikh
2024-04-24Implement focus-ring window ruleIvan Molodetskikh