mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-26 10:21:00 +00:00
Fix Gtk-CRITICAL assertions creating noise and occasional lag in Linux/GTK (#11897)
* Fix Gtk-Critical assertion in PresetComboBoxes Resolve the `gtk_cell_layout_get_cells: assertion GTK_IS_CELL_LAYOUT failed` error by switching from `gtk_cell_layout_get_cells()` to `gtk_container_get_children()` with direct PangoLayout ellipsization on GtkEntry widgets. Picked from PrusaSlicer: https://github.com/prusa3d/PrusaSlicer/commit/e855ab5d * Add defensive guards for GTK widget sizing Fix Gtk-CRITICAL assertions in TextInput and DropDown widgets that occur when the widget attempt relative sizing against window size before GTK completes the window layout. Changes include: - TextInput.cpp: Clamp textSize.x >= -1 to prevent `gtk_widget_set_size_request` failures. - Picked from Prusa Slicer: https://github.com/prusa3d/PrusaSlicer/commit/e855ab5d - DropDown.cpp: Guard against zero/negative dimensions during early initialization: - Prevent szContent.x = 0 when parent size is unavailable. - Unique to OrcaSlicer - Triggers during initializing DesignerPanel --> BasicInfo --> License DropDown before a parent size is available. - Latent bug exists in Bambu Studio, but Bambu does not have License field enabled on this panel. - Created global guard for future resilience. - Clamp szContent.y >= 1 for dropdowns before content initialized. - Bug exists in BambuStudio - Prusa did not implement the "ENH: ComboBox Second DropDown"
This commit is contained in:
@@ -197,6 +197,7 @@ void TextInput::DoSetSize(int x, int y, int width, int height, int sizeFlags)
|
||||
if (text_ctrl) {
|
||||
wxSize textSize = text_ctrl->GetSize();
|
||||
textSize.x = size.x - textPos.x - labelSize.x - 10;
|
||||
if(textSize.x < -1) textSize.x = -1;
|
||||
text_ctrl->SetSize(textSize);
|
||||
text_ctrl->SetPosition({textPos.x, (size.y - textSize.y) / 2});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user