Commit graph

26 commits

Author SHA1 Message Date
David McKinney
4d5fae4567 Merge remote-tracking branch 'remotes/origin/bugfix/iconsnotfound' into 0.15 2018-03-24 19:05:12 -04:00
David McKinney
8d95d2f924
Fixed missing icons bug in index.theme parsing and a path concatenation bug in find_inherits() 2018-03-24 12:49:15 -04:00
gnidorah
87a55dfe5c Fix icon updating on secondary outputs 2017-12-29 12:11:51 -07:00
gnidorah
cbd0c49a8c Allow correct item to get icon updates for both kde and gtk implementation 2017-12-29 12:11:51 -07:00
Calvin Lee
13b81f9fb9 Fix get_icon
Property reply functions are now notified if there was an error with the
property instead of silent failure. Also issues in `get_item` were
resolved.
2017-12-29 12:11:51 -07:00
Calvin Lee
87035380e3 Add dbus_get_prop_async utility
This drastically reduces the amount of boilerplate needed to get a
property from a bus object.
2017-12-29 12:11:51 -07:00
Calvin Lee
b9f36716b5 Plug memory dbus_message_iter_get_signature leak 2017-12-29 12:11:51 -07:00
Calvin Lee
5c8dc9cb73 Correct context menu placement if bar is bottom
Originally the context menu would draw at the top of the screen, which
is incorrect.
2017-12-29 12:11:51 -07:00
gnidorah
2f1eb30c38 Reply in case of object path item 2017-12-29 12:11:51 -07:00
Calvin Lee
3137f32711 Allow correct item to get icon updates 2017-12-29 12:11:51 -07:00
Calvin Lee
210e5bb893 Improve Icon Theme Implimentation 2017-12-29 12:11:51 -07:00
Calvin Lee
5bc46f458c Prevent segfault in get_items()
One segfault resulted from an incorrect dbus call in sni_watcher. The
other from duplicate items in the sni host.
2017-12-29 12:11:51 -07:00
Calvin Lee
4231061e4d Allow multiple object paths for each connection 2017-12-29 12:11:51 -07:00
gnidorah
bd121999ca Allow paths to icons in iconName property 2017-12-29 12:11:51 -07:00
Calvin Lee
ad99d9dff8 Allow registering StatusNotifierItems by obj path
This commit impliments a KDE hidden feature where a SNI could be
registered by object path instead of well-known name. This should allow
libappindicator programs to work correctly under sway.

See #1372
2017-12-29 12:11:51 -07:00
Calvin Lee
ba6224f4e5 Prevent crash if DBus connection is NULL
Fixes #1307
2017-08-12 12:52:31 +02:00
Calvin Lee
e8f589c3dc Fix memory leaks in swaybar tray 2017-07-16 19:06:24 -07:00
Calvin Lee
5ceb52962e Fix name validation in sni_watcher.c
This commit also fixes a memory leak that occurs on failure.
2017-07-13 20:57:23 -07:00
Calvin Lee
62223e8fbb Don't trust SNI names, fixes #1274
If an item doesn't have a well-formed name, it will not be added to the
tray.
2017-07-13 07:47:21 -07:00
Johannes Lundberg
6a525b23dd Adjust _XOPEN_SOURCE value for build on FreeBSD and fix pointer comparison error. 2017-07-08 08:31:10 +02:00
Drew DeVault
5f915a9d03 Fix #1252 2017-06-26 16:59:19 -04:00
Mykyta Holubakha
ed8f56ba38
Handle getline failure in icon theme parsing 2017-06-23 19:23:44 +03:00
Calvin Lee
33fdae2001 Remove Xembed Support
Xembed support is premature in sway and should be postponed. This commit
only removes swaybar starting xembedsniproxy, if users would like, they
can still start xembedsniproxy manually, however there will be no
official support.
2017-06-13 12:42:11 -07:00
Calvin Lee
0a71aa6e97 Fix Catching NewIcon Signal
The unique name was not copied out of the wire marshalled DBus message
data so `sni_uniq_cmp` would always match against junk data.
2017-06-08 08:24:35 -07:00
Calvin Lee
1451ee8fd1 Reorganize Tray Code
Remove tray code from bar.c and render.c
2017-06-07 21:32:48 -07:00
Calvin Lee
843ad38b3c Implement Tray Icons
This commit implements the StatusNotifierItem protocol, and enables
swaybar to show tray icons. It also uses `xembedsniproxy` in order to
communicate with xembed applications.
The tray is completely optional, and can be disabled on compile time
with the `enable-tray` option. Or on runtime with the bar config option
`tray_output none`.

Overview of changes:
In swaybar very little is changed outside the tray subfolder except
that all events are now polled in `event_loop.c`, this creates no
functional difference.

Six bar configuration options were added, these are detailed in
sway-bar(5)

The tray subfolder is where all protocol implementation takes place and
is organised as follows:

tray/sni_watcher.c:
	This file contains the StatusNotifierWatcher. It keeps track of
	items and hosts and reports when they come or go.
tray/tray.c
	This file contains the StatusNotifierHost. It keeps track of
	sway's version of the items and represents the tray itself.
tray/sni.c
	This file contains the StatusNotifierItem struct and all
	communication with individual items.
tray/icon.c
	This file implements the icon theme protocol. It allows for
	finding icons by name, rather than by pixmap.
tray/dbus.c
	This file allows for asynchronous DBus communication.

See #986 #343
2017-06-07 17:49:16 -07:00