diff --git a/src/text-context.cpp b/src/text-context.cpp
index b65bcf19fa55a3cba768f4a977a5e83e532a536c..b45cd6e58090af5155975ba251de874154852655 100644 (file)
--- a/src/text-context.cpp
+++ b/src/text-context.cpp
@@ -436,7 +436,10 @@ sp_text_context_item_handler(SPEventContext *ec, SPItem *item, GdkEvent *event)
item_ungrouped = desktop->item_at_point(NR::Point(event->button.x, event->button.y), TRUE);
if (SP_IS_TEXT(item_ungrouped) || SP_IS_FLOWTEXT(item_ungrouped)) {
sp_canvas_item_show(tc->indicator);
- SP_CTRLRECT(tc->indicator)->setRectangle(sp_item_bbox_desktop(item_ungrouped));
+ NR::Maybe<NR::Rect> ibbox = sp_item_bbox_desktop(item_ungrouped);
+ if (ibbox) {
+ SP_CTRLRECT(tc->indicator)->setRectangle(*ibbox);
+ }
ec->cursor_shape = cursor_text_insert_xpm;
ec->hot_x = 7;
if (fabs(p1[NR::Y] - tc->p0[NR::Y]) > cursor_height) {
// otherwise even one line won't fit; most probably a slip of hand (even if bigger than tolerance)
SPItem *ft = create_flowtext_with_internal_frame (desktop, tc->p0, p1);
+ /* Set style */
+ sp_desktop_apply_style_tool(SP_EVENT_CONTEXT_DESKTOP(ec), SP_OBJECT_REPR(ft), "tools.text", true);
sp_desktop_selection(desktop)->set(ft);
ec->desktop->messageStack()->flash(Inkscape::NORMAL_MESSAGE, _("Flowed text is created."));
sp_document_done(sp_desktop_document(desktop), SP_VERB_CONTEXT_TEXT,
layout->getSourceOfCharacter(it, &rawptr);
pos_obj = SP_OBJECT(rawptr);
if (pos_obj == 0) continue;
- while (SP_OBJECT_STYLE(pos_obj) == NULL && SP_OBJECT_PARENT(pos_obj))
- pos_obj = SP_OBJECT_PARENT(pos_obj); // SPStrings don't have style
+ while (SP_IS_STRING(pos_obj) && SP_OBJECT_PARENT(pos_obj)) {
+ pos_obj = SP_OBJECT_PARENT(pos_obj); // SPStrings don't have style
+ }
styles_list = g_slist_prepend(styles_list, (gpointer)pos_obj);
}
SPItem *frame = SP_FLOWTEXT(tc->text)->get_frame (NULL); // first frame only
if (frame) {
sp_canvas_item_show(tc->frame);
- SP_CTRLRECT(tc->frame)->setRectangle(sp_item_bbox_desktop(frame));
+ NR::Maybe<NR::Rect> frame_bbox = sp_item_bbox_desktop(frame);
+ if (frame_bbox) {
+ SP_CTRLRECT(tc->frame)->setRectangle(*frame_bbox);
+ }
}
SP_EVENT_CONTEXT(tc)->_message_context->set(Inkscape::NORMAL_MESSAGE, _("Type flowed text; <b>Enter</b> to start new paragraph."));
} else {
// the XML editor
if ( text_repr && sp_repr_parent(text_repr) ) {
sp_repr_unparent(text_repr);
+ sp_document_done(sp_desktop_document(tc->desktop), SP_VERB_CONTEXT_TEXT,
+ _("Remove empty text"));
}
}
}