Skip to content

Commit

Permalink
Fix config file when removing system accels.
Browse files Browse the repository at this point in the history
We assign the `NOOP` id for every command disabled by the user, but not
the command name (just `NOOP`). When updating the configuration file,
any command with `NOOP` id is valid, even if the label does not match
`NOOP`. Hence this weird issue.

- Fix #502.
  • Loading branch information
denisfa authored and rkitover committed Sep 16, 2019
1 parent 1c6b016 commit 10f5576
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/wx/opts.cpp
Expand Up @@ -803,6 +803,11 @@ void update_opts()
if (cmdtab[cmd].cmd_id == cmd_id)
break;

// NOOP overwrittes commands removed by the user
wxString command = cmdtab[cmd].cmd;
if (cmdtab[cmd].cmd_id == XRCID("NOOP"))
command = wxT("NOOP");

wxAcceleratorEntry_v::iterator j;

for (j = i + 1; j < gopts.accels.end(); ++j)
Expand All @@ -812,8 +817,8 @@ void update_opts()
wxAcceleratorEntry_v nv(i, j);
wxString nvs = wxKeyTextCtrl::ToString(nv);

if (nvs != cfg->Read(cmdtab[cmd].cmd))
cfg->Write(cmdtab[cmd].cmd, nvs);
if (nvs != cfg->Read(command))
cfg->Write(command, nvs);
}

cfg->SetPath(wxT("/"));
Expand Down

0 comments on commit 10f5576

Please sign in to comment.