Add get_default method to obtain the singleton instance

This commit is contained in:
kotontrion
2024-06-14 14:15:26 +02:00
parent 60730faf1d
commit 23b9314788
2 changed files with 18 additions and 3 deletions
+6 -1
View File
@@ -79,9 +79,14 @@ G_DECLARE_FINAL_TYPE (AstalRiverRiver, astal_river_river, ASTAL_RIVER, RIVER, GO
*
* Returns: (nullable): a newly created connection to river
*/
AstalRiverRiver *astal_river_river_new();
/**
* astal_river_river_get_default
*
* Returns: (nullable) (transfer none): gets the default River object.
*/
AstalRiverRiver* astal_river_river_get_default();
/**
* astal_river_river_get_outputs
* @self: the AstalRiverRiver object
+12 -2
View File
@@ -1,5 +1,6 @@
#include "river.h"
#include "river-private.h"
#include <gio/gio.h>
#include <wayland-client-protocol.h>
@@ -295,7 +296,7 @@ static gboolean astal_river_river_initable_init (GInitable *initable, GCancellab
}
static void astal_river_river_initable_iface_init (GInitableIface *iface) {
iface->init = astal_river_river_initable_init;
iface->init = astal_river_river_initable_init;
}
static void astal_river_river_init(AstalRiverRiver *self) {
@@ -303,7 +304,7 @@ static void astal_river_river_init(AstalRiverRiver *self) {
}
AstalRiverRiver *astal_river_river_new() {
return g_initable_new(ASTAL_RIVER_TYPE_RIVER, NULL, NULL, NULL);
return g_initable_new(ASTAL_RIVER_TYPE_RIVER, NULL, NULL, NULL);
}
static void disconnect_signal (gpointer key, gpointer value, gpointer user_data) {
@@ -314,6 +315,15 @@ static void disconnect_signal (gpointer key, gpointer value, gpointer user_data)
g_signal_handler_disconnect (output, GPOINTER_TO_UINT(value));
}
AstalRiverRiver* astal_river_river_get_default() {
static AstalRiverRiver *self = NULL;
if (self == NULL)
self = astal_river_river_new();
return self;
}
static void astal_river_river_finalize(GObject *object) {
AstalRiverRiver *self = ASTAL_RIVER_RIVER(object);