示例#1
0
void
top_changed(GObject * self, GParamSpec * property_param, gpointer data)
{
    HildonProgram *program = HILDON_PROGRAM(self);
    if (hildon_program_get_is_topmost(program))
    {
        AppUIData *app_ui_data = (AppUIData *) data;

        /* topmost status acquired */
        g_return_if_fail(app_ui_data != NULL);
        g_return_if_fail(app_ui_data->app_data != NULL);
        // g_return_if_fail(app_ui_data->app_data->osso_context != NULL);

        /* destory the state file */
        // destroy_state_data(app_ui_data->app_data);

        PDF_FLAGS_UNSET(app_ui_data->flags, PDF_FLAGS_BACKGROUNDED);

        hildon_program_set_can_hibernate(app_ui_data->app, FALSE);

    }
    else
    {
        /* topmost status lost, save state */

        AppUIData *app_ui_data = (AppUIData *) data;

        if (app_ui_data->app_data == NULL ||
            app_ui_data->app_data->comapp_system->osso == NULL)
        {
            return;
        }

        /* Save application's state */
        save_app_state(app_ui_data->app_data);

        /* Key repeat flags need to be reset on focus out */
        PDF_FLAGS_SET(app_ui_data->flags,
                      PDF_FLAGS_SELECT_KEY_ALLOWED | PDF_FLAGS_BACKGROUNDED);

        hildon_program_set_can_hibernate(app_ui_data->app, TRUE);

    }
}
示例#2
0
static void
hildon_program_set_property                     (GObject *object, 
                                                 guint property_id,
                                                 const GValue *value, 
                                                 GParamSpec *pspec)
{
    switch (property_id) {

        case PROP_KILLABLE:
            hildon_program_set_can_hibernate (HILDON_PROGRAM (object), g_value_get_boolean (value));
            break;
            
        default:
            G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
            break;
    }

}