mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	CustomCtrl : fixed correction of the CustomCtrl's line height in respect to the height of the inside controls (fields or widgets)
Issue was appeared on the Ubuntu 20.04
This commit is contained in:
		
							parent
							
								
									3ca3a544a8
								
							
						
					
					
						commit
						d576c029bd
					
				
					 1 changed files with 16 additions and 0 deletions
				
			
		|  | @ -114,6 +114,14 @@ wxPoint OG_CustomCtrl::get_pos(const Line& line, Field* field_in/* = nullptr*/) | |||
| { | ||||
|     wxCoord v_pos = 0; | ||||
|     wxCoord h_pos = 0; | ||||
| 
 | ||||
|     auto correct_line_height = [](int& line_height, wxWindow* win) | ||||
|     { | ||||
|         int win_height = win->GetSize().GetHeight(); | ||||
|         if (line_height < win_height) | ||||
|             line_height = win_height; | ||||
|     }; | ||||
| 
 | ||||
|     for (auto ctrl_line : ctrl_lines) { | ||||
|         if (&ctrl_line.og_line == &line) | ||||
|         { | ||||
|  | @ -134,6 +142,10 @@ wxPoint OG_CustomCtrl::get_pos(const Line& line, Field* field_in/* = nullptr*/) | |||
| 
 | ||||
|             if (line.widget) { | ||||
|                 h_pos += blinking_button_width; | ||||
| 
 | ||||
|                 for (auto child : line.widget_sizer->GetChildren()) | ||||
|                     if (child->IsWindow()) | ||||
|                         correct_line_height(ctrl_line.height, child->GetWindow()); | ||||
|                 break; | ||||
|             } | ||||
| 
 | ||||
|  | @ -144,11 +156,15 @@ wxPoint OG_CustomCtrl::get_pos(const Line& line, Field* field_in/* = nullptr*/) | |||
|                 option_set.front().side_widget == nullptr && line.get_extra_widgets().size() == 0) | ||||
|             { | ||||
|                 h_pos += 3 * blinking_button_width; | ||||
|                 Field* field = opt_group->get_field(option_set.front().opt_id); | ||||
|                 correct_line_height(ctrl_line.height, field->getWindow()); | ||||
|                 break; | ||||
|             } | ||||
| 
 | ||||
|             for (auto opt : option_set) { | ||||
|                 Field* field = opt_group->get_field(opt.opt_id); | ||||
|                 correct_line_height(ctrl_line.height, field->getWindow()); | ||||
| 
 | ||||
|                 ConfigOptionDef option = opt.opt; | ||||
|                 // add label if any
 | ||||
|                 if (!option.label.empty()) { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 YuSanka
						YuSanka