]> git.lyx.org Git - lyx.git/blobdiff - src/BufferView_pimpl.C
forgot this
[lyx.git] / src / BufferView_pimpl.C
index 18c7167bd996912986a9532c35317e10a589dd9b..cad89d3fdfa8eb378a486ab21bfb3e2765d858b1 100644 (file)
@@ -412,7 +412,7 @@ void BufferView::Pimpl::updateScrollbar()
 
        lyxerr[Debug::GUI] << "text_height now " << text_height << endl;
        lyxerr[Debug::GUI] << "work_height " << work_height << endl;
+
        /* If the text is smaller than the working area, the scrollbar
         * maximum must be the working area height. No scrolling will
         * be possible */
@@ -435,7 +435,7 @@ void BufferView::Pimpl::updateScrollbar()
 void BufferView::Pimpl::scrollCB(double value)
 {
        lyxerr[Debug::GUI] << "scrollCB of " << value << endl;
+
        if (!buffer_) return;
 
        current_scrollbar_value = long(value);
@@ -608,6 +608,8 @@ void BufferView::Pimpl::workAreaButtonPress(int xpos, int ypos,
                paste_internally = true;
        }
 
+       int const screen_first = bv_->text->first_y;
+
        if (bv_->theLockingInset()) {
                // We are in inset locking mode
 
@@ -626,8 +628,6 @@ void BufferView::Pimpl::workAreaButtonPress(int xpos, int ypos,
                selection_possible = true;
        screen_->hideCursor();
 
-       int const screen_first = bv_->text->first_y;
-
        // Clear the selection
        screen_->toggleSelection(bv_->text, bv_);
        bv_->text->clearSelection();
@@ -642,12 +642,16 @@ void BufferView::Pimpl::workAreaButtonPress(int xpos, int ypos,
                selection_possible = false;
                owner_->updateLayoutChoice();
                owner_->message(inset->editMessage());
-               // IMO the inset has to be first in edit-mode and then we send the
-               // button press. (Jug 20020222)
-               inset->edit(bv_); //, xpos, ypos, button);
+               //inset->edit(bv_, xpos, ypos, button);
+               // We just have to lock the inset before calling a PressEvent on it!
+               // we don't need the edit() call here! (Jug20020329)
+               if (!bv_->lockInset(inset)) {
+                       lyxerr[Debug::INSETS] << "Cannot lock inset" << endl;
+               }
                inset->insetButtonPress(bv_, xpos, ypos, button);
                return;
        }
+       // I'm not sure we should continue here if we hit an inset (Jug20020403)
 
        // Right click on a footnote flag opens float menu
        if (button == 3) {
@@ -875,6 +879,10 @@ void BufferView::Pimpl::workAreaButtonRelease(int x, int y,
                        inset->insetButtonRelease(bv_, x, y, button);
                } else {
                        inset_hit->insetButtonRelease(bv_, x, y, button);
+                       // IMO this is a grosshack! Inset's should be changed so that
+                       // they call the actions they have to do with the insetButtonRel.
+                       // function and not in the edit(). This should be changed
+                       // (Jug 20020329)
                        inset_hit->edit(bv_, x, y, button);
                }
                return;