]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiWorkArea.cpp
* fix spelling in comments to please John.
[lyx.git] / src / frontends / qt4 / GuiWorkArea.cpp
index f79ece39df4196e1be2468789c6b80559bf27548..dde2d710cae292ed2cb0cdf1aa14b75d2f8dc220 100644 (file)
@@ -246,7 +246,7 @@ GuiWorkArea::GuiWorkArea(QWidget *)
 
 
 GuiWorkArea::GuiWorkArea(Buffer & buffer, GuiView & gv)
-       : buffer_view_(0), lyx_view_(0),
+       : buffer_view_(0), read_only_(buffer.isReadonly()), lyx_view_(0),
        cursor_visible_(false),
        need_resize_(false), schedule_redraw_(false),
        preedit_lines_(1), completer_(new GuiCompleter(this, this)),
@@ -440,6 +440,8 @@ void GuiWorkArea::redraw(bool update_metrics)
 
        if (lyxerr.debugging(Debug::WORKAREA))
                buffer_view_->coordCache().dump();
+
+       setReadOnly(buffer_view_->buffer().isReadonly());
 }
 
 
@@ -464,7 +466,8 @@ void GuiWorkArea::dispatch(FuncRequest const & cmd0, KeyModifier mod)
 {
        // Handle drag&drop
        if (cmd0.action == LFUN_FILE_OPEN) {
-               lyx_view_->dispatch(cmd0);
+               DispatchResult dr;
+               lyx_view_->dispatch(cmd0, dr);
                return;
        }
 
@@ -698,14 +701,7 @@ void GuiWorkArea::contextMenuEvent(QContextMenuEvent * e)
 
 void GuiWorkArea::focusInEvent(QFocusEvent * e)
 {
-       /*
-       LYXERR(Debug::DEBUG, "GuiWorkArea::focusInEvent(): " << this << std::endl);
-       GuiWorkArea * old_gwa = theGuiApp()->currentView()->currentWorkArea();
-       if (old_gwa)
-               old_gwa->stopBlinkingCursor();
-       lyx_view_->setCurrentWorkArea(this);
-       */
-
+       LYXERR(Debug::DEBUG, "GuiWorkArea::focusInEvent(): " << this << endl);
        if (lyx_view_->currentWorkArea() != this)
                lyx_view_->setCurrentWorkArea(this);
 
@@ -716,7 +712,7 @@ void GuiWorkArea::focusInEvent(QFocusEvent * e)
 
 void GuiWorkArea::focusOutEvent(QFocusEvent * e)
 {
-       LYXERR(Debug::DEBUG, "GuiWorkArea::focusOutEvent(): " << this << std::endl);
+       LYXERR(Debug::DEBUG, "GuiWorkArea::focusOutEvent(): " << this << endl);
        stopBlinkingCursor();
        QAbstractScrollArea::focusOutEvent(e);
 }
@@ -1220,8 +1216,11 @@ void GuiWorkArea::updateWindowTitle()
 }
 
 
-void GuiWorkArea::setReadOnly(bool)
+void GuiWorkArea::setReadOnly(bool read_only)
 {
+       if (read_only_ == read_only)
+               return;
+       read_only_ = read_only;
        updateWindowTitle();
        if (this == lyx_view_->currentWorkArea())
                lyx_view_->updateDialogs();