Commit Graph

1027 Commits

Author SHA1 Message Date
7fbd2d175c tray: Cleanup position calculation 2023-04-01 21:04:58 +02:00
b5f8466117 tray: Replace tray-maxsize module setting with tray-size
The size accepts a percentage with offset relative to the bar height and
determines the width and height of tray icons.

Defaults to 66%

Does not affect spacing
2023-04-01 21:04:58 +02:00
11746455ee tray: Cleanup & documentation 2023-03-25 20:17:02 +01:00
f3ce047c52 tray: Remove delayed notifications
Unclear why it is needed, neither i3bar, nor stalonetray do delayed
notifications
2023-03-25 19:28:43 +01:00
47f6d9c25d renderer: documentation 2023-03-23 23:12:50 +01:00
58e0911ac6 tray: Disable pseudo-transparency for opaque bgs 2023-03-23 23:03:45 +01:00
89f29fa12e tray: documentation 2023-03-23 22:41:40 +01:00
f6172e1459 Remove tray client gc
Not actually used anywhere
2023-03-23 22:27:43 +01:00
1aeac226a6 Delete tray client pixmap and gc in destructor 2023-03-23 22:27:11 +01:00
65279883c3 Replace wait_for_response with handle callback
The poll-loop could in theory swallow events which would not be seen by
the main eventloop
2022-11-30 15:06:17 +01:00
aadd4ce1c8 Remove screen realloc argument
Replaced with explicit reset function
2022-11-30 13:41:25 +01:00
d296d67953 Merge remote-tracking branch 'upstream/master' into tray-child-window 2022-10-31 23:30:07 +01:00
f5d16891dd tray: Cleanup 2022-10-31 23:21:00 +01:00
ca25b5685c tray: Add back legacy tray implementation
Is used for trays defined through tray-position and nothing else.
2022-10-31 23:05:23 +01:00
ed6a0e90fb fix code in order to support cmake unity builds 2022-10-29 15:09:03 +02:00
291a4844bc fix(ipc): Crash when sending to multiple instances
In polybar-msg, the connection handle was captured as a reference to a
shared_ptr, but the shared_ptr went out of scope right after.

