Fix Gtk-CRITICAL assertions creating noise and occasional lag in Linux/GTK #1128

Closed
opened 2026-04-05 16:52:36 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @bdunks on 1/9/2026

Description

Summary

This PR addresses multiple Gtk-CRITICAL assertions appearing in Linux environments (GTK2/GTK3). It fixes invalid cell layout access in PresetComboBoxes and adds defensive sizing guards for TextInput and DropDown widgets during early initialization.

Currently, the console output is filled with GTK assertions. A quick count shows ~215 assertions at starup; however, with some UI interactions, the logs logs fire so rapidly the program becomes unresponsive. Here is an example of 20,000 log entries in a 7.5 minute session, but 19,000 of these entries were in the last 30-60 seconds.

time printf "Count of Gtk Assertions: %s\n" (orca-slicer 2>&1 | grep -c 'Gtk-CRITICAL')
Count of Gtk Assertions: 20762

________________________________________________________
Executed in  435.75 secs    fish           external
   usr time  375.89 secs    2.66 millis  375.88 secs
   sys time   33.48 secs    1.56 millis   33.47 secs

Some changes picked from https://github.com/prusa3d/PrusaSlicer/commit/e855ab5d. Others are unique to Orca. More details in commit messages.

Screenshots/Recordings/Graphs

Based on testing, there have been no UI changes or regressions.

Examples from changes not picked from Prusa commit:

Filament PresetComboBox / DropDown

Before:

filament_presentcombo_dropdown_before

After:

filament_presentcombo_dropdown_after

Project License

Before:

project_license_before

After:

project_license_after

Tests

Manually performed side-by-side visual inspection between these changes and current main branch, focusing on impacted elements.

*Originally created by @bdunks on 1/9/2026* # Description ## Summary This PR addresses multiple `Gtk-CRITICAL` assertions appearing in Linux environments (GTK2/GTK3). It fixes invalid cell layout access in `PresetComboBoxes` and adds defensive sizing guards for `TextInput` and `DropDown` widgets during early initialization. Currently, the console output is filled with GTK assertions. A quick count shows ~215 assertions at starup; however, with some UI interactions, the logs logs fire so rapidly the program becomes unresponsive. Here is an example of 20,000 log entries in a 7.5 minute session, but 19,000 of these entries were in the last 30-60 seconds. ```sh ❯ time printf "Count of Gtk Assertions: %s\n" (orca-slicer 2>&1 | grep -c 'Gtk-CRITICAL') Count of Gtk Assertions: 20762 ________________________________________________________ Executed in 435.75 secs fish external usr time 375.89 secs 2.66 millis 375.88 secs sys time 33.48 secs 1.56 millis 33.47 secs ``` Some changes picked from https://github.com/prusa3d/PrusaSlicer/commit/e855ab5d. Others are unique to Orca. More details in commit messages. # Screenshots/Recordings/Graphs Based on testing, there have been **no UI changes** or regressions. Examples from changes not picked from Prusa commit: ## Filament PresetComboBox / DropDown ### Before: <img width="583" height="279" alt="filament_presentcombo_dropdown_before" src="https://github.com/user-attachments/assets/e0d78c66-799d-4b6e-944a-d423bfc0a104" /> ### After: <img width="583" height="279" alt="filament_presentcombo_dropdown_after" src="https://github.com/user-attachments/assets/8bf5d59c-3646-47c5-99b5-1ca33181a41f" /> ## Project License ### Before: <img width="779" height="654" alt="project_license_before" src="https://github.com/user-attachments/assets/0b9780f7-6493-493a-8864-65265dcb23a0" /> ### After: <img width="807" height="550" alt="project_license_after" src="https://github.com/user-attachments/assets/fb95b436-c77e-4025-9a3b-56b3d6444155" /> ## Tests Manually performed side-by-side visual inspection between these changes and current `main` branch, focusing on impacted elements.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#1128