diff -pruN im-chooser-1.6.4.orig/libimchooseui/imchooseui.c im-chooser-1.6.4/libimchooseui/imchooseui.c --- im-chooser-1.6.4.orig/libimchooseui/imchooseui.c 2013-01-18 03:19:42.000000000 +0000 +++ im-chooser-1.6.4/libimchooseui/imchooseui.c 2019-02-25 10:51:13.828775637 +0000 @@ -267,6 +267,14 @@ _imchoose_ui_update_list(IMChooseUI *ui, n_retry++; goto retry; } + if (!imsettings_client_is_supported_desktop(client, NULL, &err)) { + if (err) { + g_error_free(err); + err = NULL; + } + g_spawn_command_line_async("gnome-control-center region", &err); + goto bail; + } active_info = imsettings_client_get_active_im_info(client, NULL, &err); if (err) @@ -739,7 +747,8 @@ imchoose_ui_get(IMChooseUI *ui, retval = GTK_WIDGET (g_object_ref(gtk_builder_get_object(builder, "root"))); g_object_set_data(tree, "imchoose-ui", ui); - _imchoose_ui_update_list(ui, GTK_WIDGET (tree), &err); + if (!_imchoose_ui_update_list(ui, GTK_WIDGET (tree), &err)) + retval = NULL; if (err) goto bail; bail: diff -pruN im-chooser-1.6.4.orig/src/app/main.c im-chooser-1.6.4/src/app/main.c --- im-chooser-1.6.4.orig/src/app/main.c 2013-04-12 07:55:59.000000000 +0000 +++ im-chooser-1.6.4/src/app/main.c 2019-02-25 10:52:30.564740513 +0000 @@ -209,6 +209,8 @@ main(int argc, } goto bail; } + if (!widget) + goto bail; progress = imchoose_ui_get_progress_dialog(ui, &err); gtk_window_set_title(GTK_WINDOW (window), _("Input Method Selector"));