This probably always caused UB, but was only noticeable for two or more
instances.
2022-10-23 14:19:26 +02:00
30e1cc2595 feat(ipc): <label> support (#2841)
* Label = %output% working

* build fix

* Output as deprecated, Label as default

* Corrections

 * Corrections Simplified

* Changelog updated
2022-10-23 10:47:22 +02:00
cbfb417dce option to turn off struts 2022-10-22 13:06:06 +02:00
6d74ae51e7 Merge remote-tracking branch 'upstream/master' into tray-child-window 2022-10-16 21:31:07 +02:00
31bdacb3d7 Remove never used systray module
Not the same as the new tray module
2022-10-16 21:25:48 +02:00
3561fd3ad1 Templatify module factory
Saves us a lot of code duplication by generating module type-indexed map
and factory functions from the module class names.
2022-10-16 21:25:48 +02:00
56779a5902 Make the event loop return shared_ptrs (#2842)
* Return shared_ptr from eventloop

* Add -Wdeprecated-copy-dtor warning

Produces a warning if classes don't have explicit copy operations if
they have a user-defined constructor.
This helps us stick to the rule of 5 (kinda, no warnings for missing
move operators).

* Clean up eventloop

* Fix compiler warnings

* Fix fs_event_handle_t name
2022-10-15 23:21:40 +02:00
d6997659fa cleanup 2022-10-12 23:34:38 +02:00
54b75f23ab feat(ipc). Per hook format (#2810)
* Added format-x support for ipc_module, tested with demo config

* Certain cases not working

* Certain cases not working, build

* Changed label to output tag, Mixing of default formats wont work

* created changelog
2022-10-09 18:42:36 +02:00
303015244e feat: longest match ws-icon fuzzy matching (#2831)
* better fuzzy matching

Improved fuzzy matching so that it finds the longest matching icon instead of the first possible match

* Update CHANGELOG.md

* removed debug output

* added tests and improved fuzzy finder

- added return statements to the fuzzy finder
- added tests to check whether the fuzzy finder works.

* minor style changes

* minor change to iconset.cpp

* Delete tasks.json
2022-10-05 23:05:44 +02:00
0096fea839 Merge remote-tracking branch 'upstream/master' into tray-child-window 2022-10-05 23:02:18 +02:00
5719d130fd feat(xwindow): %instance%, %class% from WM_CLASS 2022-10-02 20:57:29 +02:00
463ef963a1 Add pseudo transparency back to tray icons 2022-10-01 22:24:23 +02:00
def2682b8c tray: Set _NET_SYSTEM_TRAY_VISUAL 2022-09-26 21:39:10 +02:00
5c38d5cb17 tray: Store clients in unique_ptr 2022-09-24 13:20:02 +02:00
3da2662022 xwindow: Also listen for WM_NAME changes 2022-09-19 22:54:41 +02:00
627d43dad2 tray: Set _NET_SYSTEM_TRAY_ORIENTATION 2022-09-19 21:23:22 +02:00
63c6b13cbf tray: Cleanup client state handling 2022-09-15 19:38:45 +02:00
5fd62edfca tray: Cleanup logging 2022-09-14 21:53:02 +02:00
8ec9807145 Merge remote-tracking branch 'upstream/master' into tray-child-window 2022-09-13 14:24:59 +02:00
1d4e30c4be fix: Handle X events before polling for IO (#2820)
* Use m_connection.poll_for_event

* fix: Handle X events before polling for IO

Polling the XCB file descriptor for X events doesn't detect events that
are already in XCB's event queue but not yet handled.

If this happens, the eventloop polls for IO and the queued events wait
until another event arrives, causing some desyncs in the bar.

This can easily happen if something (e.g. a click event) triggers some
xcb calls, which as a consequence buffer some incoming events.

We "fix" this by adding a libuv prepare handle (which runs right before
polling for IO) that processes pending X events.
2022-09-13 14:21:36 +02:00
60173e5042 tray: Better lifecycle handling 2022-09-11 21:51:08 +02:00
ea5ffdd6b1 Merge remote-tracking branch 'upstream/master' into tray-child-window 2022-09-11 19:32:29 +02:00
053a7eb2d8 fix: Crash on root pixmap and window depth mismatch (#2813)
The background_manager used the root window depth for creating its
pixmaps, but when the root pixmap has a different depth, this causes the
copy_area_checked call to fail and crash the bar.

We now load the root pixmap before finding the visual and creating the
slice pixmaps.

Fixes #2798
2022-09-05 09:58:12 +02:00
fe9660254c Merge remote-tracking branch 'upstream/master' into tray-child-window 2022-09-04 11:46:32 +02:00
901183a60a tray: Fix tray not updating after (un)map_notify
The issue was that the event was for the wrapper window and that the
tray_client's move constructors didn't correctly copy over all data and
so when the m_clients vector grew, it corrupted the state of all
existing clients.
2022-09-03 22:34:00 +02:00
1127792ccf tray: Update module using callback 2022-09-03 21:33:22 +02:00
b72458a6b0 tray: Load settings from module section 2022-09-03 20:56:32 +02:00
03a2e6bb17 tray: Read width directly from tray_manager 2022-08-28 15:29:36 +02:00
ffcdf7d690 tray: Start tray from module 2022-08-28 15:15:48 +02:00
1dcff9396a tray: Stop listening to ui::visibility_change
If the bar window (un)maps, the tray icons are automatically (un)mapped
2022-08-28 15:05:22 +02:00
de560fe810 tray: Remove mutex 2022-08-28 14:56:56 +02:00
d658c07177 tray: Cleanup tray settings 2022-08-28 14:49:09 +02:00
ef06472a6d tray: Remove tray window
Each tray client is directly reparented to the bar window. This saves us
the hassle of having to configure a basically useless tray window and
keeping its background pixmap in sync.

The only disadvantages are having to (un)map each client window
individually and calculating its position relative to the bar window
(which changes all the time) instead of relative to the tray window
(which only changes when clients are added/removed).
2022-08-27 23:02:34 +02:00
d817080ee8 fix(renderer): Small gaps when rendering emojis (#2802)
If any rendered text uses a non-integer number of pixels (often emojis),
rendering of subsequent text blocks will start between pixels which
results in small gaps in the background and over/underline colors caused
by cairo only rendering at fractional-intensity in the beginning and end
pixel.

Simply rounding up text width can solve this.

Fixes #2785
2022-08-25 00:55:16 +02:00