745a82ce8a
core: workspace-related function cleanup / refactor
...
CCompositor is massive, and has a lot of functions that could be better optimized if in CWorkspace
2024-11-22 16:01:02 +00:00
d1638a09ba
shadow: add sharp and refactor options
...
options moved to decoration:shadow:
2024-11-05 15:44:40 +00:00
Vaxry
5d4b54b012
core: move internal structures to monitor pointers ( #8266 )
2024-10-27 18:45:38 +00:00
Vaxry
f044e4c951
internal: Move CMonitor to SP ( #8178 )
...
* move monitors to sp
* XD
2024-10-19 23:03:29 +01:00
UjinT34
ee8116ac5d
input: Fix VRR for constrained cursors ( #6877 )
2024-10-12 01:29:51 +01:00
25e72949a1
window/xwayland: minor property cleanup
...
fixes #6921
2024-08-30 14:12:23 +02:00
Tom Englund
72c7818ae6
misc: constify the remaining for loops ( #7534 )
...
now we roll loops at blazing constified speed.
2024-08-26 20:24:30 +02:00
Tom Englund
8d6c18076f
core: make most for loops use const references ( #7527 )
...
why not let the compiler optimise things for us at hyprspeeds when we
can.
2024-08-26 17:25:39 +02:00
883463f9dd
animations: add workspace in/out configs
2024-08-21 14:38:07 +02:00
Vaxry
016da234d0
Core: Move to aquamarine ( #6608 )
...
Moves Hyprland from wlroots to aquamarine for the backend.
---------
Signed-off-by: Vaxry <vaxry@vaxry.net>
Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
Co-authored-by: Jan Beich <jbeich@FreeBSD.org>
Co-authored-by: vaxerski <vaxerski@users.noreply.github.com>
Co-authored-by: UjinT34 <41110182+UjinT34@users.noreply.github.com>
Co-authored-by: Tom Englund <tomenglund26@gmail.com>
Co-authored-by: Ikalco <73481042+ikalco@users.noreply.github.com>
Co-authored-by: diniamo <diniamo53@gmail.com>
2024-07-21 13:09:54 +02:00
MightyPlaza
a443902abc
core: Improve handling of window properties ( #6776 )
...
* add mWindowProperties
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/events/Windows.cpp
* support int values
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
* create m_sWindowData
modified: src/Compositor.cpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/events/Windows.cpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/IHyprLayout.cpp
modified: src/layout/MasterLayout.cpp
modified: src/managers/AnimationManager.cpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/XWaylandManager.cpp
modified: src/render/OpenGL.cpp
modified: src/render/Renderer.cpp
modified: src/render/decorations/CHyprBorderDecoration.cpp
modified: src/render/decorations/CHyprDropShadowDecoration.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* simplify some properties
modified: src/Compositor.cpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/managers/KeybindManager.cpp
* store multiple values in CWindowOverridableVar
modified: src/Compositor.cpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/events/Windows.cpp
modified: src/layout/IHyprLayout.cpp
modified: src/managers/AnimationManager.cpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/XWaylandManager.cpp
modified: src/render/OpenGL.cpp
modified: src/render/Renderer.cpp
modified: src/render/decorations/CHyprBorderDecoration.cpp
modified: src/render/decorations/CHyprDropShadowDecoration.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* clean up
modified: src/Compositor.cpp
modified: src/Compositor.hpp
modified: src/config/ConfigManager.cpp
modified: src/config/ConfigManager.hpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/events/Windows.cpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/IHyprLayout.cpp
modified: src/layout/IHyprLayout.hpp
modified: src/layout/MasterLayout.cpp
modified: src/managers/KeybindManager.cpp
* use SET_PROP priority for exec rules
modified: src/config/ConfigManager.hpp
modified: src/desktop/Window.cpp
* add default value
modified: src/Compositor.cpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/events/Windows.cpp
modified: src/layout/IHyprLayout.cpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/XWaylandManager.cpp
modified: src/render/OpenGL.cpp
modified: src/render/Renderer.cpp
modified: src/render/decorations/CHyprBorderDecoration.cpp
modified: src/render/decorations/CHyprDropShadowDecoration.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* add setprop toggle
modified: src/config/ConfigManager.hpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
* add setprop toggle
modified: src/debug/HyprCtl.cpp
* make window rules functional
modified: src/config/ConfigManager.cpp
modified: src/desktop/Window.cpp
* minor fixes
modified: src/Compositor.cpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.hpp
* properly clean layout data
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/events/Windows.cpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/IHyprLayout.cpp
modified: src/layout/IHyprLayout.hpp
modified: src/layout/MasterLayout.cpp
* remove newline
modified: src/events/Windows.cpp
* fixes
modified: src/config/ConfigManager.hpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
* use CamelCase
modified: src/Compositor.cpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/events/Windows.cpp
modified: src/layout/IHyprLayout.cpp
modified: src/managers/AnimationManager.cpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/XWaylandManager.cpp
modified: src/render/OpenGL.cpp
modified: src/render/Renderer.cpp
modified: src/render/decorations/CHyprBorderDecoration.cpp
modified: src/render/decorations/CHyprDropShadowDecoration.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
2024-07-11 16:10:42 +02:00
1d70962892
core: move to steady_clock where applicable
...
avoid issues when system clock gets desynchronized or changed
2024-06-25 16:05:47 +02:00
fb15b7aa2a
core: Move to hyprutils for Math
...
Moves CRegion, CBox and Vector2D over to hyprutils.
Requires hyprutils>=0.1.4
2024-06-19 16:20:15 +02:00
fb82f6bcd7
animations: fix overriding direction for slide
...
fixes #6512
2024-06-15 16:31:35 +02:00
635a02d83f
layer-shell: move to new impl
...
Also bumps the hw-s dep
2024-05-09 22:02:18 +01:00
Vaxry
1ed1ce9506
internal: new shared_ptr and weak_ptr implementation ( #5883 )
...
moves std::shared_ptrs to a new implementation
Advantages:
- you can dereference a weak_ptr directly. This will obviously segfault on a nullptr deref if it's expired.
- this is useful to avoid the .lock() hell where we are 100% sure the pointer _should_ be valid. (and if it isn't, it should throw.)
- weak_ptrs are still valid while the SP is being destroyed.
- reasoning: while an object (e.g. CWindow) is being destroyed, its `weak_ptr self` should be accessible (the sp is still alive, and so is CWindow), but it's not because by stl it's already expired (to prevent resurrection)
- this impl solves it differently. w_p is expired, but can still be dereferenced and used. Creating `s_p`s is not possible anymore, though.
- this is useful in destructors and callbacks.
2024-05-05 17:16:00 +01:00
5edc32930d
layerSurface: refactor/move to a memory-safe impl
...
Makes all the pointers smart to avoid memory issues
Refactors layerSurface code to live inside desktop/layersurface
2024-04-30 02:41:27 +01:00
Vaxry
bca7804bb6
internal: Window storage rework - part 1 ( #5762 )
...
* Window storage rework - part 1
* format
* remove useless include
* fix pch
* format
* fix crash in dwindle
* fix vram leak
* prefer .expired() for bool checks
2024-04-27 12:43:12 +01:00
Vaxry
f2a848cbcc
core: Event loop rework ( #5466 )
...
* Event loop rework
* revert missed
2024-04-07 03:31:51 +01:00
347b839034
workspaces: add visible flag
2024-04-03 10:09:48 +01:00
Vaxry
ef23ef60c5
Workspace/core: Refactor workspace storage ( #5380 )
...
* refactor workspaces to use ptrs
* clang-format
2024-04-02 20:32:39 +01:00
108163f1e5
animations: simplify window loop
2024-04-01 16:22:24 +01:00
thejch
7513c0cea5
renderer: Fix layer and window damage sometimes missing 1 frame ( #5370 )
...
* fix the layer and window damage missing 1 frame sometimes
* remove extra loop
2024-04-01 16:21:45 +01:00
thejch
16a9c16d9f
renderer/animations: Fix various inaccurate damage tracking issues and offsets ( #5297 )
2024-03-31 02:14:26 +01:00
86dc46ffea
animationmgr: use realpos and size for border damage
...
fixes #5239
2024-03-24 03:09:46 +00:00
thejch
c7fbea3368
animations: Fix animation issue in focusworkspaceoncurrentmonitor ( #5202 )
...
* dont render when workspace offset
* add guard
* can remove useless code now if workspace offset is not taken into account
* clang-format
* when special workspace is moved, set anim to move
* add offset back
* make it a configurable option because some folks apparently can't align their monitors correctly and may not want this feature😔
* remove config option
2024-03-23 22:14:50 +00:00
8593c45be3
refactor: move window.hpp to desktop/
2024-03-20 01:44:51 +00:00
thejch
c942ce6dce
renderer: add better multi monitor animations ( #5126 )
2024-03-16 14:49:34 +00:00
063708df26
config: improve config value infrastructure
2024-03-03 18:41:38 +00:00
GartoxFR
b2c3440477
animations: Refactor AnimatedVariable ( #4911 )
...
* animation: Refactor AnimatedVariable
This commit decomposes the AnimatedVariable class into a base class
with the common attribute to all variable types and a templated derived
type containing strongly typed info on the type being animated.
Access to the typed version is perfomed using the visitor pattern. A
utility is provided to build a visitor on the fly using lambdas.
Adding a new type to be animated should just be a matter of adding the
typed in the list defined by the ANIMABLE_TYPES macro
The size of the commit is justified by the API change in the
AnimatedVariable class. No more vec(), fl() or col() method but a unified
value() method.
* animation: Remove visitor pattern
* animation: Fix coding style
* animation: Fix coding style
2024-03-02 00:35:17 +00:00
4bc669f933
layers: add fully featured animations
...
Adds configs and layerrules to handle them
alas fixes #981
I have cooked
2024-02-28 15:00:40 +00:00
7fbe016c15
animationmgr: expand layer box for damage
2024-02-22 15:34:18 +00:00
Vaxry
13f6f0b923
Migrate the config to hyprlang ( #4656 )
...
* Migrate to hyprlang
* pop up errors
* fix swapped args
* Meson & Nix: build with hyprlang
* CI: add hyprlang to setup action
* add infra for plugin stuff
* fix hyprctl getoption
* fix hyprctl getoption with json
* format
* fix post parse logic
* fix autogen config
* oops missed exec-once
* fmt
* fix ws rules
* require 0.3.0 for hyprlang
* nix: flaek
* minor type fixes
* fix cfg usages in swipe
* use cvarlist for ws rules
* fix throw in addPluginConfigVar
* Nix: update hyprlang
* minor fixes
* fix disableLogs
* mention hyprlang docs
* bump hyprlang dep in cmake
* Meson: bump min hyprlang version
Nix: update hyprlang
* minor fix
* Nix: update meson patch
---------
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2024-02-18 15:00:34 +00:00
Vaxry
9f5b9053c6
internal: Remake borders as window decorations ( #4104 )
2023-12-10 16:28:12 +00:00
a34e192433
renderer: clip floating boxes on slide anim
...
fixes #3514
2023-11-16 20:20:41 +00:00
db82fc5b09
animationmgr: push shadow avs to ended on disabled
2023-11-11 15:23:33 +00:00
Vaxry
9be6fbf5ea
decorations: Decoration Positioner ( #3800 )
2023-11-11 14:37:17 +00:00
Vaxry
55b4f84fea
Internal: Hyprland box implementation ( #3755 )
...
* box impl
* remove unused operators
* missed applyfromwlr
2023-11-04 17:03:05 +00:00
Philip Damianik
442209942f
cleanup: Replace find() with C++20 starts_with(), ends_with() and contains() ( #3572 )
...
* Replace find() with C++20 starts_with() and ends_with()
* Replace find() with C++20 contains()
2023-10-15 19:07:23 +01:00
vaxerski
38e242953d
animationmgr: damage floating windows on workspace anim
...
fixes #3514
2023-10-07 02:28:23 +01:00
vaxerski
8b9cc9a8db
animationmgr: guard monitor ptr in animationSlide
2023-09-06 13:05:37 +02:00
Dickby
28f1f035b1
animationmgr: Optimize CAnimationManager::scheduleTick a bit. ( #3172 )
...
* Optimize CAnimationManager::scheduleTick a bit.
* Use integer in wl_event_source_timer_update call.
2023-09-05 15:06:39 +02:00
Vaxry
d9292800a2
internal: Unsafe state reworks ( #3114 )
2023-09-01 22:03:56 +02:00
end-4
37a211a2ae
animations: add slidefade and slidefadevert styles for workspaces ( #3008 )
...
* add slidefade and slidefadevert animations
* fix swiping for slidefadevert
* rename minPerc to movePerc for slidefade anim styles
* change default slidefade percentage to 100%
* remove useless comments
* findlastof + 1
* debug logging for slidefade/slidefadevert percentage
2023-08-17 22:30:20 +02:00
MightyPlaza
7155b4c266
renderer: Border improvements ( #2986 )
...
* simplify getting border size
modified: src/Window.cpp
modified: src/Window.hpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/MasterLayout.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* fix border damage and input box
modified: src/Window.cpp
modified: src/managers/AnimationManager.cpp
* add border size in resize_on_border box
modified: src/managers/input/InputManager.cpp
* simplify border (fixes possible typo)
modified: src/Window.cpp
* use updateSpecialRenderData()
modified: Window.cpp
modified: Window.hpp
modified: events/Windows.cpp
modified: layout/DwindleLayout.cpp
modified: layout/IHyprLayout.cpp
modified: layout/MasterLayout.cpp
modified: render/Renderer.cpp
* update window workspace rule data on reload
modified: src/config/ConfigManager.cpp
* use rounding()
modified: src/Window.cpp
2023-08-17 10:13:19 +02:00
a077b7a92e
animationmgr: avoid redundant ticks
2023-08-05 23:29:33 +02:00
vaxerski
6c1f4faff2
animationmgr: avoid looping over all avars in favor of only active ones
2023-07-20 19:26:10 +02:00
vaxerski
7091d4e597
animationmanager: optimize avar state
2023-07-19 22:40:03 +02:00
Vaxry
89b87158db
internal: Wrap regions ( #2750 )
2023-07-19 20:09:49 +02:00
vaxerski
f4f0f35c5b
renderer: add occlusion for back layers
2023-07-19 16:13:55 +02:00