summaryrefslogtreecommitdiff
path: root/src/helpers/Monitor.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* monitor: clear output state after usageVaxry2024-01-271-0/+6
| | | | fixes massive lag
* deps: update wlrootsVaxry2024-01-271-13/+17
| | | | drops requirement for WLR_DRM_NO_ATOMIC provided kernel >= 6.8
* keybinds: Add dispatcher for xmonad/qtile-style workspace switching (#4439)virchau132024-01-151-2/+2
| | | | | | | | | | | | | | | * feat: implement xmonad/qtile-style workspace switching Implements the focusWorkspaceOnCurrentMonitor dispatcher and function, which implements XMonad/Qtile-style workspace switching. When called, focusWorkspaceOnCurrentMonitor will: 1. Send the requested workspace to the current monitor, 2. If the workspace was previously active on a different monitor, replace it with the workspace that was previously active on the current monitor, 3. Focus the workspace on the current monitor. * fix: address PR comments
* subsurfaceTree: update surface tree protocol feedback on mapvaxerski2024-01-091-1/+1
|
* special: move floating windows along with the workspacevaxerski2023-12-261-0/+16
|
* xdgshell: bump to 6, send suspended statesvaxerski2023-12-231-0/+6
|
* Revert "xwayland: push invisible windows outside layout"Vaxry2023-12-131-26/+1
| | | | | | This reverts commit accb3d8d0b339ce83dd36704503253d874c7163b. Bad idea
* xwayland: push invisible windows outside layoutVaxry2023-12-121-1/+26
| | | | fixes some xwl focus issues with special especially.
* keybinds: Keep focus on special when switching workspaces (#4084)dranull2023-12-071-12/+12
|
* monitor: remove comma from monitor description (#3996)François Conzelmann2023-11-301-1/+5
| | | | | | this allows for monitor specific rules to work on monitor with comma on their description fixes #2457
* monitor: fix transform matrix calculations for transformedVaxry2023-11-241-1/+1
| | | | fixes #3929
* renderer: Move to a full Hyprland GL rendering pipeline (#3920)Vaxry2023-11-241-0/+9
| | | Also updates wlroots
* internal: replace INT_MAX with WORKSPACE_INVALIDVaxry2023-11-121-1/+1
|
* output-layout: fix wlroots display handling (#3718)Alessio Molinari2023-11-121-4/+4
|
* Internal: Hyprland box implementation (#3755)Vaxry2023-11-041-2/+2
| | | | | | | * box impl * remove unused operators * missed applyfromwlr
* Core: various unsafe state improvements (#3713)Vaxry2023-11-011-24/+29
| | | Fixes #3637
* monitor: ensure vrr on workspace changevaxerski2023-10-121-0/+2
|
* tearing: cleanup vars and avoid rendering before drm is readyvaxerski2023-09-301-1/+1
|