void WinEDA_DrawPanel::OnKeyEvent(wxKeyEvent& event) /****************************************************/ { long key, localkey; bool escape = FALSE; key = localkey = event.m_keyCode; switch( localkey ) { case WXK_CONTROL: case WXK_CAPITAL: case WXK_SHIFT: case WXK_NUMLOCK: case WXK_LBUTTON: case WXK_RBUTTON: case 0x0135: /* Alt key */ return; case WXK_ESCAPE: escape = m_AbortRequest = TRUE; break; } if( event.ControlDown() ) localkey |= GR_KB_CTRL; if( event.AltDown() ) localkey |= GR_KB_ALT; if( event.ShiftDown() && (key > 256) ) localkey |= GR_KB_SHIFT; wxClientDC DC(this); BASE_SCREEN * Screen = GetScreen(); PrepareGraphicContext(&DC); g_KeyPressed = localkey; if ( escape ) { if( Screen->ManageCurseur && Screen->ForceCloseManageCurseur ) { SetCursor(m_PanelCursor = m_PanelDefaultCursor); Screen->ForceCloseManageCurseur(m_Parent, &DC); SetCursor(m_PanelCursor = m_PanelDefaultCursor); } else m_Parent->SetToolID(0, m_PanelCursor = m_PanelDefaultCursor = wxCURSOR_ARROW, wxEmptyString); } m_Parent->GeneralControle(&DC, Screen->m_MousePosition); }