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
memchr
41e1147dfc
input: add cursor:persistent_warps to maintain relative position within a window ( #6338 )
...
Allows the cursor to return to its last relative position within a window when the window is refocused.
Allows the cursor to retain its relative position within a window when the window is swapped, moved, changed workspace, added to or removed from groups.
controlled with cursor:persistent_warps
2024-06-07 19:52:15 +02:00
9bc00897fc
xdg_shell: improve xdg_positioner slide behavior
...
ref #6240
2024-06-07 19:46:51 +02:00
d6337146bb
xdg_shell: improve xdg_positioner resize calculations
...
ref #6240
2024-06-07 18:42:38 +02:00
John M. Harris, Jr
429cff340d
hookSystem: Make needsDeadCleanup volatile ( #6356 )
...
The value of needsDeadCleanup would be clobbered after longjmp,
having an undefined value.
2024-06-07 18:31:27 +02:00
Tom Englund
af5f24929d
core: free more memory on destruction ( #6348 )
...
* pointermgr: add destructor to state and free buf
if the pointer has a buffer set it wont be freed upon destruction, make
asan more happy by adding a destructor and wlr_buf_unlock it on exit.
* cursormgr: free the animation timer event source
properly free the animation timer event source on destruction.
* compositor: free the critsig event source on exit
properly free the critical signal event source on exit.
* popup: clang format style
clang format.
2024-06-06 20:27:09 +02:00
giskard
c95845b148
log: log with local timezone ( #6331 )
...
* log: log with local timezone
* log: backward compatability for clang 17 with libc++
2024-06-05 18:30:46 +02:00
phonetic112
82099fd1c0
hyprctl: Allow setting name for custom/headless outputs ( #6319 )
2024-06-05 18:26:38 +02:00
155fe6f165
popup: minor safety improvements
2024-06-05 16:53:49 +02:00
memchr
fefa55d406
build: fix non-pch build ( #6337 )
2024-06-05 10:42:44 +02:00
Agent00Ming
d0a224a491
seat: discrete round away from zero + high res scrolling ( #6317 )
...
* Discrete scrolling round away from zero
e.deltaDiscrete can be multiples of 30 instead of the usual 120 causing
the rounded value to be 0 when too small causing erratic scrolling.
* Send value120 alongside discrete
Fixes sensitivity issues for clients that support value120 axis events
2024-06-03 22:47:02 +02:00
5517cc506b
xwayland: don't destroy server client
...
this potentially leaks, but avoids a UAF
ref #6323
2024-06-03 21:13:38 +02:00
0ac0f32671
toplevelexport: avoid locking software cursors during render
...
this may trigger a render begin/end and fuck up the pass
fixes #6277
2024-06-03 21:10:31 +02:00
b30c7125d7
window: avoid nullptr deref on monitor in box helpers
...
fixes #6321
2024-06-03 21:09:18 +02:00
3fd6c1b30e
layout: fix centering of new floating windows
...
ref #6154
2024-06-03 18:46:20 +02:00
Tom Englund
eaecf7db14
core: fix a few asan reported issues and a coredump on exit ( #6285 )
...
* xwayland: add destructor to CXWM and free resource
the wl_event_resource was running upon destruction of the compositor
causing a null pointer segfault in onX11Event so ensure the event is
removed upon destruction, also free the memory allocated by
xcb_errors_context_new and finally call xcb_disconnect on the connection
to free the fd and its memory.
* hyprctl: dont leak the fd on destruction
add a destructor and properly free the fd on destruction
* eventloop: add destructor and free event source
properly free the wl_event_source upon destruction.
2024-06-03 18:46:20 +02:00
wouter@wouterbijlsma.nl
e08195d240
Fix initial xdg-decoration toplevel decoration mode negotiation
...
Clients using zxdg_decoration_manager_v1::get_toplevel_decoration may
expect a receiving a zxdg_toplevel_decoration_v1::configure event to
determine the initial decoration mode, without having to go through a
zxdg_toplevel_decoration_v1::set_mode request. Hyprland was not sending
this event, resulting in unwanted decorations being drawn.
Specifically, clients using libdecor, e.g. applications using recent
GLFW, would draw GTK decorations with artefacts. This change fixes
these.
2024-06-02 23:11:55 +02:00
66acdfe2ad
seat: don't send keymap on empty device
2024-06-02 18:38:36 +02:00
shezdy
0ebb43c1a3
renderer: fix xwayland solitary rechecks ( #6295 )
2024-06-01 20:45:30 +02:00
obivan
df6ebe358b
pointer: Include monitor scaling in HW hotspot calculation ( #6283 )
2024-05-31 12:38:52 +02:00
a60c7283e6
xwayland: verify new xsurf is valid in prop reads
...
fixes #6250
2024-05-29 09:34:25 +02:00
giskard
ebf258788e
config: add tag dispacther and window rule ( #6211 )
2024-05-28 23:37:24 +02:00
Ikalco
73b133d015
hyprctl: Make setcursor better (support XCursor themes, give fail message) ( #6097 )
...
* add support for changing to X cursor themes
* use new hyprcursor abi for options
* remove unneeded struct
2024-05-28 23:35:18 +02:00
Connor Wong
722d537a91
windows: make new_window_takes_over_fullscreen use the new window's workspace ( #6263 )
...
* fix new_window_takes_over_fullscreen behavior
* missed a few things
2024-05-27 22:45:32 +02:00
AERDU
506d0c06e6
compositor: change monitor focus when no_warps is enabled ( #6260 )
...
fixes focus between monitors when moving using directions with no_warps = true
2024-05-27 22:45:14 +02:00
Flafy
546a486bab
hyprctl: add delimiter to hyprctl batch command ( #6261 )
...
adds a delimiter of 3 newlines to separate different command outputs
2024-05-27 22:31:35 +02:00
Jan Beich
db5d39a66f
meson: add more xcb-* dependencies after addd3e7f1a
...
ld: error: undefined symbol: xcb_icccm_get_wm_hints_from_reply
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::readProp(CSharedPointer<CXWaylandSurface>, unsigned int, xcb_get_property_reply_t*))
ld: error: undefined symbol: xcb_icccm_get_wm_size_hints_from_reply
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::readProp(CSharedPointer<CXWaylandSurface>, unsigned int, xcb_get_property_reply_t*))
ld: error: undefined symbol: xcb_errors_get_name_for_major_code
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::handleError(xcb_value_error_t*))
ld: error: undefined symbol: xcb_errors_get_name_for_minor_code
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::handleError(xcb_value_error_t*))
ld: error: undefined symbol: xcb_errors_get_name_for_error
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::handleError(xcb_value_error_t*))
ld: error: undefined symbol: xcb_xfixes_id
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::gatherResources())
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::gatherResources())
ld: error: undefined symbol: xcb_composite_id
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::gatherResources())
ld: error: undefined symbol: xcb_res_id
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::gatherResources())
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::gatherResources())
ld: error: undefined symbol: xcb_xfixes_query_version
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::gatherResources())
ld: error: undefined symbol: xcb_xfixes_query_version_reply
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::gatherResources())
ld: error: undefined symbol: xcb_res_query_version
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::gatherResources())
ld: error: undefined symbol: xcb_res_query_version_reply
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::gatherResources())
ld: error: undefined symbol: xcb_render_query_pict_formats
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::getRenderFormat())
ld: error: undefined symbol: xcb_render_query_pict_formats_reply
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::getRenderFormat())
ld: error: undefined symbol: xcb_render_query_pict_formats_formats_iterator
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::getRenderFormat())
ld: error: undefined symbol: xcb_render_pictforminfo_next
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::getRenderFormat())
ld: error: undefined symbol: xcb_errors_context_new
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::CXWM())
ld: error: undefined symbol: xcb_composite_redirect_subwindows
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::CXWM())
ld: error: undefined symbol: xcb_xfixes_select_selection_input
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::initSelection())
ld: error: undefined symbol: xcb_render_create_picture
>>> referenced by XWM.cpp
>>> src/Hyprland.p/xwayland_XWM.cpp.o:(CXWM::setCursor(unsigned char*, unsigned int, Vector2D const&, Vector2D const&))
ld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
2024-05-27 12:24:37 +03:00
Gabriel Ford
553232a3e4
hyprctl: Add Config Flag to hyprctl systeminfo
( #6160 )
2024-05-25 22:46:07 +02:00
Vaxry
addd3e7f1a
xwayland: move to hyprland impl ( #6086 )
2024-05-25 22:43:51 +02:00
90f262aada
pointer: remove dividing hotspot by scale
...
fixes #6117
2024-05-25 20:43:38 +02:00
Can
ce17961aad
keybinds: Added new dispatcher (sendshortcut) ( #6174 )
2024-05-24 20:58:26 +02:00
6d67b84469
monitor: avoid UB on undefined auto dir
...
ref #6217
2024-05-24 20:56:53 +02:00
thejch
0d6eae0523
pointer: add back nvidia hardware cursor quirks ( #6220 )
2024-05-24 20:50:22 +02:00
52684b7d90
window: fix invalid env buffer size in getEnv
2024-05-24 20:40:15 +02:00
Tom Englund
4e42107d25
pointermgr: ensure compositor exist on destroy ( #6216 )
...
on exit of hyprland the CMonitor destroy signal comes after the
compositor has been destructed, causing a heap use after free. add if
check to ensure compositor exist and isnt shutting down when its
triggered.
2024-05-23 21:19:14 +02:00
Alessio Molinari
eea0a6a704
internal: Replace monitor rule when disabling head. ( #6136 )
...
Closes #5978
2024-05-23 21:15:31 +02:00
System64
255272ea18
debug: Add ARM GPU info ( #6212 )
...
Added a simple way to get basic info about the GPU on ARM based systems
2024-05-23 18:04:39 +02:00
Ming-Chuan
df80fbf706
tablet: fix mapping when mapped region is specified ( #6206 )
...
When `region_size` is set in the config (non-empty
`boundBox`), cursor is mapped to wrong coordinate because
`CBox::translate` mutates `TAB->boundBox`, making all subsequent coordinate
calculations wrong.
This also fixes the edge case where user sets `region_position` but
not `region_size`.
2024-05-23 13:52:32 +02:00
shezdy
25b9446949
internal: save previous workspace before change ( #6202 )
2024-05-23 13:01:12 +02:00
62401d5b3f
screencopy: use a simple renderer for frame passing
2024-05-23 00:42:16 +02:00
3775776a07
window: guard monitor in bounding box calculations
...
fixes #6190
2024-05-22 22:37:16 +02:00
shezdy
155ae3721c
keybinds: Add option to disable window direction monitor fallback ( #6182 )
...
* add monitor fallback option
* format
2024-05-22 21:51:46 +02:00
giskard
93fea89043
renderer: render fonts with pango, add global font_family
config option ( #6138 )
2024-05-22 10:09:36 +02:00
baef55da1d
xdg-shell: fixup positioner behavior with slide and resize
...
if sliding and resizing, include the slide in the resize to avoid off-screen surfaces.
fixes #6150
2024-05-21 14:50:33 +02:00
f8857e6072
input: find surface pos correctly when mouse drag is active
...
fixes #6144
2024-05-18 21:20:01 +01:00
Gabriel Ford
c21a5a9340
layout: Fix shrinking pseudotile windows. ( #6143 )
2024-05-18 19:28:48 +01:00
2ead1fd221
virtual-keyboard: emit event before finishing keyboard
...
ref #6123
2024-05-17 20:07:33 +01:00
49485ba36a
pointer: damage in software mode on cursor image changes
...
fixes #6126
2024-05-17 20:04:17 +01: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
23cd4c7998
seat: update keymap/repeat info on keymap events from keebs
...
fixes #6114
2024-05-17 19:28:33 +01:00
Tuur Vanhoutte
0cb8fbe18e
error: Add option to change position of HyprError bar ( #3241 ) ( #6111 )
2024-05-17 19:06:51 +01:00
f21b6fe576
tablet: avoid null deref on an empty cursor set
...
fixes#6116
2024-05-17 14:51:06 +01:00
abbe71d26d
pointer: don't update hw cursors on disabled displays
2024-05-16 19:34:36 +01:00
Agent00Ming
3ac0e7ead1
seat: Send discrete event when axis source is scroll wheel ( #6103 )
...
modified: src/managers/SeatManager.cpp
modified: src/managers/input/InputManager.cpp
Co-authored-by: Agent_00Ming <agent00ming9366@gmail.com>
2024-05-16 13:30:55 +01:00
Gabriel Ford
d693c44836
keybinds: add keybind combos and add Left and Right mod distinction. ( #5966 )
2024-05-16 11:48:30 +01:00
zakk4223
ca0833c9ed
decoration: Stacked group tabs ( #5886 )
...
* Stacked group tabs
* Fix index when creating groupbar title textures
* Changes for stacked dnd
* formatting
* Don't remove internal horizontal padding when calculating stacked bar
width
2024-05-16 11:38:10 +01:00
de9798fcf9
configmgr: shadow exec rules when window is unmapped
...
fixes #6091
2024-05-16 00:55:55 +01:00
7e8c0b7f30
seat: send axis_stop events after axis events
...
fixes #6090
2024-05-15 23:13:51 +01:00
9eec4cb670
sysd: add missing header
...
ref #6094
2024-05-15 23:01:50 +01:00
JManch
a8522db683
keybinds: fix empty on monitor for new workspaces ( #6089 )
2024-05-15 21:03:51 +01:00
b9c58b6e75
seat: send enter/leave events to all bound wl_seats for a client
...
fixes #6069
Will not send anything beyond enter/leave. If you depend on multiple seats sending you motion, button, etc, events, fix your app.
2024-05-15 19:33:42 +01:00
3381e2b55b
datadevice: guard surface in dnd for null
...
fixes #6076
2024-05-15 16:26:02 +01:00