23a8f06594
virtualptr: allow binding to output
2024-07-29 16:27:09 +02:00
70468857da
egl: attempt a 3.2 egl context first
2024-07-29 14:27:05 +02:00
87699575e1
egl: require gles 3.0 only
...
No clue what could break, hopefully nothing
ref #6973
2024-07-29 14:23:19 +02:00
outfoxxed
33e513d489
xdg-shell: fix xdg-positioner y-flip ( #7094 )
2024-07-29 09:48:27 +01:00
Virt
6e6c61b9e8
layer-shell: avoid crashes on unmap ( #7092 )
2024-07-29 09:47:25 +01:00
a9d87bd666
surface: emit unmap before unmapping and releasing the buffers
2024-07-28 23:56:35 +02:00
7df9b01d48
core: emit unmap event after unmap in surface destroy
2024-07-28 23:47:17 +02:00
256db08aed
layersurface: null check for surface validity before unmap()
2024-07-28 23:41:41 +02:00
73d09953e8
core/surface: drop map/unmap events in member funcs
...
causes loops
2024-07-28 23:41:41 +02:00
Sungyoon Cho
9b6ae4f77b
input: fix keyboard leds with multiple keyboards ( #7079 )
2024-07-28 11:46:38 +01:00
outfoxxed
bc86afea7e
xdg-shell: completely rewrite xdg-positioner ( #7067 )
...
This implementation actually works.
2024-07-27 21:43:01 +01:00
6edfdd63a1
surface: avoid crashes on fading out layers
2024-07-27 22:15:36 +02:00
MightyPlaza
ad711ef421
input: unify removing currentlyDraggedWindow ( #7071 )
...
modified: src/desktop/Window.cpp
modified: src/events/Windows.cpp
modified: src/layout/IHyprLayout.cpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/KeybindManager.hpp
modified: src/managers/input/InputManager.cpp
2024-07-27 17:46:19 +01:00
ae638d997d
configmgr: fix warning
2024-07-27 18:15:47 +02:00
141cd09bd3
renderer: use session lock alpha for rendering lacking locks
2024-07-27 18:13:41 +02:00
0243271544
layer-shell: properly map and unmap surface and propagate unmap events
2024-07-27 18:08:22 +02:00
729b47d46d
input: refocus last window on keyboard unfocusable surfaces
...
fixes #4460
2024-07-27 17:49:35 +02:00
MahouShoujoMivutilde
84227eb587
input: Fix hyprctl switchxkblayout
not actually changing layout ( #7070 )
...
Emits `SModifiersEvent` in `updateModifiers()`
Before the patch:
Changing layout with `hyprctl switchxkblayout ...` results in:
* active keymap in `hyprctl devices` is changed
* no event
* no layout is actually changed UNTIL you press one of the mod keys
(Alt | Shift | Super | Ctrl)
After:
* active keymap in `hyprctl devices` changed
* activelayout IPC event emitted
* layout is changed
This fixes https://github.com/hyprwm/Hyprland/issues/7044
2024-07-27 16:43:45 +01:00
daed75219f
wayland/compositor: fixup double buffer releases
...
fixes #7043
2024-07-27 17:04:03 +02:00
Ikalco
ec672b1ab9
protocols: move screencopy and toplevel export to hyprwayland-scanner ( #7065 )
...
* move screencopy and toplevel export to hyprwayland-scanner
* oops
2024-07-27 16:02:02 +01:00
963816b9a6
layersurface: fixup focus issues in onUnmap
...
fixes #6929
2024-07-27 15:04:03 +02:00
682865632f
xwayland: fix high cpu idle usage
...
fixes #7051
2024-07-27 13:58:30 +02:00
76610d9fb0
opengl: destroy cairo image surface after use
2024-07-27 13:03:43 +02:00
57371b93a0
renderer: drastically optimize bg texture creation
...
stop loading 20MB images every time, dumbass
2024-07-26 19:53:24 +02:00
33a5c8ce32
config: avoid using initial ws tracking for exec-once
2024-07-25 15:29:39 +02:00
a0d15a0b7b
wayland/compositor: release buffers on unmap
...
XWayland does not use the regular commit(null) method to unmap, which results in buffers never being released.
release the buffers if present and un-released in the unmap() handler
ref #6584
2024-07-25 14:12:08 +02:00
cd942ad12d
keyboard: update xkb state after key event
...
fixes #6946
2024-07-25 13:10:53 +02:00
daf5fad190
keyboard: properly update keymap state and fd on keymap changes
...
needed for virtual keyboards that impose their own layouts.
fixes #6991
2024-07-25 13:02:10 +02:00
MightyPlaza
4beac91cbd
keybinds: add safeguard to mousebinds ( #7034 )
...
modified: src/managers/KeybindManager.cpp
2024-07-25 00:19:15 +02:00
Anton Lazarev
391f1ae838
input: don't simulate mouse movement on focus change in follow_mouse = 2/3 if no_warps is false ( #7015 )
2024-07-25 00:16:47 +02:00
MightyPlaza
a0be3de0e8
keybinds: handle monitor change in moveWindowIntoGroup ( #7030 )
...
modified: src/managers/KeybindManager.cpp
2024-07-24 20:00:25 +02:00
Ikalco
3e543d2ce8
core: Properly shutdown wl display ( #7018 )
...
* correctly destroy wayland globals
* properly shutdown and cleanup hyprland
* appease the nitpick gods and some comments
2024-07-24 19:07:36 +02:00
MightyPlaza
735e3c6c56
crashreporter: add date and flags to crash report ( #7028 )
...
modified: src/debug/CrashReporter.cpp
2024-07-24 19:05:54 +02:00
b16fb9770c
egl: support getting the device via platform_device
...
a neat EXT
2024-07-24 18:53:51 +02:00
MightyPlaza
f2b6ebbf54
keybinds: remove toggleopaque ( #7024 )
...
modified: src/managers/KeybindManager.cpp
modified: src/managers/KeybindManager.hpp
2024-07-24 18:53:51 +02:00
fe19754887
shortcutsInhibit: fix crash
2024-07-24 16:26:44 +02:00
MightyPlaza
72bce7efd5
keybinds: add bindp and noshortcutsinhibit ( #7017 )
2024-07-24 14:10:36 +02:00
99088eaed8
compositor: simplify getWindowFromSurface
2024-07-24 11:07:28 +02:00
Leon
2da3cfb422
touch: fix touch swipe invert config ( #7014 )
2024-07-24 10:59:50 +02:00
8a4548e430
window: drop ack requirement for applying pending reported size
...
fixes #6533
2024-07-23 23:38:58 +02:00
Ikalco
a5f58a3126
layer-shell: validate exclusiveEdge and don't set it as top by default ( #7006 )
...
* validate exclusiveEdge and don't set it as top by default
* make sure exclusive edge anchor is within bounds
2024-07-23 20:03:15 +02:00
077494ee85
surface: fix zero_scaling xwayland damage
2024-07-23 19:56:47 +02:00
Sam Lakerveld
3c758db95c
renderer/layer-shell: use explicitly set exclusiveEdge ( #6984 )
2024-07-22 23:36:58 +02:00
7c68236a51
egl: avoid setting debug mode and handle legacyrenderer
...
ref #6973
2024-07-22 23:05:22 +02:00
4c3b035162
pointer/hw: rollback the swapchain on multiple renders without a commit
...
fixes the hack
2024-07-22 19:19:37 +02:00
f17f8b219c
pointer/hw: extend cursor swapchain to 3
...
otherwise on some commits we draw twice and we draw over the front buffer
2024-07-22 19:05:45 +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
77b134e23b
virtual-pointer: fixup virtual pointer warp events
...
fixes #6976
2024-07-22 17:24:30 +02:00
87db950189
wl_seat: avoid sending events to objects without caps
...
ref #6835
2024-07-22 16:57:35 +02:00
5bae7f150b
wayland/output: avoid sending events to dead outputs
...
ref #6835
2024-07-22 16:56:51 +02:00
diniamo
d03fa94c2c
core: avoid locking 2 wayland sockets ( #6971 )
...
* fix: avoid locking 2 wayland sockets
* format
* fix formatting
2024-07-22 13:16:25 +02:00
UjinT34
511e9ccdd1
xwm: Fix xwayland black window bug after losing focus ( #6966 )
...
* fix xwayland black window bug
* resend normal state
2024-07-22 13:15:40 +02:00
3132f0275e
touch: set lastInputTouch on every event
2024-07-22 13:05:06 +02:00
1797319a07
renderer: untransform textures matching display transform
...
fixes #6754
This will break if the client uses a transform that is not equal to the display, reverting to old behavior. Combining transforms is left as a todo for the future.
2024-07-22 13:01:55 +02:00
5979ceb56b
surface: fixup logical damage size calculations
...
fixes #6618
2024-07-22 12:38:05 +02:00
672bf1f867
compositor: ignore setting surface scanout if DS is disabled
2024-07-21 23:52:16 +02:00
33e933e2a0
renderer: drop redundant spammy trace log
2024-07-21 22:09:29 +02:00
341fb4497f
wayland/compositor: fixup buffer damage tracking for wl_shm buffers
...
remove qt hack, fixup conditions
fixes #6844
2024-07-21 22:05:53 +02:00
cbaac6deaf
xwm: drop invalid case for clearing X focus
...
fixes #6955
2024-07-21 20:02:48 +02:00
3b6bcd6ddc
presentation-feedback: fix invalid values sent after aq merge
2024-07-21 19:25:07 +02:00
7f624d2236
xwayland: fixup WM_SIZE_HINTS handling according to ICCCM
2024-07-21 17:41:26 +02:00
f7fb7e7e49
xwayland: avoid unfocusing on OR child focuses
...
fixes #6698
2024-07-21 17:27:36 +02:00
efcbcd7297
input: fix invalid usage of dev in setTouchDeviceConfigs
...
ref #6943
2024-07-21 16:45:46 +02:00
khachbe
cf373d315e
touch: add touch swipe invert config ( #6940 )
2024-07-21 13:59:09 +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
phonetic112
f642fb97df
core: Fix crash on opening chromium ( #6932 )
2024-07-20 10:11:32 +02:00
Ferdinand Bachmann
efccf25fcc
compositor: implement wayland socket handover ( #6930 )
...
* compositor: implement wayland socket handover
This commit implements the compositor side of the Wayland socket
handover protocol as described in the [KDE Wiki]. The CLI options are
chosen so that they are compatible with Kwin.
[KDE Wiki]: https://invent.kde.org/plasma/kwin/-/wikis/Restarting
* main: verify that --wayland-fd is a valid file descriptor
* main: fail if only one of --socket and --wayland-fd is passed
2024-07-20 00:37:20 +02:00
Agent00Ming
8e15f91c24
input: Emulate discrete scrolling from v120 events ( #6881 )
...
* seat: avoid sending axis_stop() when source is wheel
* fix rounding for absolute discrete values greater than 1
Co-authored-by: Agent_00Ming <agent00ming9366@gmail.com>
2024-07-18 21:57:08 +02:00
Party Wumpus
293e687389
renderer: Make shader time always count from zero ( #6903 )
...
* testing out an initialtime variable
* Make time universally start at zero instead of exposing an initial time
* Appease the CI
2024-07-16 22:03:10 +02:00
Mihai Fufezan
da956c8a97
config: use hyprutils helper ( #6891 )
...
* flake.lock: update
nix/overlays: remove xwayland overlay (merged upstream)
* config: use hyprutils helper
* flake.lock: update
* CMake & Meson: update required versions
2024-07-16 21:23:37 +02:00
Khiet Tam Nguyen
bd526822de
config: add option to exit window while retaining fullscreen ( #516 ) ( #6880 )
...
* feat: saving fullscreen mode and state for restoring later
* style: no p-prefix, capitalised constants
2024-07-15 13:48:04 +02:00
MightyPlaza
f442f435d3
layout: update workspace rules on layout change ( #6878 )
...
modified: src/layout/DwindleLayout.cpp
modified: src/layout/IHyprLayout.cpp
modified: src/layout/MasterLayout.cpp
2024-07-15 11:57:52 +02:00
Khiet Tam Nguyen
bc6b0880dd
window: override noMaximize if new window takes over fullscreen ( #6812 ) ( #6870 )
2024-07-13 20:44:32 +02:00
MightyPlaza
ed6c701144
renderer: partially revert previous xray fix ( #6868 )
...
modified: src/render/OpenGL.cpp
2024-07-13 20:29:07 +02:00
Tim Waterhouse
45c4898423
socket2: Add windowtitlev2 event which includes the window address ( #6856 )
...
Fixes #5393
2024-07-13 16:21:32 +02:00
David De Sousa
a770a88e09
toplevelexport: fix flipped r/b channels when sharing windows ( #6861 )
...
fixes #6823
2024-07-13 12:53:53 +02:00
Tim Waterhouse
1f64668953
ext-foreign-toplevel: Send done after title and class ( #6857 )
...
According to the spec (https://wayland.app/protocols/ext-foreign-toplevel-list-v1#ext_foreign_toplevel_handle_v1:event:title ), clients should wait for the done signal before applying updates
2024-07-13 12:53:23 +02:00
13bc7e1e14
style: fix clang-format
2024-07-13 12:36:35 +02:00
Junxuan Liao
7486576fa7
session-lock: send locked
after the lock screen is properly rendered ( #6850 )
...
The protocol says:
> The locked event "must not be sent until a new "locked" frame (either from a
> session lock surface or the compositor blanking the output) has been presented
> on all outputs and no security sensitive normal/unlocked content is possibly
> visible".
This helps users ensure the screen is properly locked before suspending
the machine. (e.g. with swaylock --ready-fd)
2024-07-13 12:32:08 +02:00
MightyPlaza
f85c6416c6
renderer: fix a few xray regressions ( #6855 )
...
* fix xray unset
modified: src/render/OpenGL.cpp
* fix xwray unset
modified: src/render/OpenGL.cpp
2024-07-12 23:05:19 +02:00
Maximilian Seidler
9ff83f4aa9
sessionLock: fix the check for locking a locked session ( #6843 )
2024-07-11 16:40:43 +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
Ikalco
b03f41efec
xwayland: fix setting title prop ( #6809 )
...
* fix setting xwayland title prop
* add window title types
2024-07-08 17:46:42 +02:00
Virt
22138ac259
workspaces: don't try to reopen special workspaces ( #6802 )
2024-07-07 21:27:18 +02:00
Yusuf
19fb13e6cf
internal: Add functions to hyprctl header ( #6745 )
...
* add functions to hyprctl header
* refactor monitor json into own function and add it to header
* format hyprctl.hpp
* move functions to namespace
* move helper functions to class
2024-07-07 17:52:56 +02:00
Maximilian Seidler
ede1e63f69
config: don't crash when getenv HOME returns null
2024-07-07 16:59:03 +03:00
cc98594c3a
pointer: update geometry after unplug events
...
fixes #6700
fixes #6740
2024-07-05 23:05:09 +02:00
MightyPlaza
0502c3f62b
keybinds: fix movewindow float to 0 ( #6777 )
...
modified: src/managers/KeybindManager.cpp
2024-07-05 22:46:38 +02:00
Agent00Ming
e894d5e964
tablet: Send .frame() on .proximity_out() ( #6761 )
...
Co-authored-by: Agent_00Ming <agent00ming9366@gmail.com>
2024-07-03 21:40:18 +02:00
6247a6b537
renderer: don't skip back background on preBlurQueued
...
fixes #6332
2024-07-02 18:40:27 +02:00
drendog
2fa57f2dc4
pointer: change min cursor padding to 0 ( #6027 )
...
* fix: change min cursor padding to 0
* chore: set default hotspot padding to 0
* fix: adjusting clamp after getting closest point to fix getting off limit point
* fix: deal with floating point to clamp to prev value
* refactor: max coords to vector
* fix: remove box closestPoint adjustment due its fix on hyprutils
2024-07-02 12:17:48 +02:00
Tom Englund
d7ea1b7785
xwayland: break cyclic loop of parents ( #6722 )
...
in X11 some surfaces is a parent of itself and creates a cyclic loop
when trying to find its parent. check for old parent and break if its
beginning to roll over.
2024-07-01 00:26:08 +02:00
UjinT34
4d6f96f74f
debug: add Nvidia driver info ( #6715 )
...
* add nvidia driver info to systeminfo
* check file exists
2024-06-30 13:16:41 +02:00
Tom Englund
8ff9410d2c
inputmgr: ensure we dont divide by zero ( #6713 )
...
some weird combination of scrolling/nesting hyprland and closing a
window i managed to divide by zero here, reported by ubsan. add a check
to ensure we dont hit UB.
2024-06-30 13:15:59 +02:00
はれなよ
718afe271e
seat: don't send keyboard data without a keyboard cap ( #6697 )
...
* Fix #6279 : prevent sending keymap or repeat info events by keyboards without keyboard capability
* Remove brackets
2024-06-29 20:05:07 +02:00
はれなよ
1f43a5c859
session: fix activate events being always treated as on ( #6696 )
...
* Fix listener_sessionActive to handle an event correctly when the session get inactivated
* Remove log
2024-06-29 20:04:48 +02:00
9c5dd59d4b
input: fix capabilities enum types passed
...
hyprland down to the seat protocol impl expects IHID capabilities, not WL_ ones
ref #6702 #6196
2024-06-29 00:23:02 +02:00
d16c6aa1db
pointer-constraint: set lifetime correctly
...
ref #6679
2024-06-29 00:18:24 +02:00
Tom Englund
ac11771348
core: fix a few ubsan issues reported at exit of hyprland ( #6699 )
...
* watchdog: dont detach and cause race condition
instead of detaching and causing a race condition on destruction where
the thread is alive and watchdog has been destroyed, check if its
joinable and join it on destruction.
causes heap use after free on exit of compositor.
* render: add checks for compositor shutting down
avoid member call on null pointer, if the g_pHyprRenderer is destroyed
we can call the member makeEGLCurrent on it, causes undefined behaviour
on destruction of the compositor/hyprrenderer.
found with ubsan.
2024-06-28 22:24:32 +02:00
Alexander
f2dc48d92f
keybinds: never switch to another monitor with per_monitor ( #6665 )
...
Co-authored-by: Крылов Александр <aleksandr.krylov@hyperus.team>
2024-06-27 15:07:56 +02:00
outfoxxed
e4d09aa3a9
sessionLock: focus lock on creation based on mouse position ( #6658 )
...
* sessionLock: focus lock on creation based on mouse position
* sessionLock: immediately unfocus any focused surfaces on lock
2024-06-25 23:22:38 +02:00
c338acbb7d
ime-relay: fix crash on nullptr surface focus
2024-06-25 22:46:36 +02:00
95782de966
renderer: don't use the surface counter in popup iterations
...
fixes #6663
2024-06-25 20:04:02 +02:00
3ba3d20ad3
pointer: round position when rendering software cursors
...
otherwise the image gets resampled and gets blurry
2024-06-25 18:44:54 +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
Gregory
784c0b5ccb
keybinds: fix mouse pass ( #6652 )
...
* keybinds: fix mouse pass
* keybinds: keep mouse and keyboard focus separate after pass bind
2024-06-25 13:46:49 +02:00
outfoxxed
eef207ce0a
output: fix cursors disappearing after dpms ( #6659 )
2024-06-25 12:55:54 +02:00
cff0123ce6
wl-compositor: don't send enter to defunct output globals
2024-06-24 23:29:26 +02:00
8a68199a0c
foreign-toplevel-wlr: fix out-of-range for missing monitor resources
...
fixes #6635
2024-06-23 19:49:53 +02:00
e09addf8de
Workspace.hpp: fix include
2024-06-23 16:43:53 +03:00
John Titor
315f16d501
dbus: import PATH XDG_DATA_DIRS variables into systemd and dbus session
2024-06-23 16:11:50 +03: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
MariuszTrybus
0b924f541c
constraints: Lock surface region when region is empty ( #6627 )
...
* Pointer constraints: Lock surface region when region is empty
* Format code
2024-06-22 17:05:05 +02:00
Tom Englund
fa022901cf
surface: add virtual destructor to surfacerole to avoid undefined behaviour ( #6620 )
...
* surfacerole: add virtual destructor
all classes that will be derived from should have a virtual destructor
otherwise deleting an instance via pointer to a base class is undefined
behaviour, layershell/xdgshell hits this with std::default_delete in the
new sharedptr implentation.
* includes: fix missing includes
fix missing includes for no precompiled headers builds, and remove a
redefiniton of a macro already defined in macros.hpp
2024-06-22 00:40:45 +02:00
4a8b13ea4f
renderer: shrink occlusion rect if blur is used
...
if we are blurring, we cannot be sure whether the occluded region won't be included in the expanded damage. If it is, we'd get dark shimmers.
fixes #6547
2024-06-21 19:25:34 +02:00
8cf2ca1966
math: include cstring for memset
...
fixup name too
2024-06-21 19:20:15 +02:00
fabc30df52
format: include macros for unreachable
2024-06-20 00:15:24 +02:00
Przegryw321
d6de248b0d
window: expose pseudotiled state and add param to dispatcher ( #6583 )
...
* Show pseudotiled state of window in hyprctl clients
* Add a window as an optional argument for the pseudo dispatcher
* change formatting
2024-06-19 23:19:18 +02:00
c1e21719a2
core: avoid bumping hard rlimits, restore on fork
...
ref #6584
2024-06-19 18:36:40 +02:00
def5fcb212
damageRing: move to hyprland impl
...
A small wlroots utility we were still using.
2024-06-19 18:25:25 +02:00
6d21014a50
core: fix no-pch build
2024-06-19 16:29:00 +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
e0e3c4c6ae
compositor: bump nofile rlimits on launch
...
ref #6584
2024-06-18 21:53:01 +02:00
b98e0876d3
hyprctl: avoid using select()
...
move to poll()
ref #6584
2024-06-18 21:53:01 +02:00
d1340bd1d8
keybinds: ignore missing keysyms if no other methods match
...
fixes #6548
2024-06-17 17:53:51 +02:00
Tom Englund
28ce0e0f80
misc: a few compiler level performance optimisations ( #6559 )
...
* window: use const references instead of copies
use const references instead of wasteful copies and make the = operator
check for self assignment and return early. also use const in all the
other operators.
* listener: pass std::function as const reference
instead of copies pass the std::functions as const references.
* config: dont unnecessarily convert to c_str
getHyprlangConfigValuePtr wants an std::string and we already have an
std::string, dont convert it to a c_str only for it to be converted back
to an std::string.
* buffer: pass attributes as const reference
pass attributes as const reference instead of copies.
2024-06-17 17:37:36 +02:00
a9c7a0830f
data-device: minor fixes
...
send leave after drop, improve checks in completeDrag
2024-06-17 16:14:45 +02:00
785d062887
seat: track pressed pointer buttons
...
releases them on leave, unless there is a dnd going on
2024-06-17 16:07:32 +02:00
1360677478
subcompositor/renderer: fixup handling of subsurfaces below the main one
...
some apps (notably vlc 4) place a subsurface below the main surface (which is kinda cursed) but we have to accomodate for that
2024-06-17 12:42:39 +02:00
b15be9c77d
xwayland: do not set a new data source if it has no MIMEs
...
ref #6247
2024-06-16 21:34:17 +02:00
d5ef10abf4
data-device: properly abort drag on missing device
...
sometimes there is no focused device (e.g. when dnd'ing on nothing or xwayland) in which case abort would fail to send cancelled to the source.
ref #6543
2024-06-16 20:56:50 +02:00
172ee1cada
data-device: minor fixups
...
ref #6543
firefox needs a re-enter after a dnd
don't destroy dnd on an offer destroy, it's not valid
2024-06-16 20:36:55 +02:00
Dashie
738530e62e
xdg-shell: Continue transform of popup until size fits ( #6521 )
2024-06-16 20:01:08 +02:00
069a21a34e
xwayland: force default plain mime atoms on known types
...
ref #6247
2024-06-16 19:52:07 +02:00
2031af82fa
wl_data_device: send drop_performed in completeDrag
...
ref #6509
2024-06-16 17:41:16 +02:00
d0a6fa7aa6
wl_seat: accomodate for apps late-binding seat resources
...
Sends enter events when an app binds wl_keyboard or wl_pointer later than it should. Fixes some buggy apps.
Fixes #6131
2024-06-16 17:04:10 +02:00
648ac8a00b
xdg-shell: properly check for resource version for TILED and SUSPENDED states
...
fixes #6535
2024-06-16 16:46:22 +02:00
memchr
43c75f17eb
input: add cursor:warp_on_changeworkspace ( #6480 )
...
* input: add cursor:warp_on_changeworkspace
If enabled, warp the cursor to the last focused window on the workspace in the `changeworkspace' dispatcher, except if the cursor is currently on the WLR top layer.
Respect persistent warps.
* warp_on_change_workspace: check if focused layer is a window.
2024-06-16 16:42:32 +02:00
1b5444494d
seat/dnd: unfocus pointer from surfaces on dnd start
...
GTK is speshyal and requires this for functioning properly. Ugh.
It's technically not required by spec, f you gtk.
Ref #6509
2024-06-16 16:23:41 +02:00
memchr
3eaf35f1e2
hyprland.conf: update master section ( #6537 )
2024-06-16 16:44:13 +03:00
2566d81884
xwayland: fixup unfocus atom conditions
...
ref #6468
2024-06-16 12:38:09 +02:00
908bec1564
wl_seat: send repeat data from current keyboard on bind
...
ref #6515
2024-06-15 21:24:34 +02:00
memchr
89f795da98
master: refine master layout new window handling ( #6479 )
...
* ## Open window relative to active window
`new_on_active`:
- `none` (default):
- `before`: above of the focused window
- `after`: below the focused window
If the focused window is the solo master window, or the new window replaces master, this option has no effect and new_on_top are respected.
## Refine new window status control
**BREAKING CHANGE**: new_is_master removed in favour of new variable
`new_status`:
- `slave` (default): new window open as slave
- `master`: new window open as master
- `inherit`: new window inherit status from active window, i.e. when the focused window is master, new window will become new master, otherwise new window are added to slaves
* refactor: rename a few variables
2024-06-15 21:17:38 +02:00
91fe58f8f2
window: improve swallowing functionality
...
cleanups, fixes, etc.
ref #6095
2024-06-15 18:20:41 +02:00
77f44bfcab
output: avoid crashes when binding a defunct wl_output global
...
ref #6508
2024-06-15 17:56:44 +02:00
6c24dc0bb1
xdg-shell: fixup xdg-positioner's pointForAnchor with non-corner points
...
fixes #6157
2024-06-15 17:43:39 +02:00
46ef6653be
data-device: abort drag on unaccepted offers
...
fixes #6509
2024-06-15 17:33:21 +02:00
fb82f6bcd7
animations: fix overriding direction for slide
...
fixes #6512
2024-06-15 16:31:35 +02:00
32aca88752
keybinds: add custom event dispatcher
...
fixes #3439
2024-06-15 16:20:00 +02:00
df0c014ba0
xwayland: use safeRemove for removing files
...
fixes #6514
2024-06-15 16:06:07 +02:00
2f278dc883
egl: fixup format modifier lookups with implicit modifiers
...
ref #6485
2024-06-14 21:59:21 +02:00
12ce06f39b
format: fix flipped r/b channels on legacy_renderer
...
We don't wanna use an extension, but for gles2 there is no other option.
fixes #6465
2024-06-14 19:10:12 +02:00
a357fa3e0a
window: use effective damage for tearing re-schedules
...
fixes #6377
2024-06-14 16:45:41 +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
Alexander
b2590b58c5
hyprctl: added --follow option to rolliglog ( #6325 )
...
Co-authored-by: Крылов Александр <aleksandr.krylov@hyperus.team>
2024-06-14 12:11:40 +02:00
outfoxxed
9cd5b3587c
layerSurface: fix layer being refocused every commit with on_demand ( #6487 )
...
* layerSurface: fix layer being refocused every commit with on_demand
Fixes #6477
The surface will now only receive focus when its keyboard
interactivity is more than the previous keyboard interactivity in the
order none -> on_demand -> exclusive.
* layerSurface: only kb focus if becoming exclusive
2024-06-14 11:52:37 +02:00
phonetic112
8055b1c00a
misc: Fix build warnings ( #6486 )
2024-06-13 23:23:23 +02:00
5de273a144
xwayland: drop some spammy logs to trace
...
fixes #6478
2024-06-13 17:32:32 +02:00
Jan Beich
4842eb83b4
helpers: make shm_open() portable after 8bcccf9f0f
( #6471 )
...
https://pubs.opengroup.org/onlinepubs/9699919799/functions/shm_open.html
https://man.freebsd.org/shm_open/2
https://www.man7.org/linux/man-pages/man3/shm_open.3.html
2024-06-13 14:20:14 +02:00
Tom Englund
e6d10539af
core: fix a few small memory leaks on exit ( #6470 )
...
* renderer: add destructor and destroy event source
add destructor and destroy the event source.
one less leak on exit of compositor reported by asan.
* compositor: cleanup eventloop on exit
destruct hyprctl to release the event sources, and properly cleanup the
event loop on exit of compositor. less leaks on exit reported by asan
* threadmgr: destroy event source on destruction
destroy the event source on destruction.
* eventloopmgr: reset eventloopmgr on exit aswell
reset the eventloopmanager on exit of compositor and free the leaking
last idle frame on monitor destroy.
2024-06-13 12:08:02 +02:00
Yang, Ying-chao
a54f98c203
virtualkeyboard: check if VirtualKeyboard is valid before accessing client. ( #6460 )
...
This fixes crash when restarting fcitx (#6378 )
2024-06-13 11:33:47 +02:00
a9d7befc36
formats: fixup for legacy_renderer builds
2024-06-12 23:29:24 +02:00
0e18da8467
foreign-toplevel: fixup output resource finding
...
fixes #6457
2024-06-12 23:28:52 +02:00
18ee9ece9c
layershell: minor fixes to re-mapping of layers
...
ref #2012
2024-06-12 22:57:06 +02:00
Ikalco
38132ffaf5
renderer: properly software lock cursors with zoom_factor ( #6434 )
2024-06-12 19:28:52 +02:00
a99f314106
input: fallback to main surface if not found on window
...
fixes #6421
2024-06-12 18:39:52 +02:00
9d7d5ec3c8
seatmgr: fix missing nullcheck in updateActiveKeyboardData
...
sometimes we may set a keyboard that's about-to-be-deleted, we might as well check for that
additionally avoid setting null keyboards altogether
2024-06-12 17:03:12 +02:00
c7e85e26f7
seat: fixup touch event handling
...
fixes #6353
2024-06-12 16:49:26 +02:00
1bae19ce85
datadevice: only send actions for ver >= 3
...
fixes #6444
2024-06-12 16:16:27 +02:00
f687105eff
compositor: update suspended states on moveworkspacetomonitor
...
fixes #6417
2024-06-12 16:02:25 +02:00
MightyPlaza
32283ed706
groupbar: fix groupbar position rounding ( #6433 )
...
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
2024-06-12 15:56:35 +02:00
Moritz G
8412ffcc42
keybinds: fix bindm ( #6429 )
...
* fixed mouse dispatcher
* no brakets
* move command up
2024-06-11 23:02:29 +02:00
MightyPlaza
b6bf4afb48
layer: don't close special ws when restoring focus ( #6424 )
...
modified: src/Compositor.cpp
modified: src/Compositor.hpp
modified: src/managers/input/InputManager.cpp
2024-06-11 22:56:35 +02:00
Moritz G
e1b05f8eaf
binds: Add description to key binds ( #6358 )
...
---------
Co-authored-by: Yusuf Duran <firatyusuf.d@gmail.com>
2024-06-11 19:49:54 +02:00
outfoxxed
21b9e31bf4
layershell: Fix keyboard focus grabs ( #4968 ) ( #6394 )
2024-06-11 19:35:30 +02:00
Maximilian Seidler
1c388e52fb
session-lock: fix refocus after unlocking ( #6423 )
2024-06-11 17:18:51 +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
outfoxxed
809820921d
sessionLock: fix focus not being tied to mouse ( #6414 )
2024-06-11 17:11:15 +02:00
outfoxxed
90d0097716
input: fix input regions being ignored on ls-es ( #6413 )
2024-06-11 17:01:25 +02:00
zakk4223
b17381eb81
groupbar: Don't apply monitor scale twice to groupbar text ( #6411 )
2024-06-11 17:00:50 +02:00
Jan Beich
811429bfd4
wayland: consistently check mmap error after 6967a31450
( #6402 )
...
mmap() returns MAP_FAILED on error, not nullptr.
2024-06-10 22:31:03 +02:00
zakk4223
cef6aad28f
groupbar: Fix window title rendering ( #6392 )
2024-06-10 12:20:18 +02:00
outfoxxed
89a3c90613
wlr-foreign-toplevel: fix fullscreen failing and add output support ( #6360 )
...
* wlr-foreign-toplevel: fix fullscreen failing and add output support
* fix for core protocol rewrite
2024-06-10 12:16:38 +02:00
memchr
b16af45c4a
build: ProtocolManager missing header LIstener.hpp ( #6391 )
2024-06-10 12:15:25 +02:00
1423707dbe
output: remove wl_output globals for mirrored displays
...
ref #6387
2024-06-10 00:06:42 +02:00
722b846ac5
egl: assume implicit modifiers are available for old drivers
...
fixes #6367
2024-06-09 21:10:46 +02:00
4168b8c17b
seat: fix pointer frame events not being sent correctly
...
fixes #6384
2024-06-09 17:23:28 +02:00
Mykola Perehudov
bf75723f27
helpers: fix misuse of syscalls in sd namespace ( #6379 )
2024-06-09 09:43:39 +02:00
9994b73ad0
buffer: track asynchronous buffers and don't release them until unref
...
synchronous buffers are read instantly and we can release them, but asynchronous ones have to be locked until they are unref'd from .current to avoid reading from a buffer after .release()
2024-06-08 17:27:56 +02:00
void0red
d724556b7e
input: fix virtual devices not updating capabilities ( #6366 )
...
Signed-off-by: void0red <void0red@gmail.com>
2024-06-08 17:15:57 +02:00
memchr
7789caad39
build: include missing header: "debug/Log.hpp" in Format.cpp ( #6365 )
2024-06-08 16:25:01 +02:00
3fb079a2a3
renderer: allow custom uv for surface no-blur passes
2024-06-08 16:16:43 +02:00
211353dc34
core: verify surface roles on creation of objects
2024-06-08 12:03:47 +02:00
10e02076b1
wayland: fix invalid wl_output_mode dimensions sent
2024-06-08 11:50:44 +02:00
5b6d54cae0
xdg_shell: ignore outdated ack_configure events
2024-06-08 10:57:37 +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
c31d9ef417
xdg_shell: fix nested xdg_positioner calculations
...
ref #6240
2024-06-07 20:24:09 +02:00
6b6b02c27a
seat: send events to all bound seats for a client
...
some apps are legitimately braindead and bind wl_seat a bazillion times and expect the events to be sent to all of them
ref #6159
2024-06-07 20:24:06 +02:00
John M. Harris, Jr
40ce17bbbd
gestures: Add gestures:workspace_swipe_min_fingers option ( #6342 )
...
When gestures:workspace_swipe_min_fingers is enabled,
gestures:workspace_swipe_fingers is considered to be the minimum
number of fingers required to swipe.
This behavior is more similar to sway and macOS's default behavior.
For example, this allows you to set workspace_swipe_fingers to 3,
but swipe with 4 or more fingers instead of 3.
2024-06-07 19:54:08 +02:00