Fix bug: Pcbnew crash on invoking footprint browser when already open (happens only in some distros)
Fixes: lp:1775178 https://bugs.launchpad.net/kicad/+bug/1775178
This commit is contained in:
parent
da392728d4
commit
9354372a0c
|
@ -1,9 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 Jean-Pierre Charras, jean-pierre.charras@ujf-grenoble.fr
|
* Copyright (C) 2018 Jean-Pierre Charras, jean-pierre.charras@ujf-grenoble.fr
|
||||||
* Copyright (C) 2012 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
|
* Copyright (C) 2012 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
|
||||||
* Copyright (C) 1992-2017 KiCad Developers, see AUTHORS.txt for contributors.
|
* Copyright (C) 1992-2018 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file pcbnew/loadcmp.cpp
|
* @file load_select_footprint.cpp
|
||||||
* @brief Footprints selection and loading functions.
|
* @brief Footprints selection and loading functions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -143,7 +143,15 @@ wxString PCB_BASE_FRAME::SelectFootprintFromLibBrowser()
|
||||||
viewer = (FOOTPRINT_VIEWER_FRAME*) Kiway().Player( FRAME_PCB_MODULE_VIEWER, false );
|
viewer = (FOOTPRINT_VIEWER_FRAME*) Kiway().Player( FRAME_PCB_MODULE_VIEWER, false );
|
||||||
|
|
||||||
if( viewer )
|
if( viewer )
|
||||||
|
{
|
||||||
viewer->Destroy();
|
viewer->Destroy();
|
||||||
|
// Destroy() does not immediately delete the viewer, if some events are pending.
|
||||||
|
// (for this reason delete operator cannot be used blindly with "top level" windows)
|
||||||
|
// so gives a slice of time to delete the viewer frame.
|
||||||
|
// This is especially important in OpenGL mode to avoid recreating context before
|
||||||
|
// the old one is deleted
|
||||||
|
wxSafeYield();
|
||||||
|
}
|
||||||
|
|
||||||
SetFocus();
|
SetFocus();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue