But with 1 difference; it seems some implementations wait
(like nm-applet) on the size-changed signal. Although this
is a stupid trick, we can easily work around it by allocating
a normal size offscreen; this will trigger the signal and a new
allocation on the tray when the app completed the status icon
setup.
For dead tray icons that are still in the panel, the 1x1 hack
will continue to work since they have no window.
- Remove from socket hashtable before telling others the
icon will be removed, this to make sure the window
still exists.
- Move composited detection to socket init, no need to do this
during realize, since we restart the tray on compositing
changes anyway.
Fix a string break to set the maximum icon size, instead of
the number of rows (bug #5565). This makes allocation easier
and better to understand for users.
Then some new allocation code, this should fix a whole pile
of bugs: #4871, #5200, #6892, #6950, #6984, #7001 and #7017.
Also non-squared icons are now supported (bug #5874).
This makes the entire code easier to understand and
we don't need the additional child information anyways.
Also make the hidden property emit code smaller and
handle all of it in size_request.
Improve readability of the box widget by moving names
handling to the panel plugin. Use _(s,g)et_hidden in the
socket as a proxy item to store the hidden state of the icon.
Also make the socket store its name, so we don't need to
duplicate it in other widgets.
This instead of ignoring the startup. Since your plugin
is unique now, it won't give problems when one panel is
running. It also makes the systray restart after a crash
work better, since most of the time is takes a while (in
cpu cycles) before the selection is released of the crashing
plugin.
We now set a unique path for each wrapper that will
show up under org.xfce.Panel. This makes it easier to
understand in the wrapper (no message filtering) and moves
all the external communication in the panel-plugin-external.c
code.
Remove unneeded INCLUDES from makefiles.
Move the libexec executables to $(libexecdir)/xfce4/panel/.
Bump the library ABI version to -2, people need to make changes
to the build files for their plugins, so better do it the
right way from the beginning.
Move plugin libraries to $(libdir)/xfce4/panel and desktop
files to $(datadir)/xfce4/panel. Much more consistent.