{"record":{"id":"519ab2ab30ae24b1","repo":"emilk/egui","slug":"galley-should-be-available-here","errorCode":null,"errorMessage":"Galley should be available here","messagePattern":"Galley should be available here","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/egui/src/widgets/text_edit/builder.rs","lineNumber":760,"sourceCode":"                allocated\n                    .frame\n                    .fill(background_color)\n                    .corner_radius(corner_radius)\n                    .inner_margin(\n                        allocated.frame.inner_margin\n                            + Margin::same((visuals.expansion - stroke.width).round() as i8),\n                    )\n                    .outer_margin(Margin::same(-(visuals.expansion as i8)))\n                    .stroke(stroke)\n            };\n\n            allocated.paint(ui)\n        };\n\n        let inner_rect = response.rect(inner_rect_id).unwrap_or(Rect::ZERO);\n\n        // Our atom closure was now called, so the galley should always be available here\n        let mut galley = get_galley.expect(\"Galley should be available here\");\n\n        // Don't send `OutputEvent::Clicked` when a user presses the space bar\n        response.flags -= response::Flags::FAKE_PRIMARY_CLICKED;\n        let text_clip_rect = inner_rect;\n        let painter = ui.painter_at(text_clip_rect.expand(1.0)); // expand to avoid clipping cursor\n\n        if interactive && let Some(pointer_pos) = response.interact_pointer_pos() {\n            if response.hovered() && text.is_mutable() {\n                ui.output_mut(|o| o.mutable_text_under_cursor = true);\n            }\n\n            // TODO(emilk): drag selected text to either move or clone (ctrl on windows, alt on mac)\n\n            let cursor_at_pointer = galley.cursor_from_pos(\n                pointer_pos - inner_rect.min + state.text_offset + vec2(galley.rect.left(), 0.0),\n            );\n\n            if ui.visuals().text_cursor.preview","sourceCodeStart":742,"sourceCodeEnd":778,"githubUrl":"https://github.com/emilk/egui/blob/d802a982ce959839d92f4f6718fdffa41143110e/crates/egui/src/widgets/text_edit/builder.rs#L742-L778","documentation":"Error \"Galley should be available here\" thrown in emilk/egui.","triggerScenarios":"Thrown at crates/egui/src/widgets/text_edit/builder.rs:760 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"d802a982ce959839d92f4f6718fdffa41143110e","analyzedAt":"2026-08-16T20:07:53.954Z","schemaVersion":2},"datasetVersion":"2026-08-16T23:17:17.608Z"}