From f2ad6169c8936cf3168afac49b0db1d6bafe28f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Spitzm=C3=BCller?= Date: Tue, 28 Mar 2006 14:14:50 +0000 Subject: [PATCH] src/insets/insettabular (doDispatch, insertAsciiString): fix insertion of \t- and \n-separated content from external clipboard (bug 2394) git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_4_X@13519 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/insets/ChangeLog | 6 ++++++ src/insets/insettabular.C | 12 ++++++++---- status.14x | 2 ++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/insets/ChangeLog b/src/insets/ChangeLog index 8b58b61d7d..f094def217 100644 --- a/src/insets/ChangeLog +++ b/src/insets/ChangeLog @@ -1,3 +1,9 @@ +2006-03-11 Jürgen Spitzmüller + + *insettabular (doDispatch, insertAsciiString): + fix insertion of \t- and \n-separated content from external + clipboard (bug 2394). + 2006-03-23 Lars Gullik Bjønnes * insettext.h: get forward declaration of ParagraphList diff --git a/src/insets/insettabular.C b/src/insets/insettabular.C index bc8eb65d2f..af9ee9ffea 100644 --- a/src/insets/insettabular.C +++ b/src/insets/insettabular.C @@ -46,6 +46,7 @@ #include #include +using lyx::cap::dirtyTabularStack; using lyx::cap::tabularStackDirty; using lyx::graphics::PreviewLoader; @@ -467,10 +468,8 @@ void InsetTabular::doDispatch(LCursor & cur, FuncRequest & cmd) } if (cmd.button() == mouse_button::button2) { - // FIXME: pasting multiple cells (with insettabular's own - // LFUN_PASTESELECTION still does not work! (jspitzm) cmd = FuncRequest(LFUN_PASTESELECTION, "paragraph"); - cell(cur.idx())->dispatch(cur, cmd); + doDispatch(cur, cmd); break; } @@ -726,11 +725,15 @@ void InsetTabular::doDispatch(LCursor & cur, FuncRequest & cmd) if (cell < cells && op < len) paste_tabular->getCellInset(cell)-> setText(clip.substr(op, len - op), font); - } else if (!insertAsciiString(cur.bv(), clip, true)) { + dirtyTabularStack(true); + } else if (insertAsciiString(cur.bv(), clip, false)) + break; + else { // so that the clipboard is used and it goes on // to default // and executes LFUN_PASTESELECTION in insettext! paste_tabular.reset(); + dirtyTabularStack(false); } // fall through } @@ -1885,6 +1888,7 @@ bool InsetTabular::insertAsciiString(BufferView & bv, string const & buf, new LyXTabular(bv.buffer()->params(), rows, maxCols, &bv)); loctab = paste_tabular.get(); cols = 0; + dirtyTabularStack(true); } else { loctab = &tabular; cell = bv.cursor().idx(); diff --git a/status.14x b/status.14x index ef1fb7fd79..c7c84ae5bb 100644 --- a/status.14x +++ b/status.14x @@ -94,6 +94,8 @@ What's new - Fix copy and paste for multiple cells (bug 2377). +- Fix insertion of external multi-cell material into tabulars (bug 2394). + - Fix drawing of inset buttons (bug 2328) - Small optimizations in the way the Qt frontend updates the screen,