Skip to content
Permalink
Browse files

Fix config file when removing system accels.

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 13, 2019
1 parent 1c6b016 commit 10f5576ecfc8562adbe8b1f2c943b22ba609ba16
Showing with 7 additions and 2 deletions.
  1. +7 −2 src/wx/opts.cpp
@@ -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)
@@ -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("/"));

0 comments on commit 10f5576

Please sign in to comment.
You can’t perform that action at this time.