Commit Graph

51 Commits

Author SHA1 Message Date
8256a3ba43 refactor: allow for movable events
based on: 2f5c612ade
2025-11-14 09:05:37 -05:00
4728525ece fix: Fix memory leak in EventQueue
Previously empty event targets were never fully removed from EventQueue
even after unregistration. This may lead to unbounded increase of memory
use if new event targets are allocated to new memory locations.
ported: c960360106
2025-11-14 09:05:37 -05:00
3e76a39326 chore: remove unused IEventQueue::isEmpty
port: 8ab6ad64f9
2025-11-05 21:46:20 +00:00
2a84ef0ebf refactor: update log calls to LOG_... fixes #8819 2025-08-06 16:18:38 +01:00
3ececbcfd9 refactor: Event anon enum => EventFlags struct 2025-07-11 03:06:24 -07:00
c12aa4c6e9 refactor: Make IEventQueueBuffer Types an enum class, use proper names rename kNone => Unknown to reflect its unknowns an unknown type of event 2025-07-11 03:06:24 -07:00
8a83f68ff0 chore: remove unused < operator for Timer class 2025-07-07 17:53:56 +01:00
cbbfd495e3 refactor: make ESignal an enum Class IArchMultiThread::ThreadSignal, conform ThreadSignal items to naming conventions 2025-07-03 03:24:16 +00:00
3a35b183d3 refactor: use std::function for Event callback
based on 6d347337c3
2025-06-18 13:17:16 +01:00
c15214aee7 refactor: use std::scoped_lock inplace of std::lock_guard 2025-06-17 10:23:42 +01:00
84e289bc30 refactor: replace ARCH->time() with Arch::time() 2025-06-17 10:23:42 +01:00
e247f3813a refactor: use std::mutex in EventQueue
port 9df4741748
2025-06-14 09:37:48 +01:00
d597d023b1 chore: use std::unique_ptr for eventQueueHandlers
ports input-leap/5044b79a4f98ea5da0b8cbe950123f061d4c1c5f
ported-by sithlord48
2025-05-28 09:54:04 +01:00
807e60ded2 chore: use std::unique_prt for EventQueue's Buffer
port input-leap/9dbfd551cda4367bdc8067b5c3ca9c4027494503
ported-by sithlord48
2025-05-28 09:54:04 +01:00
e6a374369b chore: use const for more local ref and pointer vars 2025-05-28 09:42:08 +01:00
475b895755 chore: initialize class vars using the order class define, initilizer list, constructor 2025-05-23 10:19:11 -07:00
a33574e1bd chore: use more ranged for loops 2025-05-22 20:46:41 +01:00
9bdb4252e5 chore: remove goto in EventQueue, instead use a private processEvent method 2025-05-22 20:46:41 +01:00
52b0c1f061 chore: use auto or (const auto) where possible 2025-05-20 16:20:07 +01:00
0ff72441e6 chore: use c++17 style if,switch init-initilizer where possible
chore: correct spelling of "colon" in NetworkAddresses variables
chore: correct some multi line defines near needed init-initilizers
2025-05-20 16:20:07 +01:00
55a7fa3266 Port simplified EventTypes from 8b23570379 2025-05-05 17:17:01 -04:00
118f867fd1 refactor: Remove unused IEventQueue::getRegisteredType()
ported from a5b6017235
2025-05-05 17:17:01 -04:00
e91b9867e0 chore: EventQueue, use default for deconstructor 2025-05-02 12:12:17 +01:00
fb5f80857b chore: EventQueue, Use auto where possible 2025-04-28 13:50:43 +01:00
63d65bb47b chore: use nullptr where possible in place of NULL 2025-04-28 13:08:40 +01:00
2160f7826f chore: lib/base/EventQueue remove unused headers 2025-03-25 14:11:23 +00:00
5a7f6bd1c0 refactor: Remove old Windows TCP IPC implementation (replaced by Qt equivalent) 2025-02-28 17:58:16 +00:00
1085df54ed refactor: Reuse compliance
build files and documentation: MIT
  images / sources: GPL-2.0-only
  breeze icons: LGPL-2.0-only
  Microsoft MSM file, vc redist license
2025-01-27 17:05:47 -05:00
96092df4fc refactor: replace UInt32 with uint32_t 2025-01-14 20:30:45 +00:00
3991e0c1a1 refactor: use std::string in place of String
basedon: https://github.com/debauchee/barrier/pull/709
2025-01-08 00:11:34 +00:00
9b9ecb0d05 chore: Adjust Clang-format linter rules
120 Column Lines
 Block Indent for Bracket Align
 Custom Line Break Rules
 No Single Line Functions
