Commit graph

675 commits

Author SHA1 Message Date
8d68d6bfa5 windowrules: nuke no*request 2024-02-14 22:27:53 +00:00
7f52db806c windowrules: add suppressevent
deprecates nofullscreenrequest nomaximizerequest
2024-02-14 22:19:49 +00:00
305b1419c8 renderer: accept custom state requests for fake outputs 2024-02-14 22:05:41 +00:00
Epilepsy Gatherings
2a3429d4cf
internal: add forcenofocus prop (#4672)
* add forcenofocus

* change nofocus to overridable var
2024-02-13 18:07:19 +00:00
ded174d6e5 misc: remove unused var 2024-02-05 23:39:19 +00:00
cfd68af5b6 tearing-control: handle unmapped surfaces for hints
fixes #4570
2024-02-01 00:55:29 +00:00
c51b3fb06f events: ignore sending mouse enter to focused if a constraint is active
fixes #4186
2024-01-30 16:24:41 +00:00
b7840c6461 xwayland: remove delta from pos sets in configureX11
ref #4536
2024-01-28 20:13:44 +00:00
Epilepsy Gatherings
0e5f14d8d2
xwayland: remove reportedsize set in unmanagedSetGeometry (#4539) 2024-01-28 19:22:02 +00:00
bfcc2adbda monitor: wrap usage of wlr_output_state
for better control and convenience in usage.

fixes #4546
2024-01-28 01:57:13 +00:00
7b3d039388 deps: update wlroots
drops requirement for WLR_DRM_NO_ATOMIC provided kernel >= 6.8
2024-01-27 13:58:28 +00:00
17339e0ae9 input: track exclusive LSes
ref #4465
2024-01-19 16:45:34 +01:00
6b92144f15 surface: avoid spam of window surfaces with scale and transform events
fixes #4408
2024-01-11 14:07:28 +01:00
71166ef40b subsurfaceTree: update surface tree protocol feedback on map 2024-01-09 18:14:08 +01:00
33444e1e5e deps: update wlroots 2024-01-01 16:47:54 +01:00
cc0516a9ae windowrules: minor fixes to onworkspace
fixes #4227
2023-12-23 15:49:42 +01:00
460a326c90 Revert "xdgshell: set predicted tiled windows to monitor res size pre-map"
This reverts commit 763d5fa05f.

Some issues and fixes #4185
2023-12-18 14:45:20 +00:00
403fd7d9f6 xwayland: move commit handler connect to associate
fixes #4179
2023-12-18 00:15:30 +00:00
763d5fa05f xdgshell: set predicted tiled windows to monitor res size pre-map
Should improve #4022 although not exactly fix. Fixing would require more witchcraft
2023-12-17 20:09:34 +00:00
9fd928e114 internal: nuke CWindow::m_bMappedX11
it's useless. m_bIsMapped is the same.
2023-12-17 20:00:18 +00:00
8c9f38e405 events: improve wl_surface::commit event tracking 2023-12-17 19:58:01 +00:00
c0d9dcc586 xwayland: set reported and pending size/pos on geometry sets 2023-12-17 14:53:59 +00:00
395ab3ba37 xdg: use better min/max size checks for floating resizes 2023-12-15 15:38:20 +00:00
ba2af6f86d focus: prefer sendMotionEventsToFocused for ensuring cursor image 2023-12-12 14:58:43 +00:00
8f38487884 xwayland: don't change workspace on configure for invisible windows
fixes #3578
2023-12-12 01:15:17 +00:00
Vaxry
9f5b9053c6
internal: Remake borders as window decorations (#4104) 2023-12-10 16:28:12 +00:00
François Conzelmann
4a42344e97
style/ci: apply clang-format and verify it in ci (#4039)
* style: apply clang-format

* ci: add new clang-format job to CI
2023-12-06 22:54:56 +00:00
d2c3b23ace deps: update wlroots 2023-11-30 01:18:55 +00:00
75e5799310 layer-shell: simulate mouse movement on unmap 2023-11-26 14:54:34 +00:00
Vaxry
2ebfd0c745
renderer: Move to a full Hyprland GL rendering pipeline (#3920)
Also updates wlroots
2023-11-24 10:54:21 +00:00
49597688e9 windowrules: make idleinhibit dynamic 2023-11-14 15:46:57 +00:00
69e314207d internal: replace INT_MAX with WORKSPACE_INVALID 2023-11-12 13:34:54 +00:00
Alessio Molinari
1bfd4a2bff
output-layout: fix wlroots display handling (#3718) 2023-11-12 13:14:05 +00:00
bea828ea45 decoration-positioner: improve extent handling 2023-11-11 15:18:17 +00:00
427153e86a xwayland: add half of delta to configure request sizes 2023-11-10 23:49:35 +00:00
b8a615ffb8 xdg-shell: improve ack-configure handling
fixes #3807
2023-11-10 00:13:22 +00:00
8dd02eb5f3 xdg-shell: update reported size on ack_configure 2023-11-09 22:43:52 +00:00
9404972732 events: set reported size on floating map
fixes #3767
2023-11-05 14:12:55 +00:00
Vaxry
55b4f84fea
Internal: Hyprland box implementation (#3755)
* box impl

* remove unused operators

* missed applyfromwlr
2023-11-04 17:03:05 +00:00
54e51b7acf events: better adjust to unreported sizes for xwayland apps
fixes #3745
2023-11-04 13:09:33 +00:00
200cccdd3b events: set reported size on the end of mapping
fixes #3743
2023-11-03 22:47:12 +00:00
ba9e7814b0 input: simulate movement only if mouse is over in open/close window
fixes #3726
2023-11-02 21:36:16 +00:00
Dashie
062f749450
xdg: send unconstrain events after a popup reposition (#3716)
* fix: Use unconstrain_from_box after reposition request

* chore: Remove unused include

* chore: remove variable specifier
2023-11-01 20:31:52 +00:00
a4db48b46b input: simulate mouse movement to fix focus on open/close window
fixes #3679
2023-11-01 19:50:32 +00:00
Vaxry
21e9313c10
Core: various unsafe state improvements (#3713)
Fixes #3637
2023-11-01 18:53:36 +00:00
4a4e13f8ac events: ignore takes_over_fullscreen for floating windows
fixes #3622. Floating windows should not respect the config option, they should be shown on top. That option is meant for tiled only
2023-10-27 12:45:17 +01:00
df00727310 deps: update wlroots 2023-10-25 00:27:16 +01:00
98059b52d7 layershell: support ON_DEMAND keyboard mode
fixes #2264
2023-10-22 23:32:55 +01:00
59f27e7f57 compositor: send preferred scale and transform events to surfaces
fixes #3635
2023-10-22 16:58:06 +01:00
7f35f33b4c surface/wayland: conform to small surface requirements
do not stretch small surfaces, instead center them if they fit.
2023-10-20 20:15:57 +01:00
eriedaberrie
421f5fb221
events: make new windows taking over fullscreen keep the existing mode (#3588) 2023-10-17 11:41:27 +01:00
Philip Damianik
442209942f
cleanup: Replace find() with C++20 starts_with(), ends_with() and contains() (#3572)
* Replace find() with C++20 starts_with() and ends_with()

* Replace find() with C++20 contains()
2023-10-15 19:07:23 +01:00
vaxerski
4b3efc73c5 events: fixup empty events not being sent on unmap
Ref #3506 https://github.com/hyprwm/Hyprland/issues/3506#issuecomment-1749508111
2023-10-06 01:11:47 +01:00
322c5cc4b9 layout: add new_window_takes_over_fullscreen mode 2
fixes #3486
2023-10-04 15:00:24 +01:00
vaxerski
230356012b renderer: extract solitary check into frame handler 2023-10-04 13:48:44 +01:00
vaxerski
4531717f3e renderer: considerable fixes to repaint logic 2023-10-04 13:39:40 +01:00
vaxerski
b814ba98a7 misc: add misc:new_window_takes_over_fullscreen
referenced in #3474
2023-10-02 16:27:32 +01:00
vaxerski
50fecf084d events: set new window alpha to 0 if it's tiled behind fullscreen
fixes #3474
2023-10-02 16:22:39 +01:00
vaxerski
5ffb1032e1 events: don't focus new window if spawned behind fullscreen
fixes #3473
2023-10-02 14:09:23 +01:00
vaxerski
a2a29a60e5 tearing: cleanup vars and avoid rendering before drm is ready 2023-09-30 17:07:50 +01:00
vaxerski
a44ab7748f renderer: optimize render pipeline when there is a solitary client 2023-09-29 17:51:07 +01:00
Vaxry
88b63a00b6
renderer: Tearing implementation (#3441) 2023-09-28 21:48:33 +01:00
vaxerski
1f4eab176e layout: don't discard fullscreen on new tiling 2023-09-28 17:49:40 +01:00
Vaxry
46d66f4bcc
internal: Further unsafe state improvements (#3404)
Instead of allowing Hyprland to sit in a state where there are no monitors, which various parts of the code don't like, we create a fake headless output on all monitor disconnect, and then remove it when a monitor appears
2023-09-24 18:04:38 +01:00
memchr
1357b66091
windowrules: add rule group to map windows grouped (#3279)
* windows: add rule group to map windows grouped

* group rule: use `invade` to force open a window in a locked group
2023-09-22 00:42:00 +01:00
alaricljs
e4ddfcfa0c
keybinds: implement pushactivetobottom dispacher (#3217)
Co-authored-by: Leeman <lstrout@enlj.com>
2023-09-21 22:18:26 +01:00
memchr
3785defaf1
logging: implement std::formatter for some types (#3380) 2023-09-20 16:25:03 +01:00
memchr
6594b50e57
logging/format: use std::format_string to catch formatting string errors at compile time (#3377)
* fix(log): use constexpr format string

* deprecate getFormat
2023-09-20 08:26:20 +01:00
vaxerski
2f01a18989 window: recalculate layout on swallow in map
fixes #2848
2023-09-16 18:40:57 +01:00
MightyPlaza
824290c791
windowrules: fix workspace exec rule with special (#3316)
modified:   src/events/Windows.cpp
2023-09-15 12:05:21 +01:00
be19773aaa windowrules: fix workspace rule separation
fixes #3265
2023-09-12 16:50:10 +01:00
alaricljs
9192b20b96
windowrules: add on-screen constraint to wrv2 'move' (#3247)
* add on-screen constraint to wrv2 'move'

* review changes

* std::clamp

* more parens

---------

Co-authored-by: Leeman <lstrout@enlj.com>
2023-09-12 09:56:20 +01:00
memchr
e96e0dc02d
refactor: utilize 'middle()' method for window/montior center (#3253) 2023-09-11 10:09:34 +01:00
Philip Damianik
6c855dd6e4
internal: Fix wlr output management (#3234) 2023-09-10 13:14:27 +01:00
vaxerski
f4e99a36a9 input: don't warp region constraints 2023-09-10 12:49:53 +01:00
Philip Damianik
8c83852704
internal: Remove all .c_str() calls when using std::vformat (#3198)
Signed-off-by: pdamianik <39028343+pdamianik@users.noreply.github.com>
2023-09-06 21:45:37 +02:00
Vaxry
61a71c65ac
internal: Formatter rework (#3186) 2023-09-06 12:51:36 +02:00
MightyPlaza
8fefb180b1
windowrules: Monitor rule fix (#3157)
* fix monitor rules
modified:   src/events/Windows.cpp

* exec on workspace as silent when special is open
modified:   src/events/Windows.cpp
2023-09-03 17:23:13 +02:00
MightyPlaza
00bee91bbc
internal: workspace rule handling refactor (#3116)
modified:   src/events/Windows.cpp
2023-09-02 20:41:02 +02:00
Vaxry
d9292800a2
internal: Unsafe state reworks (#3114) 2023-09-01 22:03:56 +02:00
vaxerski
bb0933437f wlr-ext-workspace: remove protocol impl
Various reasons: 1st, memory issues. 2nd, MR got closed (see https://gitlab.freedesktop.org/wlroots/wlr-protocols/-/merge_requests/35) 3rd, not needed anymore (waybar has its own hyprland/workspaces module)
2023-09-01 17:10:03 +02:00
vaxerski
c98a00678c input: fix xwayland constraint calcs
some minor adjustments, fixes #3028
2023-08-30 17:23:35 +02:00
vaxerski
870471dd96 internal: allow opening empty special workspaces
Fixes point 2 of #2596
2023-08-25 18:05:08 +02:00
vaxerski
63b2189ce8 xdgshell: damage old popup coords after a reposition
fixes #3038. I updated the shell ver without properly supporting .reposition
2023-08-21 01:15:00 +02:00
vaxerski
025c023e4b xwayland: use logical pos in unmanaged geom requests
using raw xwayland coords is wrong cuz we use separate coord spaces
2023-08-21 00:39:39 +02:00
942ee943f5 input: unify constraint hint logic
Unifies the constraint hint logic. Previously, ignoring the stupid conditions, unscaled hints were mistaken with scaled coordinates.
2023-08-18 22:40:23 +02:00
MightyPlaza
7155b4c266
renderer: Border improvements (#2986)
* simplify getting border size
	modified:   src/Window.cpp
	modified:   src/Window.hpp
	modified:   src/layout/DwindleLayout.cpp
	modified:   src/layout/MasterLayout.cpp
	modified:   src/render/decorations/CHyprGroupBarDecoration.cpp

* fix border damage and input box
	modified:   src/Window.cpp
	modified:   src/managers/AnimationManager.cpp

* add border size in resize_on_border box
	modified:   src/managers/input/InputManager.cpp

* simplify border (fixes possible typo)
	modified:   src/Window.cpp

* use updateSpecialRenderData()
	modified:   Window.cpp
	modified:   Window.hpp
	modified:   events/Windows.cpp
	modified:   layout/DwindleLayout.cpp
	modified:   layout/IHyprLayout.cpp
	modified:   layout/MasterLayout.cpp
	modified:   render/Renderer.cpp

* update window workspace rule data on reload
	modified:   src/config/ConfigManager.cpp

* use rounding()
	modified:   src/Window.cpp
2023-08-17 10:13:19 +02:00
4986d74ef2 xwayland: fix use of xwayland coords in native spaces 2023-08-15 20:10:43 +02:00
0314a727eb layers: set proper alpha to top grabbing surfaces 2023-08-13 21:52:43 +02:00
MightyPlaza
901236a535
rules: center window improvements (#2935)
* center window improvements
	modified:   src/config/ConfigManager.cpp
	modified:   src/events/Windows.cpp
	modified:   src/managers/KeybindManager.cpp

* remove redundant line
	modified:   src/events/Windows.cpp

* simplify code
	modified:   src/events/Windows.cpp
	modified:   src/managers/KeybindManager.cpp
2023-08-11 16:54:16 +02:00
d7209b90bb renderer: remember extents before removing a window and use them for dt
fixes #2351
2023-08-09 14:28:04 +02:00
vaxerski
f5913135c6 input: add support for cursor-shape-v1 2023-07-24 18:50:17 +02:00
MightyPlaza
50e6f368ff
windowrules: implements nomaximizerequest (#2785)
* Window.hpp

* ConfigManager.cpp

* Windows.cpp

* fix maximize event
2023-07-23 19:47:41 +02:00
vaxerski
b65adf8d4a toplevelexport: support dmabuf + various fixes 2023-07-20 12:42:25 +02:00
Vaxry
8370a7fcc4
internal: Protocol C++ Wraps + XDGOutput impl (#2733)
move to our own xdgoutput impl instead of wlr's
2023-07-18 15:30:28 +02:00
vaxerski
06563d7034 popups: update parent pos on commit 2023-07-15 18:27:21 +02:00
zakk4223
21f64b6660
Keep new mapped layer's alpha zero if the workspace has a fullscreen window (#2686)
Co-authored-by: Zakk <zakk@rsdio.com>
2023-07-12 12:58:45 +02:00
vaxerski
7a7e3ee6d9 screencopy: don't send frames on commits w/o a buffer 2023-07-12 00:30:42 +02:00
Tuur Vanhoutte
b99ac063ea
Reuse same ID when reconnecting monitor, otherwise use minimum available ID (#2666)
Fixes #2601
2023-07-09 23:08:40 +02:00
MightyPlaza
34d845da13
typo (#2643) 2023-07-04 22:03:19 +02:00