mirror of
https://github.com/swaywm/sway.git
synced 2026-03-30 11:10:59 -04:00
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.
This commit is contained in:
parent
87035380e3
commit
13b81f9fb9
4 changed files with 47 additions and 17 deletions
|
|
@ -5,6 +5,13 @@
|
|||
#include <dbus/dbus.h>
|
||||
extern DBusConnection *conn;
|
||||
|
||||
enum property_status {
|
||||
PROP_EXISTS, /* Will give iter */
|
||||
PROP_ERROR, /* Will not give iter */
|
||||
PROP_BAD_DATA, /* Will not give iter */
|
||||
PROP_WRONG_SIG, /* Will give iter, please be careful */
|
||||
};
|
||||
|
||||
/**
|
||||
* Checks the signature of the given iter against `sig`. Prefer to
|
||||
* `dbus_message_iter_get_signature` as this one frees the intermediate string.
|
||||
|
|
@ -15,8 +22,9 @@ bool dbus_message_iter_check_signature(DBusMessageIter *iter, const char *sig);
|
|||
* Fetches the property and calls `callback` with a message iter pointing it.
|
||||
* Performs error handling and signature checking.
|
||||
*
|
||||
* Returns: true if message is successfully sent (will not necessarily arrive)
|
||||
* and false otherwise
|
||||
* Returns: true if message is successfully sent and false otherwise. If there
|
||||
* is an error getting a property, `callback` will still be run, but with
|
||||
* `status` set to the error.
|
||||
*
|
||||
* NOTE: `expected_signature` must remain valid until the message reply is
|
||||
* received, please only use 'static signatures.
|
||||
|
|
@ -26,7 +34,7 @@ bool dbus_get_prop_async(const char *destination,
|
|||
const char *iface,
|
||||
const char *prop,
|
||||
const char *expected_signature,
|
||||
void(*callback)(DBusMessageIter *iter, void *data),
|
||||
void(*callback)(DBusMessageIter *iter, void *data, enum property_status status),
|
||||
void *data);
|
||||
/**
|
||||
* Should be called in main loop to dispatch events
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue