wxWidgets toolbar fixes

- moving ToggleMouse() call to the gui thread fixes two issue: possible deadlock
  in wxGTK after showing message box, mouse cursor not hidden in wxMSW
- don't add undefined toolbar events to the queue
- removed unused / unhandled cases from the toolbar code
This commit is contained in:
Volker Ruppert 2014-01-05 19:38:57 +00:00
parent 0b43928f6a
commit 63a86148bf
2 changed files with 2 additions and 8 deletions

View File

@ -1053,17 +1053,12 @@ void bx_wx_gui_c::handle_events(void)
switch(event_queue[i].type) {
case BX_ASYNC_EVT_TOOLBAR:
switch (event_queue[i].u.toolbar.button) {
case BX_TOOLBAR_FLOPPYA: floppyA_handler(); break;
case BX_TOOLBAR_FLOPPYB: floppyB_handler(); break;
case BX_TOOLBAR_CDROM1: cdrom1_handler(); break;
case BX_TOOLBAR_RESET: reset_handler(); break;
case BX_TOOLBAR_POWER: quit_sim = 1; break;
case BX_TOOLBAR_SAVE_RESTORE: save_restore_handler(); break;
case BX_TOOLBAR_COPY: copy_handler(); break;
case BX_TOOLBAR_PASTE: paste_handler(); break;
case BX_TOOLBAR_SNAPSHOT: snapshot_handler(); break;
// case BX_TOOLBAR_CONFIG: config_handler(); break;
case BX_TOOLBAR_MOUSE_EN: thePanel->ToggleMouse(true); break;
case BX_TOOLBAR_USER: userbutton_handler(); break;
default:
wxLogDebug (wxT ("unknown toolbar id %d"), event_queue[i].u.toolbar.button);

View File

@ -1252,13 +1252,12 @@ void MyFrame::OnToolbarClick(wxCommandEvent& event)
case ID_Toolbar_Copy: which = BX_TOOLBAR_COPY; break;
case ID_Toolbar_Paste: which = BX_TOOLBAR_PASTE; break;
case ID_Toolbar_Snapshot: which = BX_TOOLBAR_SNAPSHOT; break;
// case ID_Toolbar_Config: which = BX_TOOLBAR_CONFIG; break;
case ID_Toolbar_Mouse_en: which = BX_TOOLBAR_MOUSE_EN; break;
case ID_Toolbar_Mouse_en: thePanel->ToggleMouse(true); break;
case ID_Toolbar_User: which = BX_TOOLBAR_USER; break;
default:
wxLogError(wxT("unknown toolbar id %d"), id);
}
if (num_events < MAX_EVENTS) {
if ((which != BX_TOOLBAR_UNDEFINED) && (num_events < MAX_EVENTS)) {
event_queue[num_events].type = BX_ASYNC_EVT_TOOLBAR;
event_queue[num_events].u.toolbar.button = which;
num_events++;