Don't use floating object for EekElement.
This commit is contained in:
		@ -200,7 +200,7 @@ eek_clutter_key_set_property (GObject      *object,
 | 
			
		||||
    switch (prop_id) {
 | 
			
		||||
    case PROP_KEY:
 | 
			
		||||
        priv->key = g_value_get_object (value);
 | 
			
		||||
        g_object_ref_sink (priv->key);
 | 
			
		||||
        g_object_ref (priv->key);
 | 
			
		||||
        break;
 | 
			
		||||
    case PROP_RENDERER:
 | 
			
		||||
        priv->renderer = g_value_get_object (value);
 | 
			
		||||
@ -224,7 +224,7 @@ eek_clutter_key_dispose (GObject *object)
 | 
			
		||||
        priv->renderer = NULL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (priv->key && g_object_is_floating (priv->key)) {
 | 
			
		||||
    if (priv->key) {
 | 
			
		||||
        g_object_unref (priv->key);
 | 
			
		||||
        priv->key = NULL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -166,7 +166,7 @@ eek_clutter_keyboard_set_property (GObject      *object,
 | 
			
		||||
    switch (prop_id) {
 | 
			
		||||
    case PROP_KEYBOARD:
 | 
			
		||||
        priv->keyboard = g_value_get_object (value);
 | 
			
		||||
        g_object_ref_sink (priv->keyboard);
 | 
			
		||||
        g_object_ref (priv->keyboard);
 | 
			
		||||
        create_renderer (EEK_CLUTTER_KEYBOARD(object));
 | 
			
		||||
        break;
 | 
			
		||||
    default:
 | 
			
		||||
@ -187,7 +187,7 @@ eek_clutter_keyboard_dispose (GObject *object)
 | 
			
		||||
        priv->renderer = NULL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (priv->keyboard && g_object_is_floating (priv->keyboard)) {
 | 
			
		||||
    if (priv->keyboard) {
 | 
			
		||||
        g_object_unref (priv->keyboard);
 | 
			
		||||
        priv->keyboard = NULL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -140,7 +140,7 @@ eek_clutter_section_set_property (GObject      *object,
 | 
			
		||||
    switch (prop_id) {
 | 
			
		||||
    case PROP_SECTION:
 | 
			
		||||
        priv->section = g_value_get_object (value);
 | 
			
		||||
        g_object_ref_sink (priv->section);
 | 
			
		||||
        g_object_ref (priv->section);
 | 
			
		||||
        break;
 | 
			
		||||
    case PROP_RENDERER:
 | 
			
		||||
        priv->renderer = g_value_get_object (value);
 | 
			
		||||
@ -164,7 +164,7 @@ eek_clutter_section_dispose (GObject *object)
 | 
			
		||||
        priv->renderer = NULL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (priv->section && g_object_is_floating (priv->section)) {
 | 
			
		||||
    if (priv->section) {
 | 
			
		||||
        g_object_unref (priv->section);
 | 
			
		||||
        priv->section = NULL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -58,7 +58,7 @@ eek_container_real_add_child (EekContainer *self,
 | 
			
		||||
    EekContainerPrivate *priv = EEK_CONTAINER_GET_PRIVATE(self);
 | 
			
		||||
 | 
			
		||||
    g_return_if_fail (EEK_IS_ELEMENT(child));
 | 
			
		||||
    g_object_ref_sink (child);
 | 
			
		||||
    g_object_ref (child);
 | 
			
		||||
 | 
			
		||||
    priv->children = g_slist_prepend (priv->children, child);
 | 
			
		||||
    eek_element_set_parent (child, EEK_ELEMENT(self));
 | 
			
		||||
 | 
			
		||||
@ -42,7 +42,7 @@ enum {
 | 
			
		||||
    PROP_LAST
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
G_DEFINE_ABSTRACT_TYPE (EekElement, eek_element, G_TYPE_INITIALLY_UNOWNED);
 | 
			
		||||
G_DEFINE_ABSTRACT_TYPE (EekElement, eek_element, G_TYPE_OBJECT);
 | 
			
		||||
 | 
			
		||||
#define EEK_ELEMENT_GET_PRIVATE(obj)                                  \
 | 
			
		||||
    (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EEK_TYPE_ELEMENT, EekElementPrivate))
 | 
			
		||||
@ -68,7 +68,7 @@ eek_element_real_set_parent (EekElement *self,
 | 
			
		||||
        priv->parent = NULL;
 | 
			
		||||
    } else {
 | 
			
		||||
        g_return_if_fail (!priv->parent);
 | 
			
		||||
        g_object_ref_sink (self);
 | 
			
		||||
        g_object_ref (self);
 | 
			
		||||
        priv->parent = parent;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -37,7 +37,7 @@ typedef struct _EekElementPrivate EekElementPrivate;
 | 
			
		||||
struct _EekElement
 | 
			
		||||
{
 | 
			
		||||
    /*< private >*/
 | 
			
		||||
    GInitiallyUnowned parent;
 | 
			
		||||
    GObject parent;
 | 
			
		||||
 | 
			
		||||
    EekElementPrivate *priv;
 | 
			
		||||
};
 | 
			
		||||
@ -45,7 +45,7 @@ struct _EekElement
 | 
			
		||||
struct _EekElementClass
 | 
			
		||||
{
 | 
			
		||||
    /*< private >*/
 | 
			
		||||
    GInitiallyUnownedClass parent_class;
 | 
			
		||||
    GObjectClass parent_class;
 | 
			
		||||
    void                  (* set_parent) (EekElement  *self,
 | 
			
		||||
                                          EekElement  *parent);
 | 
			
		||||
    EekElement           *(* get_parent) (EekElement  *self);
 | 
			
		||||
 | 
			
		||||
@ -204,7 +204,7 @@ eek_gtk_keyboard_set_keyboard (EekGtkKeyboard *self,
 | 
			
		||||
                               EekKeyboard    *keyboard)
 | 
			
		||||
{
 | 
			
		||||
    EekGtkKeyboardPrivate *priv = EEK_GTK_KEYBOARD_GET_PRIVATE(self);
 | 
			
		||||
    priv->keyboard = g_object_ref_sink (keyboard);
 | 
			
		||||
    priv->keyboard = g_object_ref (keyboard);
 | 
			
		||||
 | 
			
		||||
    g_signal_connect (priv->keyboard, "key-pressed",
 | 
			
		||||
                      G_CALLBACK(on_key_pressed), self);
 | 
			
		||||
@ -245,7 +245,7 @@ eek_gtk_keyboard_dispose (GObject *object)
 | 
			
		||||
        priv->renderer = NULL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (priv->keyboard && g_object_is_floating (priv->keyboard)) {
 | 
			
		||||
    if (priv->keyboard) {
 | 
			
		||||
        g_object_unref (priv->keyboard);
 | 
			
		||||
        priv->keyboard = NULL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -534,7 +534,8 @@ eek_renderer_set_property (GObject      *object,
 | 
			
		||||
    switch (prop_id) {
 | 
			
		||||
    case PROP_KEYBOARD:
 | 
			
		||||
        priv->keyboard = g_value_get_object (value);
 | 
			
		||||
        g_object_ref_sink (priv->keyboard);
 | 
			
		||||
        g_object_ref (priv->keyboard);
 | 
			
		||||
 | 
			
		||||
        g_signal_connect (priv->keyboard, "keysym-index-changed",
 | 
			
		||||
                          G_CALLBACK(on_keysym_index_changed),
 | 
			
		||||
                          object);
 | 
			
		||||
@ -552,8 +553,7 @@ eek_renderer_dispose (GObject *object)
 | 
			
		||||
    EekRendererPrivate *priv = EEK_RENDERER_GET_PRIVATE(object);
 | 
			
		||||
 | 
			
		||||
    if (priv->keyboard) {
 | 
			
		||||
        if (g_object_is_floating (priv->keyboard))
 | 
			
		||||
            g_object_unref (priv->keyboard);
 | 
			
		||||
        g_object_unref (priv->keyboard);
 | 
			
		||||
        priv->keyboard = NULL;
 | 
			
		||||
    }
 | 
			
		||||
    if (priv->pcontext) {
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user