mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-31 12:41:20 -06:00 
			
		
		
		
	Fix crash on MacOS when clicking filament dropdown in object list (#3205)
* Disable optimization for `RelWithDebInfo` for Clang as well * Fix crash on MacOS (#3134, #3202)
This commit is contained in:
		
							parent
							
								
									6bb0d5ec30
								
							
						
					
					
						commit
						401ac1adef
					
				
					 2 changed files with 19 additions and 6 deletions
				
			
		|  | @ -332,6 +332,16 @@ if(CMAKE_CXX_FLAGS_RELWITHDEBINFO MATCHES "/O2") | |||
|     string(REGEX REPLACE "/O2" "/Od" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") | ||||
| endif() | ||||
| 
 | ||||
| if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") | ||||
|     if(CMAKE_C_FLAGS_RELWITHDEBINFO MATCHES "-O2") | ||||
|         string(REGEX REPLACE "-O2" "-O0" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}") | ||||
|     endif() | ||||
| 
 | ||||
|     if(CMAKE_CXX_FLAGS_RELWITHDEBINFO MATCHES "-O2") | ||||
|         string(REGEX REPLACE "-O2" "-O0" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") | ||||
|     endif() | ||||
| endif() | ||||
| 
 | ||||
| if(MSVC) | ||||
|     if(CMAKE_C_FLAGS_RELWITHDEBINFO MATCHES "/Ob1") | ||||
|         string(REGEX REPLACE "/Ob1" "/Ob0" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}") | ||||
|  |  | |||
|  | @ -5533,12 +5533,6 @@ void GUI::ObjectList::OnStartEditing(wxDataViewEvent &event) | |||
| // Here the last active column is forgotten, so when leaving the editing mode, the next mouse click will not enter the editing mode of the newly selected column.
 | ||||
| void ObjectList::OnEditingStarted(wxDataViewEvent &event) | ||||
| { | ||||
|     // Orca: Automatically show drop down on editing start and finish editing when the combobox is closed
 | ||||
|     if (event.GetColumn() == colFilament) { | ||||
|         ::ComboBox*c         = static_cast<::ComboBox *>(event.GetDataViewColumn()->GetRenderer()->GetEditorCtrl()); | ||||
|         c->ToggleDropDown(); | ||||
|         c->Bind(wxEVT_COMBOBOX_CLOSEUP, [event](wxCommandEvent& evt){ event.GetDataViewColumn()->GetRenderer()->FinishEditing(); }); | ||||
|     } | ||||
| #ifdef __WXMSW__ | ||||
| 	m_last_selected_column = -1; | ||||
| #else | ||||
|  | @ -5603,6 +5597,15 @@ void ObjectList::OnEditingStarted(wxDataViewEvent &event) | |||
|     SetCustomRendererPtr(dynamic_cast<wxDataViewCustomRenderer*>(renderer)); | ||||
| #endif | ||||
| #endif //__WXMSW__
 | ||||
| 
 | ||||
|     // Orca: Automatically show drop down on editing start and finish editing when the combobox is closed
 | ||||
|     // Note: this must placed AFTER the above `renderer->StartEditing` call, otherwise `c` will be nullptr on MacOS,
 | ||||
|     //       due to the code in MacDarkMode.mm
 | ||||
|     if (event.GetColumn() == colFilament) { | ||||
|         ::ComboBox*c         = static_cast<::ComboBox *>(event.GetDataViewColumn()->GetRenderer()->GetEditorCtrl()); | ||||
|         c->ToggleDropDown(); | ||||
|         c->Bind(wxEVT_COMBOBOX_CLOSEUP, [event](wxCommandEvent& evt){ event.GetDataViewColumn()->GetRenderer()->FinishEditing(); }); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void ObjectList::OnEditingDone(wxDataViewEvent &event) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Noisyfox
						Noisyfox