diff --git a/src/text-context.cpp b/src/text-context.cpp
index b2efd0cc21dfbeb4b40fe2883a9603dd1bc19e82..4f89bd1e144bd5cf106425fa275a5f7d25e3b703 100644 (file)
--- a/src/text-context.cpp
+++ b/src/text-context.cpp
#include "desktop.h"
#include "desktop-style.h"
#include "desktop-handles.h"
#include "desktop.h"
#include "desktop-style.h"
#include "desktop-handles.h"
-#include "desktop-affine.h"
#include "message-stack.h"
#include "message-context.h"
#include "pixmaps/cursor-text.xpm"
#include "message-stack.h"
#include "message-context.h"
#include "pixmaps/cursor-text.xpm"
@@ -353,7 +352,6 @@ sp_text_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEve
sp_text_context_update_cursor(tc);
sp_text_context_update_text_selection(tc);
tc->dragging = 1;
sp_text_context_update_cursor(tc);
sp_text_context_update_text_selection(tc);
tc->dragging = 1;
- sp_canvas_set_snap_delay_active(desktop->canvas, true);
}
ret = TRUE;
}
}
ret = TRUE;
}
@@ -370,7 +368,6 @@ sp_text_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEve
sp_text_context_update_cursor(tc);
sp_text_context_update_text_selection(tc);
tc->dragging = 2;
sp_text_context_update_cursor(tc);
sp_text_context_update_text_selection(tc);
tc->dragging = 2;
- sp_canvas_set_snap_delay_active(desktop->canvas, true);
ret = TRUE;
}
}
ret = TRUE;
}
}
@@ -382,14 +379,13 @@ sp_text_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEve
sp_text_context_update_cursor(tc);
sp_text_context_update_text_selection(tc);
tc->dragging = 3;
sp_text_context_update_cursor(tc);
sp_text_context_update_text_selection(tc);
tc->dragging = 3;
- sp_canvas_set_snap_delay_active(desktop->canvas, true);
ret = TRUE;
}
break;
case GDK_BUTTON_RELEASE:
if (event->button.button == 1 && tc->dragging && !event_context->space_panning) {
tc->dragging = 0;
ret = TRUE;
}
break;
case GDK_BUTTON_RELEASE:
if (event->button.button == 1 && tc->dragging && !event_context->space_panning) {
tc->dragging = 0;
- sp_canvas_set_snap_delay_active(desktop->canvas, false);
+ sp_event_context_discard_delayed_snap_event(event_context);
ret = TRUE;
}
break;
ret = TRUE;
}
break;
@@ -429,11 +425,18 @@ sp_text_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEve
// find out item under mouse, disregarding groups
item_ungrouped = desktop->item_at_point(Geom::Point(event->button.x, event->button.y), TRUE);
if (SP_IS_TEXT(item_ungrouped) || SP_IS_FLOWTEXT(item_ungrouped)) {
// find out item under mouse, disregarding groups
item_ungrouped = desktop->item_at_point(Geom::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);
+
+ Inkscape::Text::Layout const *layout = te_get_layout(item_ungrouped);
+ if (layout->inputTruncated()) {
+ SP_CTRLRECT(tc->indicator)->setColor(0xff0000ff, false, 0);
+ } else {
+ SP_CTRLRECT(tc->indicator)->setColor(0x0000ff7f, false, 0);
+ }
Geom::OptRect ibbox = sp_item_bbox_desktop(item_ungrouped);
if (ibbox) {
SP_CTRLRECT(tc->indicator)->setRectangle(*ibbox);
}
Geom::OptRect ibbox = sp_item_bbox_desktop(item_ungrouped);
if (ibbox) {
SP_CTRLRECT(tc->indicator)->setRectangle(*ibbox);
}
+ sp_canvas_item_show(tc->indicator);
event_context->cursor_shape = cursor_text_insert_xpm;
event_context->hot_x = 7;
event_context->cursor_shape = cursor_text_insert_xpm;
event_context->hot_x = 7;
@@ -670,7 +673,7 @@ sp_text_context_root_handler(SPEventContext *const event_context, GdkEvent *cons
/* Button 1, set X & Y & new item */
sp_desktop_selection(desktop)->clear();
Geom::Point dtp = desktop->w2d(Geom::Point(event->button.x, event->button.y));
/* Button 1, set X & Y & new item */
sp_desktop_selection(desktop)->clear();
Geom::Point dtp = desktop->w2d(Geom::Point(event->button.x, event->button.y));
- tc->pdoc = sp_desktop_dt2doc_xy_point(desktop, dtp);
+ tc->pdoc = desktop->dt2doc(dtp);
tc->show = TRUE;
tc->phase = 1;
tc->show = TRUE;
tc->phase = 1;
@@ -885,10 +888,10 @@ sp_text_context_root_handler(SPEventContext *const event_context, GdkEvent *cons
if (MOD__CTRL_ONLY && tc->text) {
SPStyle const *style = sp_te_style_at_position(tc->text, std::min(tc->text_sel_start, tc->text_sel_end));
SPCSSAttr *css = sp_repr_css_attr_new();
if (MOD__CTRL_ONLY && tc->text) {
SPStyle const *style = sp_te_style_at_position(tc->text, std::min(tc->text_sel_start, tc->text_sel_end));
SPCSSAttr *css = sp_repr_css_attr_new();
- if (style->font_style.computed == SP_CSS_FONT_STYLE_NORMAL)
- sp_repr_css_set_property(css, "font-style", "italic");
- else
+ if (style->font_style.computed != SP_CSS_FONT_STYLE_NORMAL)
sp_repr_css_set_property(css, "font-style", "normal");
sp_repr_css_set_property(css, "font-style", "normal");
+ else
+ sp_repr_css_set_property(css, "font-style", "italic");
sp_te_apply_style(tc->text, tc->text_sel_start, tc->text_sel_end, css);
sp_repr_css_attr_unref(css);
sp_document_done(sp_desktop_document(desktop), SP_VERB_CONTEXT_TEXT,
sp_te_apply_style(tc->text, tc->text_sel_start, tc->text_sel_end, css);
sp_repr_css_attr_unref(css);
sp_document_done(sp_desktop_document(desktop), SP_VERB_CONTEXT_TEXT,
@@ -1280,6 +1283,9 @@ sp_text_context_root_handler(SPEventContext *const event_context, GdkEvent *cons
}
Inkscape::Rubberband::get(desktop)->stop();
}
}
Inkscape::Rubberband::get(desktop)->stop();
}
+ } else if ((group0_keyval == GDK_x || group0_keyval == GDK_X) && MOD__ALT_ONLY) {
+ desktop->setToolboxFocusTo ("altx-text");
+ return TRUE;
}
}
break;
}
}
break;
SPCSSAttr *
sp_text_get_style_at_cursor(SPEventContext const *ec)
SPCSSAttr *
sp_text_get_style_at_cursor(SPEventContext const *ec)
-{
+{
if (!SP_IS_TEXT_CONTEXT(ec))
return NULL;
SPTextContext const *tc = SP_TEXT_CONTEXT(ec);
if (!SP_IS_TEXT_CONTEXT(ec))
return NULL;
SPTextContext const *tc = SP_TEXT_CONTEXT(ec);
Inkscape::Text::Layout const *layout = te_get_layout(tc->text);
int const nChars = layout->iteratorToCharIndex(layout->end());
Inkscape::Text::Layout const *layout = te_get_layout(tc->text);
int const nChars = layout->iteratorToCharIndex(layout->end());
+ char const *trunc = "";
+ bool truncated = false;
+ if (layout->inputTruncated()) {
+ truncated = true;
+ trunc = _(" [truncated]");
+ }
if (SP_IS_FLOWTEXT(tc->text)) {
SPItem *frame = SP_FLOWTEXT(tc->text)->get_frame (NULL); // first frame only
if (frame) {
if (SP_IS_FLOWTEXT(tc->text)) {
SPItem *frame = SP_FLOWTEXT(tc->text)->get_frame (NULL); // first frame only
if (frame) {
+ if (truncated) {
+ SP_CTRLRECT(tc->frame)->setColor(0xff0000ff, false, 0);
+ } else {
+ SP_CTRLRECT(tc->frame)->setColor(0x0000ff7f, false, 0);
+ }
sp_canvas_item_show(tc->frame);
Geom::OptRect frame_bbox = sp_item_bbox_desktop(frame);
if (frame_bbox) {
SP_CTRLRECT(tc->frame)->setRectangle(*frame_bbox);
}
}
sp_canvas_item_show(tc->frame);
Geom::OptRect frame_bbox = sp_item_bbox_desktop(frame);
if (frame_bbox) {
SP_CTRLRECT(tc->frame)->setRectangle(*frame_bbox);
}
}
- SP_EVENT_CONTEXT(tc)->_message_context->setF(Inkscape::NORMAL_MESSAGE, _("Type or edit flowed text (%d characters); <b>Enter</b> to start new paragraph."), nChars);
+
+ SP_EVENT_CONTEXT(tc)->_message_context->setF(Inkscape::NORMAL_MESSAGE, _("Type or edit flowed text (%d characters%s); <b>Enter</b> to start new paragraph."), nChars, trunc);
} else {
} else {
- SP_EVENT_CONTEXT(tc)->_message_context->setF(Inkscape::NORMAL_MESSAGE, _("Type or edit text (%d characters); <b>Enter</b> to start new line."), nChars);
+ SP_EVENT_CONTEXT(tc)->_message_context->setF(Inkscape::NORMAL_MESSAGE, _("Type or edit text (%d characters%s); <b>Enter</b> to start new line."), nChars, trunc);
}
} else {
}
} else {