Skip to content

Commit

Permalink
Fixed crash when install/remove application.
Browse files Browse the repository at this point in the history
Fixed issue #403

If m-c-c is open, install/uninstall application, m-c-c is crash.
  • Loading branch information
yetist authored and raveit65 committed Jan 1, 2019
1 parent 99b0d3e commit 512b446
Showing 1 changed file with 17 additions and 4 deletions.
21 changes: 17 additions & 4 deletions libslab/app-shell.c
Original file line number Diff line number Diff line change
Expand Up @@ -845,8 +845,17 @@ matemenu_tree_changed_callback (MateMenuTree * old_tree, gpointer user_data)
it's probably a good idea to wait a couple seconds to regenerate the categories in case there
are multiple quick changes being made, no sense regenerating multiple times.
*/
g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE, 3000, (GSourceFunc) regenerate_categories,
user_data, NULL);
GError *error = NULL;
AppShellData * app_data = user_data;
if (!matemenu_tree_load_sync (app_data->tree, &error)) {
g_warning ("Menu tree loading got error:%s\n", error->message);
g_object_unref (app_data->tree);
app_data->tree = NULL;
g_error_free (error);
} else {
g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE, 3000, (GSourceFunc) regenerate_categories,
user_data, NULL);
}
}

AppShellData *
Expand Down Expand Up @@ -887,10 +896,14 @@ generate_categories (AppShellData * app_data)
g_object_unref(app_data->tree);
app_data->tree = NULL;
}

}

if ((root_dir = matemenu_tree_get_root_directory (app_data->tree)) == NULL ) {
if (app_data->tree != NULL)
root_dir = matemenu_tree_get_root_directory (app_data->tree);
else
root_dir = NULL;

if ( app_data->tree == NULL || root_dir == NULL) {
GtkWidget *dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failure loading - %s",
app_data->menu_name);
Expand Down

0 comments on commit 512b446

Please sign in to comment.