On Mon, Mar 14, 2005 at 03:32:28PM +0100, Juergen Spitzmueller wrote: > Martin Vermeer wrote: > > I think I know where the problem is, not how to fix it :-( > > Me too. It seems that MOUSE_MOTION moves inside nested insets despite of > > // only accept motions to places not deeper nested than the real anchor > if (bvcur.anchor_.hasPart(cur)) { > > No idea why. > > Jürgen
A bit more info: it appears the crash occurs in the drawing stage (drawSelection). I suspect that in cursor.C:351, somehow the current cursor depth() is taken from the deeper nested inset. How it got there? No idea. Here is a core dump backtrace. (Yes I know, not everything was compiled with debugging on) #0 0x008927a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0x008d1e59 in raise () from /lib/tls/libc.so.6 #2 0x008d3882 in abort () from /lib/tls/libc.so.6 #3 0x0834b2df in lyx::support::abort () at abort.C:20 #4 0x080a36a2 in boost::assertion_failed ( expr=0x83a3b08 "anchor_.depth() >= depth()", function=0x83a3da0 "CursorSlice LCursor::anchor() const", file=0x83a3a5f "cursor.C", line=351) at boost.C:56 #5 0x080d57ae in LCursor::anchor (this=0xa0220a4) at dociterator.h:87 #6 0x080d5896 in LCursor::selBegin (this=0xa0220a4) at dociterator.h:81 #7 0x0816c914 in LyXText::drawSelection () at stl_iterator.h:676 #8 0x0820c8fa in InsetText::drawSelection (this=0xa097ee0, [EMAIL PROTECTED], x=191, y=91) at insettext.C:210 #9 0x081df646 in InsetCollapsable::drawSelection (this=0xa097ee0, [EMAIL PROTECTED], x=191, y=91) at insetcollapsable.C:201 #10 0x08153c2b in (anonymous namespace)::RowPainter::paintInset ( this=0xbfef1cd0, pos=-1074849024) at rowpainter.C:182 #11 0x081546f4 in (anonymous namespace)::RowPainter::paintFromPos ( this=0xbfef1cd0, [EMAIL PROTECTED]) at rowpainter.C:334 #12 0x08155ddf in (anonymous namespace)::RowPainter::paintText ( this=0xbfef1cd0) at rowpainter.C:715 #13 0x081562ff in (anonymous namespace)::paintPar ([EMAIL PROTECTED], [EMAIL PROTECTED], pit=0, x=128, y=102) at rowpainter.C:760 #14 0x081565b3 in paintTextInset ([EMAIL PROTECTED], [EMAIL PROTECTED], x=128, y=91) at rowpainter.C:822 #15 0x0816c731 in LyXText::draw () at stl_iterator.h:676 #16 0x0820c88f in InsetText::draw (this=0xa099a88, [EMAIL PROTECTED], x=126, y=91) at insettext.C:198 #17 0x082049ed in InsetTabular::draw (this=0xa092cb0, [EMAIL PROTECTED], x=46, y=91) at shared_ptr.hpp:298 #18 0x08153c78 in (anonymous namespace)::RowPainter::paintInset ( this=0xbfef2150, pos=-1074847872) at rowpainter.C:183 #19 0x081546f4 in (anonymous namespace)::RowPainter::paintFromPos ( this=0xbfef2150, [EMAIL PROTECTED]) at rowpainter.C:334 #20 0x08155ddf in (anonymous namespace)::RowPainter::paintText ( this=0xbfef2150) at rowpainter.C:715 #21 0x081562ff in (anonymous namespace)::paintPar ([EMAIL PROTECTED], [EMAIL PROTECTED], pit=0, x=0, y=197) at rowpainter.C:760 #22 0x081563d3 in paintText ([EMAIL PROTECTED], [EMAIL PROTECTED]) at rowpainter.C:785 #23 0x082292e7 in LyXScreen::redraw (this=0xa023e10, [EMAIL PROTECTED], [EMAIL PROTECTED]) at screen.C:227 #24 0x0806a1fe in BufferView::Pimpl::update (this=0xa021fc8, fitcursor=true, forceupdate=true) at BufferView_pimpl.C:634 #25 0x0806bf8a in BufferView::Pimpl::workAreaDispatch (this=0xa021fc8, [EMAIL PROTECTED]) at dispatchresult.h:28 #26 0x0806eb44 in boost::detail::function::void_function_obj_invoker1<boost::_bi---Type ::bind_t<bool, boost::_mfi::mf1<bool, BufferView::Pimpl, FuncRequest const&>, boost::_bi::list2<boost::_bi::value<BufferView::Pimpl*>, boost::arg<1> > >, void, FuncRequest>::invoke (function_obj_ptr= {obj_ptr = 0xa014358, const_obj_ptr = 0xa014358, func_ptr = 0xa014358, data = "X"}) at mem_fn_template.hpp:148 #27 0x08300071 in boost::function1<void, FuncRequest, std::allocator<void> >::operator() (this=0xa02495c, a0= {action = LFUN_MOUSE_MOTION, argument = {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<No data fields>}, _M_p = 0x841898c ""}, static _S_empty_rep_storage = {0, 0, 0, 0}}, origin = INTERNAL, x = 155, y = 83, button_ = button1}) at QContentPane.C:117 #28 0x082ffd84 in boost::operator++<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound1<void>::caller<FuncRequest, boost::function<void ()(FuncRequest), std::allocator<void> > >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::unusable, boost::single_pass_traversal_tag, boost::signals::detail::unusable const&, int> ([EMAIL PROTECTED]) at QWorkArea.C:229 #29 0x082ffb7d in boost::signal1<void, FuncRequest, boost::last_value<void>, int, std::less<int>, boost::function<void ()(FuncRequest), std::allocator<void> > >::operator() (this=0xa0221c4, a1= {action = 168395000, argument = {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<No data fields>}, _M_p = 0x9c4760 ""}, static _S_empty_rep_storage = {0, 0, 0, 0}}, origin = 168251720, x = -1074846088, y = 16852600 0, button_ = 10241888}) at iterator_facade.hpp:152 #30 0x0830542a in QContentPane::mouseMoveEvent (this=0xa022f10, e=0xbfef273f) at QContentPane.C:117 #31 0x033b425e in QWidget::event () from /usr/lib/qt-3.3/lib/libqt-mt.so.3 #32 0x03321cdf in QApplication::internalNotify () from /usr/lib/qt-3.3/lib/libqt-mt.so.3 #33 0x033213d4 in QApplication::notify () from /usr/lib/qt-3.3/lib/libqt-mt.so.3 #34 0x032b7a40 in QETWidget::translateMouseEvent () from /usr/lib/qt-3.3/lib/libqt-mt.so.3 #35 0x032b56cc in QApplication::x11ProcessEvent () from /usr/lib/qt-3.3/lib/libqt-mt.so.3 #36 0x032cc494 in QEventLoop::processEvents () from /usr/lib/qt-3.3/lib/libqt-mt.so.3 #37 0x03333f28 in QEventLoop::enterLoop () from /usr/lib/qt-3.3/lib/libqt-mt.so.3 #38 0x03333dd8 in QEventLoop::exec () from /usr/lib/qt-3.3/lib/libqt-mt.so.3 #39 0x03321f31 in QApplication::exec () from /usr/lib/qt-3.3/lib/libqt-mt.so.3 #40 0x0826ccb5 in lyx_gui::start ([EMAIL PROTECTED], [EMAIL PROTECTED]) at lyx_gui.C:244 #41 0x080ff8bd in LyX::priv_exec (this=0x9e8c210, [EMAIL PROTECTED], argv=0xbfef32c4) at lyx_main.C:281 #42 0x080fec51 in LyX::exec ([EMAIL PROTECTED], argv=0xbfef32c4) at scoped_ptr.hpp:93 #43 0x08062310 in main (argc=1, argv=0xbfef32c4) at main.C:47 - Martin
pgpyQQ54mU6Lz.pgp
Description: PGP signature