2024-10-17 21:38:29 +01:00
ed1217e9cc Use Deskflow Name (#7519)
* Use Deskflow Name

* Remove business-oriented options from issue templates

* Remove business-oriented workflow

* Bump version to 3.0.0 (to avoid confusion with previously used version numbers 1.x & 2.x)

* Update readme to reflect new project name and goals

* Found some more "synergy" to rename

* Rename `synlib` to `app`

* Rename `syntool` to `deskflow-legacy`

* Rename `synwinhk` to `dfwhook`

* Rename dirs from synergy to deskflow

* Rename more "Synergy" files

* Rename app bundle ID

* Fixed copyright typo

* Rename only title in serial key dialog (to be moved downstream later)

* Preserve original serial key window for moving downstream

* Restore dialogs ready for moving downstream

* Rename `QDeskflowApplication` to `DeskflowApplication` (the Q is confusing)

* Restore Volker's original project name

* Fixed mimetype

* Fixed weird grammar

* Fixed (more) weird grammar

* Broken link, restoring (but we should move all links out of source)

* Broken link, restoring (but we should move all links out of source)

* Add write permission to valgrind-analysis.yml

* Restore AUR conflicts

* Apply Clang format

* Update ChangeLog

* Back out version change

---------

Co-authored-by: Nick Bolton <nick@symless.com>
2024-09-17 20:00:25 +01:00
4e844bf307 Wayland support (port Red Hat libei and libportal impl) (#7449)
* Add libei and libportal

* Port libei and libportal code by Peter Hutterer and Olivier Fourdan

* Add Peter Hutterer and Olivier Fourdan to important devs list

* Improve error handling for libei and libportal builds

* Checkout libportal  tags/0.7.1

* Hack out the gi-docgen clone

* Remove new submodules in favor of using ExternalProject_Add

* Remove submodule dirs

* Use ExternalProject_Add instead of submodules

* Fixed namespace

* Hack to work around type libportal causing type conflicts

* Add log helper functions

* Use original log functions

* Switch to FetchContent, use libportal a1530a9 (unreleased) and use camelCase member names for consistency

* Restore a few events (much more work required)

* Add TODOs for supporting multiple lib versions

* Revert "Switch to FetchContent, use libportal a1530a9 (unreleased) and use camelCase member names for consistency"

This reverts commit 610cebb5b6a08282eee68f4424fcdbe9eaab4bf9.

* Simplify cmake config by removing builds for libei and libportal (will do this in `install_deps.py` instead)

* Remove submodules

* Remove .gitmodules

* Use meson to build subprojects

* Update copyright with Peter Hutterer's guidance

* Use meson for installing deps

* Fixed typo in tag name

* Remove submodules

* Remove old submodules

* Fixed libei name

* Defaults for pugixml and gtest depending on whether source exists in subprojects

* Ignore some subproject dirs

* Make deps OS-specific

* Move python deps to pyproject

* Only compile and install on Linux with Meson

* Revert "Move python deps to pyproject"

This reverts commit 92c8a287b8376a4d166058c85f1d6081f6fdb423.

* Add ninja to brewfile

* Add python3-attr

* Restore original coverage config

* Add ninja for meson

* Include meson in same try-except

* Fixed ninja dep name

* Move libs to correct oS

* Fixed include for wintoast

* Disable docs for libportal

* More options for libei and libportal

* Fixed option for libei

* Use ninja directly to install

* Revert "Use ninja directly to install"

This reverts commit c926d78ba483406a55acd10fb157c39e13f90b71.

* Meson install verbose

* Prints stdout/stderr

* Remove `from None`

* Remove submodules that somehow crept back in?!

* Prepend sudo if exists

* Add libei deps for all distros

* Fixed Fedora package name

* Add more deps for other distros

* Add more libs (including pugixml)

* Fix lib name

* Drop -u from pacman

* Add vala to rhel

* Make libportal optional

* Make portal link optional

* Remove example code

* Always use system pugixml

* Disable interactive apt through install_deps.py

* Revert "Disable interactive apt through install_deps.py"

This reverts commit 5bbc8fd689182447c79b81db16c961b98361a292.

* Set DEBIAN_FRONTEND in workflows

* Set DEBIAN_FRONTEND in CodeQL workflow

* Add gtest dep

* Add bundled libei dep

* Add libei dep to Arch

* Use `googletest` on openSUSE

* Add gmock dep

* Remove gtest dep from openSUSE

* Add libei on Fedora

* Bundle libei for older Linux distros

* Disable libei dep for RPM

* Also bundle symlink to .so

* Use ${CMAKE_INSTALL_LIBDIR}

* Rename libei to fix openSUSE

* List installed files

* Add libei-devel to openSUSE

* Add googletest-devel to openSUSE

* Remove manual deps (probably resolved automatically)

* Remove googletest from openSUSE (doesn't provide google mock)

* Only add Portal* if libportal found

* WIP - Partial work on using old events system :'(

* Add deps install commands for subprojects

* Solved more compile issues related to events system, threads, etc

* Fixed bad config for adding x, ei, portal sources

* Remove redundant deps

* Remove (another) redundant dep

* Fixed pacman command

* Add Ubuntu and Linux Mint libei deps

* Fixed Ubuntu and Linux Mint libei deps aliases

* Only iterate subprojects if not None

* Add rhel, rocky, and alma for libei

* Make rhel-like deps same as fedora again

* Build libportal on rhel-like

* Re-enable meson rhel-like for libportal

* Remove dbus-python

* Make libportal optional (for rhel-like)

* Handle ei event queue results

* Re-introduce libportal

* Print libei and libportal versions

* Add ei/portal args and client screen

* Switch --use args to --no

* Don't build libei/libportal on older distros as it's pointless

* Make libei and libportal optional

* Add Debian 13 runner

* Make some packages optional

* Remove subprojects

* Improve comment

* Add comment for libportal

* Improve comment

* Add Debian 13 runner

* Make optional... optional

* Change continuation stripper to remove newline and continuation char

* Make command strip more uniform

* Fixed help var syntax

* Fixed libei linking

* Ensure `kHelpNoWayland` is always defined

* Improve help message

* Fixed Debian 13 runner name

* Include sstream and use const var

* Update ChangeLog

* Remove Wayland block

* Return new timer

* Make tray icon logging verbose

* Fixed arg parser for wayland args

* Fixed init of EI screen

* Fixed lint issues

* Update README to indicate Wayland support in GNOME 46

* Add missing word

* Fixed comment positions

* Automate CI env

* Tone down debug log messages

* Add missing comma

* Remove redundant log line
2024-08-30 15:53:25 +01:00
e435953af7 Make Clang param and arg alignment more readable (#7387)
* Turn off alignment of params

* Apply Clang format

* Change AlignAfterOpenBracket to AlwaysBreak and add extra bin pack settings

* Restore default bin packing

* Apply format
2024-07-16 14:36:44 +01:00
37bb0f989e Format all source with Clang and introduce lint workflow (#7364)
* Lint script with CLang format

* Use `-i` for `clang-format` and add more logging for lint scripts

* Apply LLVM CLang formatting

* Fixed comment

* Update ChangeLog

* Fixed bad return code logic

* Improve output for linters

* Fixed re-used var in clang lint

* Fixed include order for tests and use `#if 0` instead of commenting out code

* Use full Clang format dump

* Dump Ubuntu Clang format

* Dump Clang format from Debian

* Dumped from: clang-format version 18.1.8

* Revert "Dumped from: clang-format version 18.1.8"

This reverts commit b9bbda2995bb0b4b65baf14afebb0361ec64e644.

* Remove BasedOnStyle

* Restore base Clang format file

* Use clang-format from pip

* Apply Clang format 18 style

* Add clang_format deps

* Fixed include order issues and *some* accidental includes
2024-07-02 20:07:06 +01:00
deea23f866 Apply tab to spaces filter to src folder 2017-02-07 01:24:59 +00:00
f3d1470e58 Brutally replace all reinterpret_casts with static_casts 2016-10-05 12:46:16 +01:00
c3c0913633 Update company copyright notice 2016-09-26 11:58:33 +01:00
9483fecc42 Fixed code style
Revert "Moved note into either warning or info #4745"

This reverts
commit d3a4ce1f11.

Revert "Changed note to notify #4745"

This reverts commit
5006adedfe.

Conflicts:
	src/test/unittests/ipc/IpcLogOutputterTests.cpp

Shortened transmission log #4858

Revert "Added code to throw an error if the plugin can't be deleted or
written to #4696"

This reverts commit
5696497bc0.
2015-07-31 13:17:12 -07:00
0680c33909 Added file events #4584 2015-06-05 15:21:17 -07:00
49ac320f97 Refactored clipboard event into ClipboardEvent #4601 2015-05-20 19:09:54 +01:00
d71304ee55 Modified header of every file COPYING to LICENSE
Modified to match the updated name of the license file
2015-05-06 22:12:44 -04:00
41d6080028 changed company name in copyright notice 2014-11-11 13:52:03 +00:00
e8e156f0e2 dropped "c" prefix from class names 2014-11-11 13:51:47 +00:00
507abdcbfb issue #4072 Carbon loop not ready within 5 sec
added lock to all condVar
2014-06-02 16:07:58 +00:00
9feaa959f1 issue #4072 - Carboon loop not ready within 5 sec
issue solved
2014-06-02 11:04:09 +00:00
93ebd6a9cc fixed: const type was used in queue 2014-04-17 16:49:19 +00:00
8482504b65 fixed: assigned const to non const type 2014-04-17 11:26:21 +00:00
45c1cde698 fixed: events were added before event queue was ready, caused debug build assert failure.
removed sleep hack in favour of cond var wait.
2014-04-17 10:56:25 +00:00
4675f29a4c code style fixes:
- reordered includes to prevent accidental dependencies.
- moved arch specific files into their own folder (easier to include with cmake).
- renamed non-class files to reflect new code style (lower case with underscores).
- using full relative paths for includes (easier for understanding dependencies).
- using #pragma once instead of classic-style header guards.
2014-02-28 12:36:45 +00:00