]> git.lyx.org Git - lyx.git/blobdiff - src/text3.C
Fix bug 2485 and crash on middle mouse paste on math
[lyx.git] / src / text3.C
index 2c51c5153e705f3126d60df57413b03c08a4d5d1..fadfb888f581d3f96d65f0c6b273c430529dae69 100644 (file)
@@ -81,6 +81,7 @@ using lyx::support::token;
 using std::endl;
 using std::string;
 using std::istringstream;
+using std::ostringstream;
 
 
 extern string current_layout;
@@ -1107,6 +1108,21 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                bv->switchKeyMap();
                bv->owner()->updateMenubar();
                bv->owner()->updateToolbars();
+
+               // if view-source dialog is visible, send source code of selected
+               // text to the dialog
+               if (cmd.button() == mouse_button::button1 && cur.selection() 
+                       && bv->owner()->getDialogs().visible("view-source")) {
+                       // get *top* level paragraphs that contain the selection
+                       lyx::pit_type par_begin = bv->cursor().selectionBegin().bottom().pit();
+                       lyx::pit_type par_end = bv->cursor().selectionEnd().bottom().pit();
+                       if (par_begin > par_end)
+                               std::swap(par_begin, par_end);
+                       ostringstream ostr;
+                       bv->buffer()->getSourceCode(ostr, par_begin, par_end + 1);
+                       // display the dialog and show source code
+                       bv->owner()->getDialogs().update("view-source", ostr.str());
+               }
                break;
        }