| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
Adds support for the recently merged w-p CM protocol alongside the (now deprecated) old CM WIP protocols
|
| |
|
|
|
|
|
| |
Minor changes to xwayland dnd / regular dnd to fix various issues
---------
Co-authored-by: Vaxry <vaxry@vaxry.net>
|
| |
|
| |
Reason: look at the setReceive parameters and also at the next line(tries to narrow)
|
| | |
|
| |
|
|
| |
fixes #9023
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config: make fd use CFileDescriptor
make use of the new hyprutils CFileDescriptor instead of manual FD
handling.
* hyprctl: make fd use CFileDescriptor
make use of the new hyprutils CFileDescriptor instead of manual FD
handling.
* ikeyboard: make fd use CFileDescriptor
make use of the new CFileDescriptor instead of manual FD handling, also
in sendKeymap remove dead code, it already early returns if keyboard
isnt valid, and dont try to close the FD that ikeyboard owns.
* core: make SHMFile functions use CFileDescriptor
make SHMFile misc functions use CFileDescriptor and its associated usage
in dmabuf and keyboard.
* core: make explicit sync use CFileDescriptor
begin using CFileDescriptor in explicit sync and its timelines and
eglsync usage in opengl, there is still a bit left with manual handling
that requires future aquamarine change aswell.
* eventmgr: make fd and sockets use CFileDescriptor
make use of the hyprutils CFileDescriptor instead of manual FD and
socket handling and closing.
* eventloopmgr: make timerfd use CFileDescriptor
make the timerfd use CFileDescriptor instead of manual fd handling
* opengl: make gbm fd use CFileDescriptor
make the gbm rendernode fd use CFileDescriptor instead of manual fd
handling
* core: make selection source/offer use CFileDescriptor
make data selection source and offers use CFileDescriptor and its
associated use in xwm and protocols
* protocols: convert protocols fd to CFileDescriptor
make most fd handling use CFileDescriptor in protocols
* shm: make SHMPool use CfileDescriptor
make SHMPool use CFileDescriptor instead of manual fd handling.
* opengl: duplicate fd with CFileDescriptor
duplicate fenceFD with CFileDescriptor duplicate instead.
* xwayland: make sockets and fds use CFileDescriptor
instead of manual opening/closing make sockets and fds use
CFileDescriptor
* keybindmgr: make sockets and fds use CFileDescriptor
make sockets and fds use CFileDescriptor instead of manual handling.
|
| |
|
|
|
|
|
| |
* declare dtor once + DMABBUF typo fix
* dup include + clang moment
* linux-dmabuf: last minute nit change
|
| |
|
|
| |
in favor of const refs
|
| |
|
|
| |
ref #9154
|
| | |
|
| |
|
|
| |
helps the compiler optimize
|
| |
|
| |
Cleanup some unneeded includes to speed up compilation
|
| |
|
|
| |
configurable (#9019)
|
| | |
|
| | |
|
| |
|
|
|
|
| |
The server might be dead or restarting, and we'd deref null
ref #7822
|
| |
|
|
| |
fixes #8781
|
| |
|
| |
This rewrites renderer scheduling. Occlusion is now unified in a new Pass type.
|
| |
|
|
| |
fixes #8787
|
| | |
|
| |
|
| |
Adds support for drag-and-drop from Wayland clients to XWayland ones
|
| |
|
| |
fixes #7737
|
| |
|
|
| |
oopsie 7c03e9d376abe5308c47772b4c17a9c345788f60 was wrong
|
| |
|
|
| |
fixes #7656
|
| |
|
|
|
|
| |
sometimes this might be like 1px and send enter to the wrong output
fixes #8654
|
| |
|
|
|
| |
This adds a .clang-tidy file for us.
It's not a strict requirement to be compliant, but I tuned it to be alright.
|
| | |
|
| |
|
|
|
| |
* protocols: fix shm fd size check before creating or resizing shm_pool
* added static to function
|
| |
|
|
|
| |
---------
Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* compositor: reduce amount of window box copies
mousemoveunified can call this very frequently, the cbox copying
actually shows up as an impact in such cases, move it down in the scope
and only do it when necessery.
* core: constify and reference frequent calls
profiling shows these as frequent called functions try to reduce the
amount of copies with references and const the variables.
* pointermgr: remove not used local copy, const ref
remove unneded local copies and const ref cursorsize.
* inputmgr: reduce amount of calls to vectortowindow
the amount of calls to g_pCompositor->vectorToWindowUnified fast ramps
up in cpu usage with enough windows existing and moving the mouse, move
the PWINDOWIDEAL up and reuse it if its already the same.
* protocol: compositor remove unused local copy
remove unused local copy of accumulateCurrentBufferDamage and const
previousBuffer.
* renderer: reduce scope of variables and refactor
move a few variables down in their scopes to reduce the amount of calls
and copies when not needed, also add one more for loop in
renderWorkspaceWindows and store the windows in a vector with
weakpointers that should be rendered, this adds a loop but reduces the
amount of repeated calls to shouldRenderWindow and also makes the rest
of the loops go over way smaller vector when many windows exist.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
#### Describe your PR, what does it fix/add?
Fix lag spikes when pressing more than 6 keys at the same time.
#### Is there anything you want to mention? (unchecked code, possible bugs, found problems, breaking compatibility, etc.)
Debugging process:
<details>
This is triggered by typing some applications, like CopyQ or XWayland.
Typing in Firefox doesn't lead to lag, however it itself does lag
handling these events.
Profiling CopyQ shows that paths leading to
`QtWaylandClient::QWaylandInputDevice::Keyboard::keyboard` take over
80% of processing time of an otherwise idle program.
Looking at output of 'wev' even when it's not focused shows same events
received over and over again.
```
[14: wl_keyboard] repeat_info: rate: 25 keys/sec; delay: 300 ms
[14: wl_keyboard] keymap: format: 1 (xkb v1), size: 64754
```
Looking at what passes through CInputManager::onKeyboardKey() ->
CSeatManager::setKeyboard() shows Hyprland 'switching' between endpoints
of the same keyboard, one of them being named like the other but with
'-1' suffix.
</details>
Tested changing layouts in Fcitx5 and with following config.
```
input:kb_layout = us,cz
input:kb_variant = ,qwerty
input:kb_options = grp:alt_shift_toggle
```
Also tested changing 'input:repeat_delay' while running.
Curiously, now these events appear in the output of 'wev' only once.
Changing layouts still seems to work fine though.
#### Is it ready for merging, or does it need work?
Ready for merging.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* deco: reduce local temporars and function calls
profiling shows this is a high used function, reduce the amount of
function calls and local temporar copies and also check if we even need
to add extents at all in the loop.
* popup: optimize bfhelper in popups
pass nodes as const reference and reserve the size of the children node
vector help reduce the reallocations.
* procotol: make compositor bfhelper use const ref
use const ref for nodes and reserve second nodes vector size to reduce
amount of reallocation needed.
|
| |
|
|
| |
ref #8221
|
| |
|
|
|
| |
* move monitors to sp
* XD
|
| |
|
|
| |
fixes #6560
|
| | |
|
| |
|
|
| |
ref #6835
|
| | |
|
| |
|
|
| |
fixes #7733
|
| |
|
|
| |
fixes #7815
|
| |
|
|
| |
gtk doesn't like it?
|
| |
|
|
| |
remove hack
|
| | |
|
| |
|
|
|
|
|
|
| |
fixes #7496
see https://invent.kde.org/plasma/kwin/-/commit/711c5bb43f2823766d5189dc8d567c8f4cec253c
see https://bugs.kde.org/show_bug.cgi\?id\=482142
|
| |
|
| |
now we roll loops at blazing constified speed.
|
| |
|
|
| |
why not let the compiler optimise things for us at hyprspeeds when we
can.
|
| |
|
|
| |
avoid casting non typed enum out of range, looks like
WL_OUTPUT_MODE_CURRENT was the intention here.
|
| |
|
| |
calculate the size to the stride we got to better align it.
|
| |
|
|
|
|
| |
this avoids the usage of the unique_ptr PROTO::protocol before it has
been constructed incase one wants to log something inside the
constructor itself, move the logging to macros and print file:linenumber
on ERR,CRIT,WARN and classname on the rest of the levels.
|
| | |
|