* Remove unused function
* Refactor deprecation warning
* Modules take config as parameter instead of using the singleton
* Bar take config as parameter instead of using the singleton
* Renderer take config as parameter instead of using the singleton
* Legacy Tray Manager take config as parameter instead of using the singleton
* Screen take config as parameter instead of using the singleton
* Controller take config as parameter instead of using the singleton
* Remove the config singleton
* Apply review suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
* Apply style suggestion
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
---------
Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
When `pin-workspaces` is set to true using `show-urgent` will show
urgent workspaces on the bar even when the workspace is not associated
with the current monitor.
* build: Add -Wsuggest-override
We should always use the override specifier when overriding virtual
functions. This helps prevent errors when a subclass tries to create a
function with the same name as a virtual function in a super-class but
with a different purpose.
* clang-format
* Upload logs on failure
* Add override to unsupported.hpp
* cmake: Make -Wsuggest-override flag conditional
* module: Implement proof of concept action router
Action implementation inside module becomes much cleaner because each
module just registers action names together with a callback (pointer to
member function) and the action router does the rest.
* Make input function final
This forces all modules to use the action router
* modules: Catch exceptions in action handlers
* Use action router for all modules
* Use action_ prefix for function names
The mpd module's 'stop' action overwrote the base module's stop function
which caused difficult to debug behavior.
To prevent this in the future we now prefix each function that is
responsible for an action with 'action_'
* Cleanup
* actions: Throw exception when re-registering action
Action names are unique inside modules. Unfortunately there is no way to
ensure this statically, the next best thing is to crash the module and
let the user know that this is a bug.
* Formatting
* actions: Ignore data for actions without data
This is the same behavior as before.
* action_router: Write tests
All modules now expose their actions as public static constants
Issues: The menu module no longer closes when an item is clicked (before
it would intercept any executed command and look if it matches one of
its exec commands)
This allows us to identify module by their type and it is also better to
store the module type as part of the module instead of having it
hardcoded in factory.hpp
Added support for fuzzy matching workspace names when assigning icons.
This feature is enabled/disabled through a new option, 'fuzzy-match'.
It is disabled by default.
New parameters for defining fallback click handlers
that will be triggered for the whole window unless
a module action is matched.
Parameters added to all [bar/foo] sections:
- `click-left = ...`
- `click-middle= ...`
- `click-right= ...`
- `scroll-up= ...`
- `scroll-down= ...`
Ref #226