Ikalco
838ed87d6f
renderer: minor direct scanout fixes ( #7594 )
2024-08-31 15:07:52 +02:00
fbd6354393
presentation-feedback: minor fixups
2024-08-30 15:53:45 +02:00
25e72949a1
window/xwayland: minor property cleanup
...
fixes #6921
2024-08-30 14:12:23 +02:00
Ikalco
98e99cd03d
renderer: ensure buffer format on commit ( #7556 )
2024-08-28 15:07:13 +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
c86db7bbb0
monitor: avoid dangling references to old monitors being undestroyed
...
ref #7414
2024-08-19 18:44:22 +02:00
912e7ba82d
render: fixup format mismatch after leaving DS
...
fixes #7373
2024-08-17 19:27:20 +02:00
Tom Englund
4b4971c06f
internal: introduce new types to avoid unsigned int rollover and signed int overflow ( #7216 )
...
* framebuffer: avoid gluint overflow
GLuint was being initialized to -1 and rolling over to unsigned int max,
its defined behaviour but very unnecessery. add a bool and use it for
checking if allocated or not.
* opengl: avoid gluint rollover
-1 rolls over to unsigned int max, use 0xFF instead.
* core: big uint64_t to int type conversion
there were a few uint64_t to int implicit conversions overflowing int
and causing UB, make all monitor/workspaces/windows use the new
typedefs. also fix the various related 64 to 32 implicit conversions
going around found with -Wshorten-64-to-32
2024-08-08 21:01:50 +02:00
Vaxry
640d161851
renderer: Explicit sync fixes ( #7151 )
...
Enables explicit sync by default for most platforms
`misc:no_direct_scanout` -> `render:direct_scanout`
2024-08-06 15:52:19 +02:00
Vaxry
37e1411e8d
core/surface/buffer: Buffer lock/release fixes ( #7110 )
2024-07-31 21:47:26 +02:00
MightyPlaza
e989a0bcff
internal: refactor fullscreen states ( #7104 )
...
* refactor fullscreen
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/LayerSurface.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
modified: src/desktop/Workspace.cpp
modified: src/desktop/Workspace.hpp
modified: src/events/Windows.cpp
modified: src/helpers/Monitor.cpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/DwindleLayout.hpp
modified: src/layout/IHyprLayout.cpp
modified: src/layout/IHyprLayout.hpp
modified: src/layout/MasterLayout.cpp
modified: src/layout/MasterLayout.hpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/KeybindManager.hpp
modified: src/managers/input/IdleInhibitor.cpp
modified: src/managers/input/InputManager.cpp
modified: src/managers/input/Swipe.cpp
modified: src/protocols/ForeignToplevelWlr.cpp
modified: src/render/Renderer.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* clean up
modified: src/config/ConfigManager.cpp
modified: src/debug/HyprCtl.cpp
modified: src/desktop/Window.hpp
modified: src/desktop/Workspace.cpp
modified: src/events/Windows.cpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/input/Swipe.cpp
* fix mapWindow fullscreen
modified: src/events/Windows.cpp
* fix typo
modified: src/desktop/Workspace.cpp
* add fullscreenstate
modified: src/config/ConfigManager.cpp
modified: src/events/Windows.cpp
* change syncFullscreen to lower
modified: src/config/ConfigManager.hpp
* initialize fs state
modified: src/desktop/Window.hpp
2024-07-31 19:55:52 +02:00
cc7c117fe7
output: minor tearing fixes
2024-07-30 15:50:14 +02:00
1c221240d0
output: submit damage to kms
2024-07-30 15:46:41 +02:00
f3a9f9ec45
pointer: use preMonitorCommit for resetting render state
...
in DS preRender is not called
2024-07-30 15:32:42 +02:00
Ikalco
e8374e0792
debug: get rid of useless 1s in logs ( #6969 )
...
* get rid of 1s in logs lol
* replace WLR with AQ in logs
2024-07-22 18:06:11 +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
Virt
22138ac259
workspaces: don't try to reopen special workspaces ( #6802 )
2024-07-07 21:27:18 +02:00
Alexander
7f09646ab8
core: add ability to select previous workspace per monitor ( #6598 )
...
Co-authored-by: Крылов Александр <aleksandr.krylov@hyperus.team>
2024-06-22 23:52:42 +02:00
def5fcb212
damageRing: move to hyprland impl
...
A small wlroots utility we were still using.
2024-06-19 18:25:25 +02:00
Lucas Reis
20a465f69d
pointer: use software rendering when monitor is mirrored ( #6587 )
...
* pointer_manager: add lock/unlock software wrappers that receive the raw pointer
* monitor: lock/unlock software pointer rendering when adding/removing mirrored screens
* use relative path in includes
2024-06-19 16:24:28 +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
UjinT34
a9d53a2252
vrr: add option to fix mouse breaking vrr ( #6483 )
...
* option to fix mouse breaking vrr
* skip damage on mouse move
* remove this-> & cleanup
* add cursor:min_refresh_rate to avoid cursor freezing
* run clang-format
---------
Co-authored-by: UjinT34 <ujin@uvpn.ru>
2024-06-14 13:45:32 +02:00
Vaxry
8c64a4bad7
core: move to hyprutils for utils ( #6385 )
...
* core: move to hyprutils for utils
Nix: add hyprutils dep
* Meson: add hyprutils dep
* flake.lock: update
---------
Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
2024-06-11 17:17:45 +02:00
1423707dbe
output: remove wl_output globals for mirrored displays
...
ref #6387
2024-06-10 00:06:42 +02:00
Vaxry
6967a31450
wayland/core: move to new impl ( #6268 )
...
* wayland/core/dmabuf: move to new impl
it's the final countdown
2024-06-08 10:07:59 +02:00
a7e23d2f1e
presentation-time: move to new impl
2024-05-10 02:38:54 +01:00
b0861b6709
config: move various cursor-related vars to cursor:
2024-05-09 22:25:20 +01:00
635a02d83f
layer-shell: move to new impl
...
Also bumps the hw-s dep
2024-05-09 22:02:18 +01:00
84e8d1810d
Tablet: move to new impl
...
Ring and strip are not implemented. Will I implement this? God fucking knows. Nobody seems to have that anyways.
2024-05-09 13:37:39 +01:00
ed411f53bd
cursor: move to a hyprland impl
...
This moves wlr_cursor to a completely new impl mostly under
CPointerManager
Also adds beginSimple to OpenGL for simple render passes (e.g. cursor)
2024-05-09 13:37:39 +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
1237732b97
input: Introduce basic hyprland HID classes
...
Implements an intermediary HID class for mice, keyboards and touch devices, removing the old structs from WLClasses.hpp
Yes, virtual ones are duplicated a bit, but will likely be de-duped once wlr_input_device is not used anymore.
2024-05-03 22:40: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
741c75d907
gamma-control: move to new impl
2024-04-22 18:21:03 +01:00
thejch
d96501442f
core: Fix double special workspace ( #5574 )
...
* fix double special name
* fix special on another monitor
* remove extra stuff
2024-04-13 14:39:20 +01:00
b573c20125
monitor: add workspace null check to visible flag
...
ref #5524
2024-04-10 17:21:45 +01:00
MightyPlaza
df1a3a978d
input: don't remove pinned focus on workspace change ( #5486 )
...
modified: src/helpers/Monitor.cpp
2024-04-07 23:13:56 +01:00
4909b0f350
monitor: unset visible flag from ws on disconnect
...
ref #5443
2024-04-05 19:25:40 +01:00
0051b078a1
monitor: check for invalid workspaces in onConnect
...
ref #5443
2024-04-05 16:57:49 +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
a9d7526aae
core: ensure m_pLastMonitor validity over unsafe state
...
ref #5241
2024-03-26 02:26:19 +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
Vaxry
c3882bb832
internal: Support libhyprcursor ( #5009 )
...
woo
---------
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2024-03-09 16:52:59 +00:00
Aaron
5920c6a6b8
socket2: Add 5 IPC event with support for workspace ID ( #5022 )
...
- `moveworkspacev2`: returns workspaceID,workspaceName,monitorName
- `movewindowv2`: returns windowAddress,workspaceID,workspaceName
- `createWorkspacev2`: returns workspaceID,workspaceName
- `destroyWorkspacev2`: returns workspaceID,workspaceName
- `workspacev2`: returns workspaceID,workspaceName
- Include workspaceID as a parameter in CWorkspace constructor to support `createWorkspacev2`.
Resolves #4929
2024-03-08 17:39:53 +00:00
thejch
6c4e2489a0
layout: Fix toggling fullscreen special workspace on different monitor ( #5000 )
...
* fix toggling fullscreen special ws on different monitor
* add for dwindle
* fix change regular workspace when special fullscreen
2024-03-07 13:27:58 +00:00
Junxuan Liao
08152477dc
monitor: remove commas from short description ( #4970 )
...
Since `hyprctl monitor` shows szShortDescription now, it needs to be sanitized.
(See #2457 )
Also, monitor selectors are now compared against szShortDescription and
szDescription to avoid re-striping the string.
2024-03-05 13:41:51 +00:00
thejch
9c48c322d4
keybinds: Allow fullscreen/maximize in special workspace ( #4921 )
...
* allow fullscreen/maximize in special workspace
* remove duplicate code
* hide top layer
* fix special fullscreen deco
* edit
* fix fade top layer when toggle special
* remove double render
2024-03-04 23:29:45 +00:00
063708df26
config: improve config value infrastructure
2024-03-03 18:41:38 +00:00