GTK: Fix opening a ROM from the command line

Only the first of the positional arguments is interpreted as the ROM’s
filename, because we don’t emulate multiple ROMs at once.

Fixes #382.
This commit is contained in:
Emmanuel Gil Peyrot 2020-10-03 01:41:52 +02:00 committed by linkmauve
parent cb49416952
commit d854909b04
1 changed files with 14 additions and 1 deletions

View File

@ -4446,6 +4446,18 @@ static void Teardown() {
#endif
}
static void
handle_open(GApplication *application,
GFile **files,
gint n_files,
const gchar *hint,
gpointer user_data)
{
configured_features *my_config = static_cast<configured_features*>(user_data);
my_config->nds_file = g_file_get_path(files[0]);
common_gtk_main(application, user_data);
}
int main (int argc, char *argv[])
{
configured_features my_config;
@ -4464,8 +4476,9 @@ int main (int argc, char *argv[])
}
// TODO: pass G_APPLICATION_HANDLES_COMMAND_LINE instead.
GtkApplication *app = gtk_application_new("org.desmume.DeSmuME", G_APPLICATION_FLAGS_NONE);
GtkApplication *app = gtk_application_new("org.desmume.DeSmuME", G_APPLICATION_HANDLES_OPEN);
g_signal_connect (app, "activate", G_CALLBACK(common_gtk_main), &my_config);
g_signal_connect (app, "open", G_CALLBACK(handle_open), &my_config);
g_action_map_add_action_entries(G_ACTION_MAP(app),
app_entries, G_N_ELEMENTS(app_entries),
app);