*** Frame.c.orig Fri Feb 3 17:49:56 1995 --- Frame.c Wed Mar 29 16:18:32 1995 *************** *** 455,461 **** LayoutStack *stack; int path, reverse; { ! int separation; int frame_size[2], padding[2]; int b_left, b_right, b_leading, b_trailing; XeFrameDimension dimension[2]; --- 455,461 ---- LayoutStack *stack; int path, reverse; { ! int separation, room; int frame_size[2], padding[2]; int b_left, b_right, b_leading, b_trailing; XeFrameDimension dimension[2]; *************** *** 549,558 **** padding[1-path] = stack->info->b_left /* Frame left border */ + stack->info->b_right /* Frame right border */ + child->left + child->right; /* Child left/right offsets */ ! if (frame_size[1-path] > 0 && (dimension[1-path].value == 0 || ! dimension[1-path].value > ! (frame_size[1-path] - padding[1-path]))) ! dimension[1-path].value = frame_size[1-path] - padding[1-path]; /* ** Allow one child to act like rubber in layout path direction. Mark ** this child for later re-evaluation. --- 549,558 ---- padding[1-path] = stack->info->b_left /* Frame left border */ + stack->info->b_right /* Frame right border */ + child->left + child->right; /* Child left/right offsets */ ! room = frame_size[1-path] - padding[1-path]; ! if (room > 0 && ! (dimension[1-path].value == 0 || dimension[1-path].value > room)) ! dimension[1-path].value = room; /* ** Allow one child to act like rubber in layout path direction. Mark ** this child for later re-evaluation. *************** *** 570,582 **** ** alone can exceed the fixed dimension in layout path direction). ** --msa */ ! if (frame_size[1-path] > 0 && dimension[1-path].value > ! (frame_size[1-path] - padding[1-path])) ! dimension[1-path].value = frame_size[1-path] - padding[1-path]; padding[path] = child->trailing + child->leading; ! if (frame_size[path] > padding[path] && dimension[path].value > ! (frame_size[path] - padding[path])) ! dimension[path].value = frame_size[path] - padding[path]; /* ** Further limit dimensions between (min,max) if dimension is not ** explicitly specified, and if min,max have been specified. --- 570,582 ---- ** alone can exceed the fixed dimension in layout path direction). ** --msa */ ! room = frame_size[1-path] - padding[1-path]; ! if (room > 0 && dimension[1-path].value > room) ! dimension[1-path].value = room; padding[path] = child->trailing + child->leading; ! room = frame_size[path] - padding[path]; ! if (room > 0 && dimension[path].value > room) ! dimension[path].value = room; /* ** Further limit dimensions between (min,max) if dimension is not ** explicitly specified, and if min,max have been specified. *** TextEd.c.orig Tue Mar 7 15:32:12 1995 --- TextEd.c Tue Apr 4 13:30:38 1995 *************** *** 3023,3028 **** --- 3023,3031 ---- switch (mode) { case XeSelectionStart: + #ifdef USING_MOTIF_122 + XmProcessTraversal((Widget)t, XmTRAVERSE_CURRENT); + #endif XeTextUnsetSelection((Widget)t); t->texted.regions[0].range[0] = t->texted.regions[0].range[1] = position; *************** *** 3920,3925 **** --- 3923,3949 ---- _XeTextFeedContent(t->text.inserting, value, length); _XeTextLock(t->text.inserting, TRUE); } + _XeTextChangeMode(t->text.inserting, amount); + EndEditing(t, 0); + } + + void XeTextChangeModeAndTag(w, value, length, amount, tag) + Widget w; + char *value; + long length; + long amount; + XeTextTag tag; + { + XeTextEdWidget t = (XeTextEdWidget)w; + if (!IsTextEdWidget(w)) + return; + if (!StartEditing(t, XeTextInsertMode_CURRENT, (XEvent *)NULL)) + return; + _XeTextLock(t->text.inserting, FALSE); + _XeTextSetTag(t->text.inserting, tag); + if (length > 0 && value) + _XeTextFeedContent(t->text.inserting, value, length); + _XeTextLock(t->text.inserting, TRUE); _XeTextChangeMode(t->text.inserting, amount); EndEditing(t, 0); } *** TextEd.h.orig Tue Mar 7 12:33:33 1995 --- TextEd.h Tue Mar 21 18:47:46 1995 *************** *** 209,214 **** --- 209,225 ---- #endif ); + void XeTextChangeModeAndTag + ( + #if NeedFunctionPrototypes + Widget, /* TextEd Widget pointer */ + char *, /* Pointer to octets to be inserted (modes) */ + long, /* Number of octets to insert */ + long, /* Number of characters to modify after insert */ + XeTextTag /* New tag to be changed */ + #endif + ); + void XeTextReplaceTagged ( #if NeedFunctionPrototypes *** TextImport.c.orig Tue Mar 7 16:55:30 1995 --- TextImport.c Wed Mar 22 17:45:21 1995 *************** *** 2576,2582 **** t->mode.bits &= ~cx->lock.bits; t->mode.bits |= cx->lock.bits & cx->mode.bits; if (cx->lock.tag) ! t->mode.tag = cx->lock.tag; if (cx->lock.size_modification) t->mode.size_modification = cx->mode.size_modification; new_font = FontSelectInfo(t->mode); --- 2576,2582 ---- t->mode.bits &= ~cx->lock.bits; t->mode.bits |= cx->lock.bits & cx->mode.bits; if (cx->lock.tag) ! t->mode.tag = cx->mode.tag; if (cx->lock.size_modification) t->mode.size_modification = cx->mode.size_modification; new_font = FontSelectInfo(t->mode); *************** *** 2782,2787 **** --- 2782,2789 ---- { XeTextTag old = cx->mode.tag; cx->mode.tag = tag; + if (!cx->locked) + cx->lock.tag = (XeTextTag)~0; return old; } /*