The 100% cpu problem is still there and the culprit turns out to be r35795.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36231 a592a061-630c-0410-9148-cb99ea01b6c8
Before, LyX could crash when calling setBusy(false) while LyX is still in a busy state due to a surrounding setBusy(true)/setBusy(false) construction.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36140 a592a061-630c-0410-9148-cb99ea01b6c8
#6884.
1. Open LyX. File>New. Document>Outline, to make sure the TOC is open.
That isn't necessary, but it helps you to see what is happening.
2. Create a section heading (alt-P, 2) with an x in it.
3. Split the screen.
4. File>New. You should now still see the TOC for the OLD buffer.
5. Click in the top screen. You now see an empty TOC (the one for the
empty buffer).
6. Click in the empty buffer. Other TOC!
7. Back to the "x" buffer. Empty TOC. Type something. Boom!
The problem is that teh setCurrentWorkArea() call eventually gets us to
structureChanged(), which accesses documentBufferView(). But that
doesn't get reset until later, and hence everything is out of sync.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35999 a592a061-630c-0410-9148-cb99ea01b6c8
This is why it was worth doing the updateBuffer() rewrite.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35975 a592a061-630c-0410-9148-cb99ea01b6c8
GuiView::loadDocument also already calls setBuffer(), so this is not needed everytime too.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35917 a592a061-630c-0410-9148-cb99ea01b6c8
Besides, now we can always call GuiView::reloadBuffer instead of calling Buffer::reload directly. This means we don't have to do the error handling each time over and over again.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35916 a592a061-630c-0410-9148-cb99ea01b6c8
Buffer::errors("Parse") is called 7 times in the whole project. 4 times from GuiView and three times from functions in other classes, but which are (almost) only called from the GuiView.
Buffer::errors is used to signal the GUI that there might be an error occuring, but what sense does it make if it is only called from the Gui ?
Isn't it better to let the function return wether it succeeded or not and let the GuiView take action in doing something with the possible errors.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35911 a592a061-630c-0410-9148-cb99ea01b6c8
argument from that function. We are always saving the checksum for the
Buffer's file. The argument is a left-over from a time when we did the
wrong thing and saved it for e.g. the emergency file.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35890 a592a061-630c-0410-9148-cb99ea01b6c8
A hidden document does not have an associated Cursor. So, each time we create a new workArea, we should restore the cursor position.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35811 a592a061-630c-0410-9148-cb99ea01b6c8
- move a comment back from to GuiApplication to GuiView.cpp, so we have the comment in the place where we decide to process the func request asynchronously;
- rename dispatchDelayed to processFuncRequestAsync to have the same terminology as in the other processFuncRequest* methods;
- introduce a new function processFuncRequest to complete the set of processFuncRequest* methods. It is strange that for the normal processFuncRequest one should suddenly use lyx::dispatch. Besides, I think it is good that the whole GUI will dispatch funcRequests through GuiApplication::processFuncRequest from now on;
- use the slotProcessFuncRequestQueue to relay to processFuncRequestQueue;
- properly camelBump addToFuncRequestQueue;
- group the implementation of the processFuncRequest* functions;
- document the side-effect of processFuncRequestAsync.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35784 a592a061-630c-0410-9148-cb99ea01b6c8
exportAndDestroy was calling:
buffer->doExport(format, true, update_unincluded);
where "true" means: Leave it in the tempdir. We need false, which means
we need another parameter, if we're not doing it as cut and paste.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35717 a592a061-630c-0410-9148-cb99ea01b6c8
exportAndDestroy was calling:
buffer->doExport(format, true, update_unincluded);
where "true" means: Leave it in the tempdir. We need false, which means
we need another parameter, if we're not doing it as cut and paste.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35715 a592a061-630c-0410-9148-cb99ea01b6c8
P.S. How do we prevent other cases like this? By throwing exceptions, we never know whether it's assured that we will return to the function to call setBusy(false). In JAVA you always have to either make a function throwable or to catch the exception, but AFAICS you have to crawl through the code to find out whether a function can throw an exception.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35714 a592a061-630c-0410-9148-cb99ea01b6c8
We have to copy the files because export is asynchronous now,
What about the children?
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35703 a592a061-630c-0410-9148-cb99ea01b6c8
Make it possible to suppress messages stored in DispatchResult objects.
BUG: 6417
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35662 a592a061-630c-0410-9148-cb99ea01b6c8
DispatchResult to store a flag that tells us whether we need a buffer
update or not.
So: If you find a missing one, go to an appropriate place in the
dispatch and call cur.forceBufferUpdate() or, if you don't have a cursor
but do have a DispatchResult, call dr.forceBufferUpdate().
There is one remaining call I could not move, in
TextMetrics::redoParagraph. But this looks like an emergency call when
the macro context has not been set. There are also a couple calls that
are connected with buffer creation that I commented out, since the same
call is done again almost immediately. But I'm not positive about those.
Now the nice thing would be to do the same for updateMacros().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34826 a592a061-630c-0410-9148-cb99ea01b6c8
- buffer-switch does open tabs even when open in tabs is disabled;
- buffer-switch open the document in a new tab even if it is already opened in another view.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34618 a592a061-630c-0410-9148-cb99ea01b6c8
If the document class is not available, we now issue a warning for the user. This triggers a focusInEvent of the WorkArea and the cursor is issued to start blinking. However, when reverting a document the cursor is probably invalid and there has been no chance yet to fix it as we are still reading the file.
The solution is to not show the cursor when the view is still busy.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34590 a592a061-630c-0410-9148-cb99ea01b6c8
The dialog only offers symbols defined in the unicodesymbols file
and they will be wrapped in \text{} when inserted in math mode,
so there is no risk that an untypesettable symbol gets inserted.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34344 a592a061-630c-0410-9148-cb99ea01b6c8
due to a missing buffer and because the "dialog is only useful in texted".
The problem with the buffer member has been solved since then, and while
it is true that the character dialog is not much useful in mathed, it
is the only way for coloring only parts of equations. Given that this
would also be a regression with respect to 1.6, I am re-enabling it.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34327 a592a061-630c-0410-9148-cb99ea01b6c8
getStatus() returns false for LFUN_BUFFER_VIEW when a previewing process is running. So, if this process has finished we should free the menu item.
P.S. on windows, the item does not get disabled anyway.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34324 a592a061-630c-0410-9148-cb99ea01b6c8
M-o now switches to the TOC pane, and Esc always returns from any DockView to the main window.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34293 a592a061-630c-0410-9148-cb99ea01b6c8
- First, the comment for isBufferDependent is corrected. It seems that the actual use of this function differs from the comment. As the comment said, I decided to close all dialogs that were buffer dependent, but this didn't seem to be correct for the view source pan, the outliner, and find-and-replace.
- Second, the dialogs that are buffer dependent are now closed, but dockviews are not, except for the spellchecker pane, which really depends on an open buffer, but I can't test that.
So, please test whether the spellchecker dockviewed window behaves as one expects.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34291 a592a061-630c-0410-9148-cb99ea01b6c8
Solution: don't use boost::shared_ptr for msvc10 (could also be extended to several GCC versions)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34259 a592a061-630c-0410-9148-cb99ea01b6c8
Solution: don't use boost::bind for msvc10 (could also be extended to several GCC versions)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34257 a592a061-630c-0410-9148-cb99ea01b6c8
both dvi and pdf, let's allow switching forward search from one format
to the other through a timestamp check, such that the most recent
generated format will be used.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34200 a592a061-630c-0410-9148-cb99ea01b6c8
No viewer set by default, which keeps context menu clean for uninterested users.
Settings are hinted at combobox.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34149 a592a061-630c-0410-9148-cb99ea01b6c8
If a dvi file exists in the temp dir, the command specified by the
\forward_search_dvi rc setting is used to initiate the search.
Otherwise, if a pdf file exists, the forward search is performed by
using the command specified by the \forward_search_pdf rc setting.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34148 a592a061-630c-0410-9148-cb99ea01b6c8
the included insets and make sure that the files they reference are
still where they are supposed to be.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33686 a592a061-630c-0410-9148-cb99ea01b6c8
- proper message passing for all tabular features
- properly define which feature needs an argument
* replace LFUN_TABULAR_FEATURE with LFUN_INSET_MODIFY
- The math tables are also affected. In the future a common base class
between math and text table will solve this inconsistency.
- There is a hack in GuiApplication in order to not rename the toolbar
icons. This will have to be cleaned up with a general icon naming for
LFUN_INSET_MODIFY... to be discussed.
* Tabular Dialog:
- big cleanup, lots and lots of bug fixing here
- migrated to InsetParamsWidget
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33495 a592a061-630c-0410-9148-cb99ea01b6c8
This new attempt replace the previous attempt with InsetDialog which was still too tight with the older framework.
Status:
float, ert, box, info: migrated
vspace: migrated but buggy. To be fixed later.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33480 a592a061-630c-0410-9148-cb99ea01b6c8
We probably need to enhance comparison API for external calls.
Closing the party for today.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33449 a592a061-630c-0410-9148-cb99ea01b6c8
a lot of simplification is possible. Except some instability period...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33389 a592a061-630c-0410-9148-cb99ea01b6c8
(Pavel, what was "FuncRequest fr(LFUN_INSET_INSERT, "fullscreen")" supposed to mean ?).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33279 a592a061-630c-0410-9148-cb99ea01b6c8
- use tabbed dock area for multiple docks (such as "source" and "messages")
by default (requires Qt 4.3).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33254 a592a061-630c-0410-9148-cb99ea01b6c8
It seems to be a good idea to close all buffer-dependent dialogs when there are no more buffers open. This gives the user no opportunity to call buffer-related functions and cause a crash.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33015 a592a061-630c-0410-9148-cb99ea01b6c8
page numbering and the references of the master file are maintained in the included children (bug 1005).
I made this optional since some people use \includeonly to save compilation time, but a proper aux file update
needs a full compilation of the complete master prior to the compilation of the \includeonly master.
Hence, a new buffer param is introduced (file format change).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32936 a592a061-630c-0410-9148-cb99ea01b6c8
This fixes bug #6314: reloading master document makes emergencies of modified children.
Now also the version control handling could be moved to Buffer as well, and the hack in ensureBufferClean is removed.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32875 a592a061-630c-0410-9148-cb99ea01b6c8
(e.g., while entering text to find in the F&R WA, window title keeps
showing the filename of the document where matches are searched for).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32858 a592a061-630c-0410-9148-cb99ea01b6c8
- Remove progress view because ATM we don't have to show anything usefull.
- move Alert:: void functions into GUI thread
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32604 a592a061-630c-0410-9148-cb99ea01b6c8
Buffer::Impl::inset was set in the ctor Buffer::Impl::Impl to be a clone. However, in the Buffer::Buffer ctor the inset was set again, now to a new and empty InsetText.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32589 a592a061-630c-0410-9148-cb99ea01b6c8
Two things are missing (but are fixable):
- the lack of feedback of the background latex compilation
- the error list is not shown in case of compilation error.
* Buffer:
- create a "cloned buffer" type.
- Transfer LFUN_MASTER_BUFFER_UPDATE, LFUN_MASTER_BUFFER_VIEW, LFUN_BUFFER_UPDATE and LFUN_BUFFER_VIEW to GuiView. This is good itself as these LFUN are GUI oriented.
* GuiView: detach the above LFUNs to a new thread as was already done for autosave.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32584 a592a061-630c-0410-9148-cb99ea01b6c8
* Buffer: new clone() method. When this new autosave method is used the old autoSave() is not of course.
* GuiView: clone the current document buffer and save it in a new thread.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32512 a592a061-630c-0410-9148-cb99ea01b6c8
This could be called regularly for usage with other programs too,
but I have no idea where. Dispatch is no good idea for performance reasons.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32179 a592a061-630c-0410-9148-cb99ea01b6c8
- the prefix can now be supplied,
- there can be more types of unnamed files,
- the code is made more concise,
- templatefile parameter is made optional,
- "newfile" is made translatable.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31704 a592a061-630c-0410-9148-cb99ea01b6c8
- make sure a child is re-allocated to its master after reloading (bug 6233).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31510 a592a061-630c-0410-9148-cb99ea01b6c8
The list of dialog edited inset is now stored in BufferView.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31472 a592a061-630c-0410-9148-cb99ea01b6c8
* Add a recenter() call to BufferView::setCursorFromRow() in order to get the screen centered around the found position.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31455 a592a061-630c-0410-9148-cb99ea01b6c8
I tested this on Windows and Linux/X11 but not on Mac so...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31451 a592a061-630c-0410-9148-cb99ea01b6c8
This commit also move the Selection saving to QEvent::WindowActivate in GuiView.cpp.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31443 a592a061-630c-0410-9148-cb99ea01b6c8
* GuiView:openChildDocument(): New helper method, I removed the comment about bug 3970 because it doesn't apply anymore with this change.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31409 a592a061-630c-0410-9148-cb99ea01b6c8
There is a FIXME in there that says that if some LFUN need to be dispatched even if the Buffer is internal then we should add some code. But I couldn't find any for now.
* Move LFUN_BUFFER_IMPORT status to GuiView where it belongs.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31398 a592a061-630c-0410-9148-cb99ea01b6c8
Fixes crash when opening both Toc Panel and Advanced Find and Replace Panel.
Fixes preview of document (as opposed of previewing the search/replace text) while search/replace WorkArea selected.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31203 a592a061-630c-0410-9148-cb99ea01b6c8
Maybe this parameter should be killed after last cleanup Vicent?
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31177 a592a061-630c-0410-9148-cb99ea01b6c8
The previous fix was nonsense. It appeared to be a shameful copy-paste error. GuiView::disconnectBufferView() was exactly the same as GuiView::disconnectBuffer().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31150 a592a061-630c-0410-9148-cb99ea01b6c8
We don't want a master buffer to release all its children immediately because that would close dirty childs without saving and would make it impossible to store the childs in a proper way in the session file.
As, we close all children of a buffer together with the master itself, it is also no longer necessary to do it automatically.
I'll leave it commented out for a while in case someone objects to it.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31130 a592a061-630c-0410-9148-cb99ea01b6c8
For now, I stick to the convention that closing a buffer, will close it in all tabworkareas and all views. Therefore, when choosing File->Close All, we still close all buffers.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31126 a592a061-630c-0410-9148-cb99ea01b6c8
Closing a tab group will now hide the buffers, but if buffers are dirty it will first ask you to save it.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31124 a592a061-630c-0410-9148-cb99ea01b6c8
This fixes yet another bug. Previously, when a master was closed, its child buffers were also released without asking to save dirty buffers. (What a mess!).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31104 a592a061-630c-0410-9148-cb99ea01b6c8
Besides that, this can also been seen in 1.6.3. If you have a master and a dirty child, and the dirty child is the second tab, you'll see that when closing LyX, LyX will ask twice whether you want to save the file. Once if the file itself is closed, a second time if the master is closing all his children.
See also the previous commit that treats the case in which the tabs were switched around.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31074 a592a061-630c-0410-9148-cb99ea01b6c8
Now we can also pass the WorkArea we would like to close. This fixes also the problem that hideWorkArea still wasn't correct. That's a consequence of the fact that we relied on currentMainWorkArea(). I wanted to get rid of that anyway.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31063 a592a061-630c-0410-9148-cb99ea01b6c8
Use this function in closeBufferAll, and use closeBuffer to hide the buffer. Now, closeBuffer will decide whether we need to save the buffer or not. Previously, the buffer got hidden even if it was dirty.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31059 a592a061-630c-0410-9148-cb99ea01b6c8
In setCurrentWorkArea d.current_work_area_ is used which is invalidated by deleting the TabWorkArea.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31054 a592a061-630c-0410-9148-cb99ea01b6c8
The problem is that all toolbars are deleted and thus also the LayoutBox, which I made a member of GuiView.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31051 a592a061-630c-0410-9148-cb99ea01b6c8
Now, the option "Hide Tab" uses closeBuffer and asks for saving intead of instantly removing the workArea.
This is part of bug #5893: we try to make sure that there are no dirty hidden buffers.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31043 a592a061-630c-0410-9148-cb99ea01b6c8
Now disable the menuitem when there is only 1 visible buffer.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30890 a592a061-630c-0410-9148-cb99ea01b6c8
The situation now is almost good, although preference and about LyX are now disabled.
I moved the code that sets buffer to 0 to LyXFunc::getStatus, where it belongs.
I also set lyx_view_ to 0 when the window does not have focus.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30557 a592a061-630c-0410-9148-cb99ea01b6c8
In this case, all workareas are closed, but the tabworkarea still exists.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30521 a592a061-630c-0410-9148-cb99ea01b6c8
When one document has a split view, closing this document will close two splitters at a time.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30416 a592a061-630c-0410-9148-cb99ea01b6c8
Navigating in such dialogs does not work yet, but at least the user is informed
at all that LaTeX wasn't succesful.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30209 a592a061-630c-0410-9148-cb99ea01b6c8
This way we get rid of pop-uping of widgets when ~/.config/LyX is re-created
and yet we still have title and enabling status correct when widgets are
restored from session.
Some details in bug #5082.
This is candidate for branch too.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30144 a592a061-630c-0410-9148-cb99ea01b6c8
We should of course clear the list before closing each of the views. Otherwise, the second view will remove the files from the first view from the list.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29596 a592a061-630c-0410-9148-cb99ea01b6c8
A bool is added to the entry of a last opened file in the Session file. This bool, indicates whether the file was the last one being edited.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29546 a592a061-630c-0410-9148-cb99ea01b6c8
Now, the tabs are closed in reverse order, which is aesthetically better. Consequently, we have to open the files (read from the session file) also in reverse order.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29539 a592a061-630c-0410-9148-cb99ea01b6c8
Now menu works smoothly in fullscreen under linux too
http://www.lyx.org/trac/ticket/4888
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29527 a592a061-630c-0410-9148-cb99ea01b6c8
* TocWidget: add context menu to toc.
* Menus: specify origin of cmd.
* GuiView: if cmd coming from toc, dispatch to GuiToc.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29155 a592a061-630c-0410-9148-cb99ea01b6c8
filename in a different way, we need to make sure we always do it the same
way. Makes more sense to do this in Buffer anyway.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29073 a592a061-630c-0410-9148-cb99ea01b6c8
* Buffer.{cpp, h}:
- new method getChildren() that returns included (and sub-included) files
* GuiView.cpp (closeEvent):
- do not just close dirty child documents.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28712 a592a061-630c-0410-9148-cb99ea01b6c8
- LyXAction.cpp: updates and sorting
- GuiPhantom: a dialog to set the different phantom types (stolen from GuiNote)
The Phantom feature should now be complete. Thanks to all who contributed and helped.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28364 a592a061-630c-0410-9148-cb99ea01b6c8