]> git.lyx.org Git - lyx.git/commitdiff
revert previous commit, it did not compile of course...
authorAbdelrazak Younes <younes@lyx.org>
Sat, 4 Dec 2010 22:19:53 +0000 (22:19 +0000)
committerAbdelrazak Younes <younes@lyx.org>
Sat, 4 Dec 2010 22:19:53 +0000 (22:19 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36723 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/GuiApplication.cpp

index 9fbdb6d49c212dcd08aea6214fa192c60f4d7b71..4656e63a69f5855ce8593e043a099075055a19ab 100644 (file)
@@ -1605,91 +1605,90 @@ void GuiApplication::dispatch(FuncRequest const & cmd, DispatchResult & dr)
 
        default:
                // Everything below is only for active window
-               if (current_view_)
+               if (current_view_ == 0)
                        break;
-               return;
-       }
-
-       // Let the current GuiView dispatch its own actions.
-       current_view_->dispatch(cmd, dr);
-
-       if (dr.dispatched())
-               break;
-
-       BufferView * bv = current_view_->currentBufferView();
-       LASSERT(bv, /**/);
-
-       // Avoid a screen redraw in the middle of a dispatch operation just
-       // because a warning or an error was displayed.
-       current_view_->setBusy(true);
-
-       // Let the current BufferView dispatch its own actions.
-       bv->dispatch(cmd, dr);
-       if (dr.dispatched())
-               break;
+       
+               // Let the current GuiView dispatch its own actions.
+               current_view_->dispatch(cmd, dr);
 
-       BufferView * doc_bv = current_view_->documentBufferView();
-       // Try with the document BufferView dispatch if any.
-       if (doc_bv) {
-               doc_bv->dispatch(cmd, dr);
                if (dr.dispatched())
                        break;
-       }
 
-       // OK, so try the current Buffer itself...
-       bv->buffer().dispatch(cmd, dr);
-       if (dr.dispatched())
-               break;
+               BufferView * bv = current_view_->currentBufferView();
+               LASSERT(bv, /**/);
+       
+               // Avoid a screen redraw in the middle of a dispatch operation just
+               // because a warning or an error was displayed.
+               current_view_->setBusy(true);
 
-       // and with the document Buffer.
-       if (doc_bv) {
-               doc_bv->buffer().dispatch(cmd, dr);
+               // Let the current BufferView dispatch its own actions.
+               bv->dispatch(cmd, dr);
                if (dr.dispatched())
                        break;
-       }
-
-       // Let the current Cursor dispatch its own actions.
-       Cursor old = bv->cursor();
-       bv->cursor().dispatch(cmd);
-
-       // notify insets we just left
-       // FIXME: move this code to Cursor::dispatch
-       if (bv->cursor() != old) {
-               old.beginUndoGroup();
-               old.fixIfBroken();
-               bool badcursor = notifyCursorLeavesOrEnters(old, bv->cursor());
-               if (badcursor) {
-                       bv->cursor().fixIfBroken();
-                       bv->fixInlineCompletionPos();
+       
+               BufferView * doc_bv = current_view_->documentBufferView();
+               // Try with the document BufferView dispatch if any.
+               if (doc_bv) {
+                       doc_bv->dispatch(cmd, dr);
+                       if (dr.dispatched())
+                               break;
                }
-               old.endUndoGroup();
-       }
-
-       // update completion. We do it here and not in
-       // processKeySym to avoid another redraw just for a
-       // changed inline completion
-       if (cmd.origin() == FuncRequest::KEYBOARD) {
-               if (cmd.action() == LFUN_SELF_INSERT
-                       || (cmd.action() == LFUN_ERT_INSERT && bv->cursor().inMathed()))
-                       current_view_->updateCompletion(bv->cursor(), true, true);
-               else if (cmd.action() == LFUN_CHAR_DELETE_BACKWARD)
-                       current_view_->updateCompletion(bv->cursor(), false, true);
-               else
-                       current_view_->updateCompletion(bv->cursor(), false, false);
-       }
-
-       dr = bv->cursor().result();
+       
+               // OK, so try the current Buffer itself...
+               bv->buffer().dispatch(cmd, dr);
+               if (dr.dispatched())
+                       break;
+       
+               // and with the document Buffer.
+               if (doc_bv) {
+                       doc_bv->buffer().dispatch(cmd, dr);
+                       if (dr.dispatched())
+                               break;
+               }
+       
+               // Let the current Cursor dispatch its own actions.
+               Cursor old = bv->cursor();
+               bv->cursor().dispatch(cmd);
+       
+               // notify insets we just left
+               // FIXME: move this code to Cursor::dispatch
+               if (bv->cursor() != old) {
+                       old.beginUndoGroup();
+                       old.fixIfBroken();
+                       bool badcursor = notifyCursorLeavesOrEnters(old, bv->cursor());
+                       if (badcursor) {
+                               bv->cursor().fixIfBroken();
+                               bv->fixInlineCompletionPos();
+                       }
+                       old.endUndoGroup();
+               }
+       
+               // update completion. We do it here and not in
+               // processKeySym to avoid another redraw just for a
+               // changed inline completion
+               if (cmd.origin() == FuncRequest::KEYBOARD) {
+                       if (cmd.action() == LFUN_SELF_INSERT
+                                       || (cmd.action() == LFUN_ERT_INSERT && bv->cursor().inMathed()))
+                               current_view_->updateCompletion(bv->cursor(), true, true);
+                       else if (cmd.action() == LFUN_CHAR_DELETE_BACKWARD)
+                               current_view_->updateCompletion(bv->cursor(), false, true);
+                       else
+                               current_view_->updateCompletion(bv->cursor(), false, false);
+               }
+       
+               dr = bv->cursor().result();
 
+               current_view_->setBusy(false);
+       }
+       
        // if we executed a mutating lfun, mark the buffer as dirty
-       Buffer * doc_buffer = (current_view_->documentBufferView())
+       Buffer * doc_buffer = (current_view_ && current_view_->documentBufferView())
                      ? &(current_view_->documentBufferView()->buffer()) : 0;
        if (doc_buffer && theBufferList().isLoaded(doc_buffer)
                && flag.enabled()
                && !lyxaction.funcHasFlag(action, LyXAction::NoBuffer)
                && !lyxaction.funcHasFlag(action, LyXAction::ReadOnly))
                current_view_->currentBufferView()->buffer().markDirty();
-
-       current_view_->setBusy(false);
 }