mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-06 09:37:31 +00:00
Tried to fix the too large InsetText (footnote).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2897 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
622e505857
commit
da7583ab70
@ -16,6 +16,7 @@ src/bufferview_funcs.C
|
||||
src/converter.C
|
||||
src/debug.C
|
||||
src/exporter.C
|
||||
src/ext_l10n.h
|
||||
src/figureForm.C
|
||||
src/figure_form.C
|
||||
src/frontends/controllers/ButtonController.h
|
||||
|
@ -1,3 +1,7 @@
|
||||
2001-10-18 Juergen Vigna <jug@sad.it>
|
||||
|
||||
* text.C (workWidth): new function with added Inset * parameter.
|
||||
|
||||
2001-10-16 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
|
||||
|
||||
* text2.C (setCursorFromCoordinates): use Paragraph::size_type
|
||||
|
@ -1,3 +1,7 @@
|
||||
2001-10-18 Juergen Vigna <jug@sad.it>
|
||||
|
||||
* inset.C (getMaxWidth): use LyXText::workWidth(BufferView, Inset *).
|
||||
|
||||
2001-10-15 José Matos <jamatos@fep.up.pt>
|
||||
|
||||
* insetert.C: allow export for docbook and linuxdoc
|
||||
|
@ -315,7 +315,7 @@ int UpdatableInset::getMaxWidth(BufferView * bv, UpdatableInset const *) const
|
||||
w = static_cast<UpdatableInset*>
|
||||
(owner())->getMaxWidth(bv, this);
|
||||
} else {
|
||||
w = bv->workWidth();
|
||||
w = bv->text->workWidth(bv, const_cast<UpdatableInset *>(this));
|
||||
}
|
||||
if (w < 0) {
|
||||
return -1;
|
||||
@ -324,14 +324,19 @@ int UpdatableInset::getMaxWidth(BufferView * bv, UpdatableInset const *) const
|
||||
if ((w - ((2 * TEXT_TO_INSET_OFFSET) + 5)) >= 0)
|
||||
w -= (2 * TEXT_TO_INSET_OFFSET) + 5;
|
||||
if (topx_set && owner()) {
|
||||
lyxerr << "topx_set && owner()\n";
|
||||
w -= top_x;
|
||||
w += owner()->x();
|
||||
} else if (!owner()) {
|
||||
}
|
||||
#if 0 // already handled above now!!!
|
||||
else if (!owner()) {
|
||||
// give some left margin this should be made better!
|
||||
// Idea: LyXText::giveLeftMargin(Inset * inset) will search the
|
||||
// inset in the text and return the LeftMargin of that row!
|
||||
lyxerr << "w -= 20\n";
|
||||
w -= 20;
|
||||
}
|
||||
#endif
|
||||
if (w < 10) {
|
||||
w = 10;
|
||||
}
|
||||
|
@ -466,6 +466,8 @@ public:
|
||||
///
|
||||
int workWidth(BufferView *) const;
|
||||
///
|
||||
int workWidth(BufferView *, Inset * inset) const;
|
||||
///
|
||||
void computeBidiTables(Buffer const *, Row * row) const;
|
||||
|
||||
/// Maps positions in the visual string to positions in logical string.
|
||||
|
35
src/text.C
35
src/text.C
@ -64,6 +64,41 @@ int LyXText::workWidth(BufferView * bview) const
|
||||
}
|
||||
|
||||
|
||||
int LyXText::workWidth(BufferView * bview, Inset * inset) const
|
||||
{
|
||||
Buffer::inset_iterator it;
|
||||
Paragraph * par = 0;
|
||||
Paragraph::size_type pos;
|
||||
|
||||
for(it=bview->buffer()->inset_iterator_begin();
|
||||
it != bview->buffer()->inset_iterator_end();
|
||||
++it)
|
||||
{
|
||||
if (*it == inset) {
|
||||
par = it.getPar();
|
||||
pos = it.getPos();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (par) {
|
||||
Row * row = firstrow;
|
||||
for(; row; row = row->next()) {
|
||||
if ((row->par() == par && row->pos() >= pos)) {
|
||||
if (!row->next())
|
||||
break;
|
||||
else if ((row->next()->par() == par) &&
|
||||
(row->next()->pos() >= pos))
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (row) {
|
||||
return workWidth(bview) - leftMargin(bview, row);
|
||||
}
|
||||
}
|
||||
return workWidth(bview);
|
||||
}
|
||||
|
||||
|
||||
int LyXText::getRealCursorX(BufferView * bview) const
|
||||
{
|
||||
int x = cursor.x();
|
||||
|
Loading…
Reference in New Issue
Block a user