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

Attachment: pgpyQQ54mU6Lz.pgp
Description: PGP signature

Reply via email to