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