accept more than one callback.
g_bus_own_name_with_closures
g_bus_own_name_on_connection_with_closures
g_bus_watch_name_with_closures
g_bus_watch_name_on_connection_with_closures
g_bus_watch_proxy_with_closures
g_bus_watch_proxy_on_connection_with_closures
https://bugzilla.gnome.org/show_bug.cgi?id=621092
Create a function run_with_application that both ensures the
app is running exactly while the test is running, which most
of the tests use. We start it beforehand, and kill it after.
This avoids having any interdependence between the tests (and
there definitely was before, because we didn't wait for
the process to actually terminate after a kill() call).
Also, open a pipe between the two, and have the child app
monitor that pipe. If it gets closed (e.g. because the parent
died), the child exits. This is the most reliable way to
avoid stale children; before, if we failed an assertion, the
parent would abort, and not run kill().
https://bugzilla.gnome.org/show_bug.cgi?id=621034
There was a slight race where we ended up calling into user code if
the user managed to unregister an object (or subtree) in the window
between
- processing the remote call on the worker thread; and
- continuing handling it on the user code thread (via an idle handler)
This patch fixes the problem.
Signed-off-by: David Zeuthen <davidz@redhat.com>
Fix proxy construction for objects with no properties in the case
where G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES isn't set.
The unfortunate side-effect here is that GDBusProxy can no longer be
used to test for "object existence", e.g. creating a GDBusProxy for
any path and interface will not fail. But that's not really a big
deal, if apps rely on that they are doing something very wrong.
https://bugzilla.gnome.org/show_bug.cgi?id=621119
Signed-off-by: David Zeuthen <davidz@redhat.com>
This adds a GApplication object to GIO, which is the core of
an application support class, supporting
- uniqueness
- exporting actions (simple scripting)
- standard actions (quit, activate)
The implementation for Linux uses D-Bus, takes a name on the
session bus, and exports a org.gtk.Application interface.
Implementations for Win32 and OS X are still missing.
The GSettings schema compiler was accepting any string as a path. It is
probably quite a common mistake to suspect that '/apps/foo' is a valid
path name when this will cause all sorts of trouble later. Check for
this case and report the error.