Commit c1347bbe authored by jean-pierre charras's avatar jean-pierre charras

Pcbnew: fix a crash when aborting a pad move or drag in board editor

parent 7b8b51b2
......@@ -69,17 +69,6 @@ files in /mingw/include and library link files in /mingw/lib. You can install
path by setting --prefix=/mingw to configure above to change where "make install"
puts everything. We will refer to the --prefix setting as <wxInstallDir> below.
If you are planning to enable the USE_WX_GRAPHICS_CONTEXT option (see options
section below) on Windows using MinGW/MSYS you must build wxWidgets with the
--enable-graphics_ctx switch added to the build configurations above.
Unfortunately it is not quite that simple because MinGW does not define the
Gdi+ header and link library files. First you must download the required Gdi+
development files from
<http://www.miscdebris.net/blog/2009/09/17/adding-gdi-headers-to-mingw-to-compile-wxwidgets-with-wxgraphicscontext-support/>
and unzip them where MinGW is installed.
Verify that wx-config is in your path. Modify your PATH environment variable
if need be so you can run wx-config from a command prompt. You may have to
restart your msys shell, depending on how you modify your PATH.
......@@ -210,13 +199,10 @@ These should be set from command line:
KICAD_MINIZIP ON/OFF
USE_WX_ZOOM ON/OFF (OPTIONAL)
Experimental coordinate translation code using wxDC instead of custom
Kicad version.
USE_WX_GRAPHICS_CONTEXT ON/OFF (OPTIONAL)
Experimental advanced drawing library code using wxGraphicsContext. It
requires wxWidgets to be built with the --enable-graphics_ctx switch.
*Experimental* advanced drawing library code using wxGraphicsContext (for tests only).
Under Windows, a very recent version of mingw is needed.
It requires wxWidgets to be built with the --enable-graphics_ctx switch.
See building wxWidgets above.
Note: that it is easy to build only a specific binary such as pcbnew alone:
......
......@@ -22,7 +22,7 @@ static wxPoint Pad_OldPos;
/* Cancel move pad command.
*/
static void Exit_Move_Pad( EDA_DRAW_PANEL* Panel, wxDC* DC )
static void Abort_Move_Pad( EDA_DRAW_PANEL* Panel, wxDC* DC )
{
D_PAD* pad = s_CurrentSelectedPad;
......@@ -62,6 +62,9 @@ static void Show_Pad_Move( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPo
BASE_SCREEN* screen = aPanel->GetScreen();
D_PAD* pad = s_CurrentSelectedPad;
if( pad == NULL ) // Should not occur
return;
if( aErase )
pad->Draw( aPanel, aDC, GR_XOR );
......@@ -277,7 +280,7 @@ void WinEDA_BasePcbFrame::StartMovePad( D_PAD* Pad, wxDC* DC )
s_CurrentSelectedPad = Pad;
Pad_OldPos = Pad->m_Pos;
Pad->DisplayInfo( this );
DrawPanel->SetMouseCapture( Show_Pad_Move, Exit_Move_Pad );
DrawPanel->SetMouseCapture( Show_Pad_Move, Abort_Move_Pad );
/* Draw the pad (SKETCH mode) */
Pad->Draw( DrawPanel, DC, GR_XOR );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment