155fe6f165
popup: minor safety improvements
2024-06-05 16:53:49 +02:00
b30c7125d7
window: avoid nullptr deref on monitor in box helpers
...
fixes #6321
2024-06-03 21:09:18 +02:00
shezdy
0ebb43c1a3
renderer: fix xwayland solitary rechecks ( #6295 )
2024-06-01 20:45:30 +02:00
giskard
ebf258788e
config: add tag dispacther and window rule ( #6211 )
2024-05-28 23:37:24 +02:00
Vaxry
addd3e7f1a
xwayland: move to hyprland impl ( #6086 )
2024-05-25 22:43:51 +02:00
52684b7d90
window: fix invalid env buffer size in getEnv
2024-05-24 20:40:15 +02:00
3775776a07
window: guard monitor in bounding box calculations
...
fixes #6190
2024-05-22 22:37:16 +02:00
fe23d2b639
window: verify suppress flags in onUpdateState
...
ref #6108
2024-05-17 19:54:05 +01:00
9518cec833
popup: clip input region to surface size
...
fixes #6125
2024-05-17 19:43:56 +01:00
fc72df8e58
seatmgr: Add a grab class
2024-05-14 23:13:33 +01:00
0cfdde3d1a
xdg-shell: move to new impl
2024-05-14 23:02:24 +01:00
121d3a7213
wl_seat: move to hyprland impl
2024-05-14 23:02:24 +01:00
ba69652193
window: set sane default pseudo size
2024-05-13 22:21:06 +01:00
Brenno Lemos
33a7b7bb6b
core: fix on-empty workspace being called too often ( #6026 )
2024-05-12 00:03:32 +01:00
494b9415a1
layersurface: avoid restack on identical layers
...
ref #6014
2024-05-11 18:31:50 +01:00
b6a7fb9e91
layersurface: fix invalid use of std::move
...
fixes #6014
2024-05-11 14:43:44 +01:00
MightyPlaza
c19903eaf8
windowrules add focusonactivate ( #5976 )
...
modified: src/config/ConfigManager.cpp
modified: src/desktop/Window.cpp
modified: src/desktop/Window.hpp
2024-05-10 12:27:54 +01:00
2549f0cc97
layersurface: reset popuphead after unmap
...
fixes #5980
2024-05-10 12:03:38 +01:00
2ba6bb69c4
popups: fix breadthfirst and at
...
fixes #5977
2024-05-10 02:38:56 +01:00
db30ff63e6
popups: avoid infinite recursion in bf
2024-05-10 02:38:56 +01:00
635a02d83f
layer-shell: move to new impl
...
Also bumps the hw-s dep
2024-05-09 22:02:18 +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
5e7925eaeb
foreign-toplevel: bypass no activate focus checks
...
ref #5939
those are used by focus switchers so they should bypass stuff like focus_on_activate = false
2024-05-08 01:31:22 +01:00
598bbd186b
window: avoid uaf on updateWindow decos
...
TODO, make these pointers SP to avoid this in the future.
fixes #5909
2024-05-07 17:37:06 +01:00
VPavliashvili
375e77e398
ipc: add togglegroup, moveintogroup and moveoutofgroup events ( #5866 )
2024-05-07 12:00:55 +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
0b215c5f24
idle-inhibit: fix and cleanup visibility logic
...
fixes #5878
2024-05-04 23:46:10 +01:00
JManch
2d40046f24
windows: set fullscreen border size to 0 ( #5865 )
2024-05-04 12:07:36 +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
Gabriel Ford
0623cfabc9
windowrules: Fix Floating Grouped Windows Crash and Bug. ( #5826 )
...
* Don't unhide grouped items.
* Remove head check as that wasn't always correct.
* Replace lock with expired()
* Remove set hidden from max size.
2024-05-03 02:00:58 +01:00
56de72f357
internal: store matched windowrules and emit event
...
new event for plugins, windowUpdateRules
2024-05-02 02:18:01 +01:00
zakk4223
d2899a6c27
layout: Trigger layout recalcuation on deco position/size change ( #5821 )
...
* Trigger layout recalcuation on deco position/size change
* Remove now unneeded code
* Formatting
2024-05-01 12:59:40 +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
86133983a9
xdg-activation: move to new impl
2024-04-29 16:43:24 +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
25aec3ac8c
pointer-constraints: move to new impl
2024-04-27 03:17:04 +01:00
ecf282d331
wlr-foreign-toplevel: move to new impl
2024-04-25 01:10:43 +01:00
4540d8ccd5
style: fix clang-format
2024-04-24 16:45:54 +01:00
608eff600d
tokens: add more modes to initial_workspace_tracking
...
1 is single-shot, 2 is persistent
fixes #5732
2024-04-24 16:16:52 +01:00
Agent00Ming
81bb4eb2f6
workspace: Fix duplication of "special:" in special workspace name ( #5729 )
...
* Fix duplication of "special:" in special workspace name
modified: src/desktop/Workspace.cpp
* Track default special workspace name as special:special
This is to fix the edge cases with the previous commit without breaking
user configs.
modified: src/helpers/MiscFunctions.cpp
---------
Co-authored-by: Agent_00Ming <agent00ming9366@gmail.com>
2024-04-24 16:07:22 +01:00
Gabriel Ford
c3ec16f494
config: Add More Monitor 'Auto' Positions. ( #5670 )
...
* Reverse Window Positioning.
* Cleanup old comments and logs.
* Finish Splitting Left and Right offset.
* Forgot to add Auto Left to ConfigManager
* Fix problems with auto_left.
* Nearly finish up and down.
* Finish draft of all four dirs. Testing now.
* Change Y value in moveTo for up and down.
* Format, comment, and cleanup.
* Address Vaxry's feedback.
* Add check to see if auto position is first rule.
* Run clang-format.
2024-04-23 01:49:25 +01:00
29308b94ca
windows: add misc:initial_workspace_tracking
...
By default enabled, will track the initial opened workspace of a window spawned for 2 minutes or until it's moved to a different workspace.
For example: you run a launcher and open an app on workspace 1, but quickly switch to workspace 2. The app will now open on workspace 1 regardless of your switch.
2024-04-23 01:49:23 +01:00
f587c3e0ba
alpha-modifier: add support for protocol
2024-04-21 21:21:22 +01:00
e823b5d693
Window: add destroy signal
2024-04-21 16:54:50 +01:00
thejch
7c3bd4c19f
workspace: Add fullscreen workspace selector ( #5640 )
...
* add fullscreen selector
* use stoi
2024-04-21 01:50:08 +01:00
4ad739ec63
HookSystem: improve callback safety
2024-04-20 20:16:42 +01:00
Vaxry
b52a49b4c4
tearing-control: hyprland impl ( #5655 )
...
* tearing: hl impl
* format
2024-04-19 22:16:35 +01:00
Sungyoon Cho
dd39cd7e42
windows: recalculate monitor after updating windows ( #5647 )
...
Recalculate monitor after updating windows, so layout render doesn't get
overridden.
2024-04-19 18:46:16 +01:00
zakk4223
4d0a635237
workspace: Add 'v' flag for workspace selector that counts only visible windows ( #5628 )
...
* Add 'v' flag for workspace selector: counts only visible windows
* extra commit because I'm dumb
* guard
2024-04-19 02:44:51 +01:00
32555e98dd
window: remove input ref on unmap
...
ref #5605
2024-04-16 15:17:54 +01:00
LivingCodeX
fd7ea4f27c
constraint: Fix xwl cursor locking for scaled monitors ( #5587 )
...
* Fix xwl cursor locking for scaled monitors
* Add null check for window
* Replace m_fLastScale with m_fX11SurfaceScaledBy
* Improve code style
* Improve code style via clang-format
2024-04-14 21:31:50 +01:00
thejch
582d6233c8
workspace: fix workspace name selector returning true early ( #5571 )
2024-04-13 01:55:17 +01:00
dd6fdf49d9
window: always unref workspace on unmap
...
fixes #5563
2024-04-12 19:52:01 +01:00
abc131ec7b
configmgr: fix header priority
2024-04-11 02:12:29 +01:00
Sungyoon Cho
c35fa9bacc
workspace: update windows when selector match could change ( #5533 )
...
* workspace: update windows when group updates
* workspace: update windows when floating toggle
* workspace: update windows when stop dragging window by mouse
2024-04-10 17:26:11 +01:00
SoSeDiK
1343aa865d
config: Don't override fullscreen opacity if only two opacities are provided ( #5512 )
2024-04-09 16:22:44 +01:00
Sungyoon Cho
fcac25bcc2
workspace: Add count group flag in windowCount workspace selector prop ( #5499 )
...
* Add groupCount workspace selector prop
* Intergrate groupCount with windowCount
2024-04-09 12:08:38 +01:00
Tom Englund
125a8f7e07
workspace: fix crash on destruction of compositor ( #5495 )
...
when the compositor destructs because of exiting hyprland the
hookmanager and eventmanager is already destroyed, add an if check in
the destructor of workspace so it doesnt segfault on exit.
2024-04-08 18:28:11 +01:00
SoSeDiK
43b96f03b5
props: Allow setting per-window fullscreen opacity ( #5470 )
2024-04-07 23:19:02 +01:00
fa79aacea3
constraint: fix possible uaf on double destruction
...
ref #5448
2024-04-06 18:43:17 +01:00
staz
1596e2d1f7
workspacerules: add back on-created-empty functionality ( #5452 )
...
* workspacerules: add back on-created-empty functionality
* clang format
* workspacerules: spawn on-created-empty window while initializing CWorkspace
* clang format
* configManager: fix typo
---------
Co-authored-by: Your Name <you@example.com>
2024-04-06 15:53:32 +01:00
24734fbf1d
subsurface: init existing subsurfaces on children creations
...
fixes #5333
2024-04-06 03:09:20 +01:00
094bce8118
core: simplify sanityCheckWorkspaces
2024-04-05 19:43:51 +01:00
f815a33f64
workspace: remove monitor and visible flags on inert
2024-04-05 16:57:49 +01:00
thejch
1e8f57c734
workspacerules: fix workspace rule loops ( #5433 )
2024-04-05 16:54:30 +01:00
1454c6213e
window: fix invalid last workspace id
...
ref #5432
2024-04-04 22:49:15 +01:00
4f3e90ad2d
popups: more safety in damage checking
2024-04-04 16:42:30 +01:00
347b839034
workspaces: add visible flag
2024-04-03 10:09:48 +01:00
MightyPlaza
153c8f35ce
workspace: fix special unnamed workspace rules ( #5390 )
...
modified: src/desktop/Workspace.cpp
2024-04-02 22:58:45 +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
2e5b146e57
workspace: remove lastFocusedWindow on unmap
2024-04-02 12:10:03 +01:00
thejch
16a9c16d9f
renderer/animations: Fix various inaccurate damage tracking issues and offsets ( #5297 )
2024-03-31 02:14:26 +01:00
thejch
5e8c25d498
core: match all workspace rules instead of the first one only ( #5340 )
2024-03-31 00:49:53 +00:00
2930c5cb6f
animvar: fixup update callbacks and cleanup
2024-03-29 00:23:23 +00:00
ca17a89d86
renderer: allow blurring ls popups
2024-03-25 16:09:02 +00:00
295128ab2a
window: assign surface on create
...
ref #5076
2024-03-23 22:10:37 +00:00
361357095c
workspace: fix selectors with special:
...
fixes #5187
2024-03-20 18:06:03 +00:00
thejch
95ac8a34b1
workspace: fix integer overflow in selector parser ( #5177 )
2024-03-20 02:33:39 +00:00
8593c45be3
refactor: move window.hpp to desktop/
2024-03-20 01:44:51 +00:00
f6038837bc
constraint: do not disable constraints in destroy
...
fixes #5170
2024-03-20 01:30:41 +00:00
05cd6d3df1
config/workspace: added workspace selectors
2024-03-19 20:56:20 +00:00
c32b2331d1
constraint: set active flag before propagating props
...
fixes #5170
2024-03-19 18:55:17 +00:00
bb933dcf04
popup: avoid damage loops with commits
...
fixes #5118
2024-03-15 15:55:30 +00:00
045c3fbd85
subsurface: fix visibility check
...
ref #5113
2024-03-14 20:42:33 +00:00
b7b13623ba
subsurface/popup: expand on map/unmap to add buffering
...
ref #5113
2024-03-14 20:21:58 +00:00
Matt Wyatt
335506d555
constraints: only warp cursor on deactivate if constraint is locked. ( #5056 )
2024-03-09 23:19:48 +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
31e1287da2
subsurface: don't update transform on unmap
...
fixes #4969
2024-03-05 20:45:23 +00:00
a4c1f4a03d
popup: send scale on map
...
fixes #4972
2024-03-05 20:42:29 +00:00
12985fa0d8
surface: fix damage tearing feedback
...
fixes #4935
2024-03-05 00:21:37 +00:00
063708df26
config: improve config value infrastructure
2024-03-03 18:41:38 +00:00
Vaxry
d72ea5f2a7
input: Rewritten pointer constraints ( #4889 )
...
* rewritten constraints
* send pointer enter on activate if not pointer focus
* minor cleanup
* simulate movement on commit
* don't ignore oneshot prop
* various fixes
* dont send motion on confined
* update pos hint on region change
2024-03-02 21:04:55 +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
Brett Alcox
6e3a494d1d
core: add additional headers for Popup.cpp and InputMethodRelay.hpp ( #4909 )
2024-03-01 20:07:36 +00:00
f590505daf
popup: minor fixes to xdg geometries
...
fixes #4900
2024-02-29 21:51:50 +00:00
6916d0a6a3
surface: unify owners
2024-02-29 15:07:14 +00:00
2e111c8cf9
xdg: rewrite entire popup implementation
2024-02-29 14:26:02 +00:00
b39dcfa497
refactor: move a few things to desktop/
2024-02-29 13:03:38 +00:00