summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
Commit message (Collapse)AuthorAgeFilesLines
* compositor: Fix a lack of a check for workspace equality on same monitors in ↵thejch2023-10-201-0/+3
| | | | | | | | | getInDirection (#3625) * prevent movefocus and movewindow from going into main workspace when in special workspace * compare workspace IDs instead * change comparison and make code more readable
* cleanup: Replace find() with C++20 starts_with(), ends_with() and contains() ↵Philip Damianik2023-10-151-7/+7
| | | | | | | (#3572) * Replace find() with C++20 starts_with() and ends_with() * Replace find() with C++20 contains()
* groups: create group and groupbar config sections (#3522)MightyPlaza2023-10-101-4/+4
| | | | | | | | | | | | | | | | | | | | * config: create group section modified: src/Compositor.cpp modified: src/config/ConfigManager.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/MasterLayout.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/input/InputManager.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * separate group border and groupbar colors modified: src/Compositor.cpp modified: src/config/ConfigManager.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * add new line modified: config/ConfigManager.cpp
* workspacerules: Add a persistent workspace rule (#3530)Roberto Previdi2023-10-091-1/+4
| | | | | * add persistent flag to workspace rules * get rid of unused ws->indestructible flag
* events: fixup empty events not being sent on unmapvaxerski2023-10-061-0/+4
| | | | Ref #3506 https://github.com/hyprwm/Hyprland/issues/3506#issuecomment-1749508111
* log: log wlr errors regardless of envvaxerski2023-09-301-0/+2
|
* renderer: optimize render pipeline when there is a solitary clientvaxerski2023-09-291-1/+1
|
* watchdog: initialize after configvaxerski2023-09-291-2/+1
|
* internal: add a watchdogvaxerski2023-09-291-0/+11
| | | | a watchdog will abort processing a signal if a timeout specified via debug:watchdog_timeout is reached.
* renderer: Tearing implementation (#3441)Vaxry2023-09-281-1/+10
|
* layout: don't discard fullscreen on new tilingvaxerski2023-09-281-2/+4
|
* internal: Further unsafe state improvements (#3404)Vaxry2023-09-241-0/+40
| | | Instead of allowing Hyprland to sit in a state where there are no monitors, which various parts of the code don't like, we create a fake headless output on all monitor disconnect, and then remove it when a monitor appears
* input: properly track mouse focus on drag operationsvaxerski2023-09-231-0/+28
|
* refactor: manually resets singletons (#3395)memchr2023-09-221-0/+18
|
* windowrules: add rule `group` to map windows grouped (#3279)memchr2023-09-221-2/+6
| | | | | * windows: add rule group to map windows grouped * group rule: use `invade` to force open a window in a locked group
* keybinds: implement pushactivetobottom dispacher (#3217)alaricljs2023-09-211-20/+37
| | | Co-authored-by: Leeman <lstrout@enlj.com>
* input: Various constraint handling fixes (#3381)Vaxry2023-09-201-1/+6
| | | Fixes #3204
* logging: implement std::formatter for some types (#3380)memchr2023-09-201-4/+3
|
* logging/format: use std::format_string to catch formatting string errors at ↵memchr2023-09-201-3/+3
| | | | | | | compile time (#3377) * fix(log): use constexpr format string * deprecate getFormat
* internal: Make part of CCompositor::focusWindow a bit easier to read. (#3356)Dickby2023-09-191-5/+3
|
* layout: Allow the layout to control how windows are raised in groups (#3275)outfoxxed2023-09-121-5/+2
| | | | | | | | | | | | * Allow the layout to control how windows are raised in groups Previously windows could only be focused if they weren't hidden or were part of a group. This shifts the logic for picking the window out of a group to the layout allowing for alternate group implementations to function normally. * Fix doc comment consistency * Fix tabs in comments
* fix: inconsistent behaviour where last workspace was not saved (#3261)memchr2023-09-111-0/+1
|
* windowrules: add % to resizeparams (#3246)alaricljs2023-09-101-13/+28
| | | Co-authored-by: Leeman <lstrout@enlj.com>
* fix: focusWindow on hidden workspace triggers another focusWindow. (#3216)memchr2023-09-081-1/+1
| | | | | | | | | | | This commit address an issue where focusing a window on a hidden workspace inadvertently triggered a second `focusWindow` call due to simulated mouse movement. This behaviour led to the incorrect focus on the window under the cursor instead of target window of method `focusWindow()`, disrupting `focusurgentorlast` and `focuscurrentorlast` dispatchers. Introduced a flag to the `CMonitor::changeWorkspace()` method to prevent simulated mouse movements. This flag is set to false by default. Changed the `focusWindow()` method accordingly to set this flag to true when the target window is in a hidden workspace.
* internal: Remove all `.c_str()` calls when using `std::vformat` (#3198)Philip Damianik2023-09-061-10/+10
| | | Signed-off-by: pdamianik <39028343+pdamianik@users.noreply.github.com>
* internal: Formatter rework (#3186)Vaxry2023-09-061-23/+23
|
* socket2: add renameWorkspace eventvaxerski2023-09-051-0/+2
|
* wlr-ext-workspace: remove protocol implvaxerski2023-09-011-32/+1
| | | | Various reasons: 1st, memory issues. 2nd, MR got closed (see https://gitlab.freedesktop.org/wlroots/wlr-protocols/-/merge_requests/35) 3rd, not needed anymore (waybar has its own hyprland/workspaces module)
* compositor: remove wlr_scene refsvaxerski2023-08-301-3/+0
| | | | super old leftovers
* internal: Fix XDP multi-portal issues (#3077)Vaxry2023-08-261-16/+1
| | | | | | | | | | | | | * add a hyprland portals conf * remove portal checks * typo * Nix: remove portal patch --------- Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
* internal: allow opening empty special workspacesvaxerski2023-08-251-6/+12
| | | | Fixes point 2 of #2596
* compositor: fix offset in auto arrangeMonitorsvaxerski2023-08-251-1/+1
| | | | Fixes #3043, I am an idiot
* compositor: fix log typesvaxerski2023-08-221-2/+2
|
* renderer: update alpha of layers only if active ws (#2994)memchr2023-08-211-3/+5
| | | update `alpha` of ZWLR_LAYER_SHELL_V1_LAYER_TOP only when Workspaces is active on the monitor.
* fix: improved focus behaviour on workspace switching for follow_mouse!=1 (#3041)memchr2023-08-211-0/+20
| | | | | | | | | | | | | | | | | * fix: improved focus behaviour on workspace switching for follow_mouse!=1 When the 'input:follow_mouse' is not set to 1 and the target workspace for switching does not currently have the previously focused window, Hyprland will prioritize focusing on the top-left-most window. * fix: #2451 call simulateMouseMovement. * unify logic * multimon fix --------- Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
* compositor: log more in arrangeMonitorsvaxerski2023-08-211-0/+6
|
* internal: Wayland Protocol impl improvements (#2944)Vaxry2023-08-211-0/+3
|
* compositor: fix missed raw throwsvaxerski2023-08-201-2/+2
|
* compositor: log thrown runtime exceptionsvaxerski2023-08-201-6/+6
|
* compositor: minor cleanupvaxerski2023-08-191-3/+2
|
* internal: allow negative monitor offsetsvaxerski2023-08-161-1/+1
|
* xwayland: use a completely separate coordinate systemvaxerski2023-08-151-0/+10
| | | | | | Use a completely separate coordinate system for XWayland. This fixes all issues with force_zero_scaling overlaps. Fixes #2916
* compositor: fix skipping iterators in arrangeMonitorsvaxerski2023-08-141-1/+5
|
* compositor: don't apply offsets in renderervaxerski2023-08-141-1/+1
|
* compositor: fix auto positioning offset calcsvaxerski2023-08-141-1/+1
|
* internal: add a new monitor auto systemvaxerski2023-08-141-0/+34
|
* internal: Fix grouped windows not being properly focused on activation (#2925)UserSv42023-08-111-0/+5
| | | | | | | | | | | * Fix grouped windows not being properly focused on activation This bug could happen if you: 1. Open two Chromium windows in a single group 2. Open some tabs in both of the windows 3. Using tabs search (Ctrl+Shift+A) try to switch to a tab in the second window from the first one. When this happens any window focus would be lost (hyprctl activewindow starts to output "Invalid") and also the mouse cursor would become centered relatively to the second window. * Update Compositor.cpp
* toplevel: patches group toplevel-activated (#2931)MightyPlaza2023-08-101-0/+10
| | | | | | | | | | | | | * patches group toplevel-activated modified: src/Compositor.cpp modified: src/Window.cpp * remove redundant call modified: src/Compositor.cpp * fix style modified: src/Compositor.cpp
* internal: add lock files and hyprctl instancesvaxerski2023-08-081-0/+21
|
* compositor: update window rules on workspace movevaxerski2023-08-031-0/+1
|