summaryrefslogtreecommitdiff
path: root/src/helpers/Monitor.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* renderer: Explicit sync fixes (#7151)Vaxry2024-08-061-4/+60
| | | | | Enables explicit sync by default for most platforms `misc:no_direct_scanout` -> `render:direct_scanout`
* core/surface/buffer: Buffer lock/release fixes (#7110)Vaxry2024-07-311-4/+3
|
* internal: refactor fullscreen states (#7104)MightyPlaza2024-07-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* output: minor tearing fixesVaxry2024-07-301-1/+2
|
* output: submit damage to kmsVaxry2024-07-301-0/+2
|
* pointer: use preMonitorCommit for resetting render stateVaxry2024-07-301-0/+2
| | | | in DS preRender is not called
* debug: get rid of useless 1s in logs (#6969)Ikalco2024-07-221-1/+1
| | | | | * get rid of 1s in logs lol * replace WLR with AQ in logs
* Core: Move to aquamarine (#6608)Vaxry2024-07-211-108/+185
| | | | | | | | | | | | | | 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>
* workspaces: don't try to reopen special workspaces (#6802)Virt2024-07-071-0/+3
|
* core: add ability to select previous workspace per monitor (#6598)Alexander2024-06-221-10/+15
| | | Co-authored-by: Крылов Александр <aleksandr.krylov@hyperus.team>
* damageRing: move to hyprland implVaxry2024-06-191-11/+7
| | | | A small wlroots utility we were still using.
* pointer: use software rendering when monitor is mirrored (#6587)Lucas Reis2024-06-191-0/+10
| | | | | | | * 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
* core: Move to hyprutils for MathVaxry2024-06-191-1/+3
| | | | | | Moves CRegion, CBox and Vector2D over to hyprutils. Requires hyprutils>=0.1.4
* vrr: add option to fix mouse breaking vrr (#6483)UjinT342024-06-141-0/+18
| | | | | | | | | | | | | | | * 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>
* core: move to hyprutils for utils (#6385)Vaxry2024-06-111-2/+3
| | | | | | | | | | | | | * 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>
* output: remove wl_output globals for mirrored displaysVaxry2024-06-101-0/+5
| | | | ref #6387
* wayland/core: move to new impl (#6268)Vaxry2024-06-081-11/+1
| | | | | * wayland/core/dmabuf: move to new impl it's the final countdown
* presentation-time: move to new implVaxry2024-05-101-7/+18
|
* config: move various cursor-related vars to cursor:Vaxry2024-05-091-2/+2
|
* layer-shell: move to new implVaxry2024-05-091-1/+2
| | | | Also bumps the hw-s dep
* Tablet: move to new implVaxry2024-05-091-14/+0
| | | | Ring and strip are not implemented. Will I implement this? God fucking knows. Nobody seems to have that anyways.
* cursor: move to a hyprland implVaxry2024-05-091-15/+21
| | | | | | | This moves wlr_cursor to a completely new impl mostly under CPointerManager Also adds beginSimple to OpenGL for simple render passes (e.g. cursor)
* internal: new shared_ptr and weak_ptr implementation (#5883)Vaxry2024-05-051-6/+6
| | | | | | | | | | | 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.
* input: Introduce basic hyprland HID classesVaxry2024-05-031-4/+5
| | | | | | 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.
* internal: Window storage rework - part 1 (#5762)Vaxry2024-04-271-6/+6
| | | | | | | | | | | | | | | | | * Window storage rework - part 1 * format * remove useless include * fix pch * format * fix crash in dwindle * fix vram leak * prefer .expired() for bool checks
* gamma-control: move to new implVaxry2024-04-221-3/+9
|
* core: Fix double special workspace (#5574)thejch2024-04-131-1/+1
| | | | | | | * fix double special name * fix special on another monitor * remove extra stuff
* monitor: add workspace null check to visible flagVaxry2024-04-101-1/+2
| | | | ref #5524
* input: don't remove pinned focus on workspace change (#5486)MightyPlaza2024-04-071-9/+14
| | | modified: src/helpers/Monitor.cpp
* monitor: unset visible flag from ws on disconnectVaxry2024-04-051-0/+1
| | | | ref #5443
* monitor: check for invalid workspaces in onConnectVaxry2024-04-051-0/+3
| | | | ref #5443
* workspaces: add visible flagVaxry2024-04-031-4/+11
|
* Workspace/core: Refactor workspace storage (#5380)Vaxry2024-04-021-40/+40
| | | | | * refactor workspaces to use ptrs * clang-format
* core: ensure m_pLastMonitor validity over unsafe stateVaxry2024-03-261-1/+1
| | | | ref #5241
* animations: Fix animation issue in focusworkspaceoncurrentmonitor (#5202)thejch2024-03-231-0/+1
| | | | | | | | | | | | | | | | | * 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
* internal: Support libhyprcursor (#5009)Vaxry2024-03-091-4/+0
| | | | | | | woo --------- Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
* socket2: Add 5 IPC event with support for workspace ID (#5022)Aaron2024-03-081-3/+2
| | | | | | | | | | | - `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
* layout: Fix toggling fullscreen special workspace on different monitor (#5000)thejch2024-03-071-0/+10
| | | | | | | * fix toggling fullscreen special ws on different monitor * add for dwindle * fix change regular workspace when special fullscreen
* monitor: remove commas from short description (#4970)Junxuan Liao2024-03-051-3/+3
| | | | | | | 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.
* keybinds: Allow fullscreen/maximize in special workspace (#4921)thejch2024-03-041-0/+8
| | | | | | | | | | | | | | | * 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
* config: improve config value infrastructureVaxry2024-03-031-7/+9
|
* animations: Refactor AnimatedVariable (#4911)GartoxFR2024-03-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | * 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
* input: Map touch devices and tablets bound to an output (#3544)Philip Damianik2024-02-271-2/+29
| | | | | | | | | | | * Map bound touch devices and tablets to an output * Add "[[Auto]]" default option for auto detecting outputs for touch inputs * Bind new monitors to configured touch and tablet devices * Use Monitor::matchesStaticSelector in CConfigManager::getMonitorRuleFor * Use Monitor::matchesStaticSelector in CCompositor::getMonitorFromString
* Migrate the config to hyprlang (#4656)Vaxry2024-02-181-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* monitor: don't damage twice (#4727)Abílio Costa2024-02-171-3/+1
| | | | | | | | | When scaled, the ring is already fully damaged, no need to add the region damage. Also moved a variable that was being declared way to far for where it is actually used. Co-authored-by: Abilio Costa <abilio.costa@criticaltechworks.com>
* socket2: `monitoraddedv2` IPC event for monitor description and id (#4646)Jacob Birkett2024-02-151-0/+7
| | | | | | | | | * add monitor szShortDescription without DRM node name * change hyprctl to use szShortDescription * add monitoraddedv2 event * add monitor ID as first param of monitoraddedv2
* keybinds: Fix focus not moving along when moving workspace (#4660)Sefa Eyeoglu2024-02-091-2/+2
| | | | | --------- Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
* input: focus window on mouse down on decoration (#4514)MightyPlaza2024-02-041-1/+1
| | | Also unifies vectorToWindow funcs
* monitor: wrap usage of wlr_output_stateVaxry2024-01-281-23/+40
| | | | | | for better control and convenience in usage. fixes #4546
* monitor: don't call output_state_finish on buffer-less state clearsVaxry2024-01-281-1/+5
| | | | ref #4546