Opened 10 years ago

Closed 5 years ago

#3806 closed bug (fixed)

BView with a BScrollView crashes when used as a replicant

Reported by: burton_ Owned by: axeld
Priority: normal Milestone: R1
Component: - General Version: R1/pre-alpha1
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: x86

Description

First of all sorry for my poor english, I'm Italian.

I made a simple program that shows a BView derived view with 2 child views: a BTextView and a related BScrollView. I added a BDragger object to the BView in order to make the BView replicant capable.

When I drop the Replicant on the Desktop the Tracker crashes. I tried the same on BeOS5 Max 3 and the program works like a charm. I attached the backtrace from Haiku (rev.30286), the original project and a screenshot from BeOS5. I use both the OSes in VMware Fusion.

Attachments (4)

RepliText.zip (6.5 KB) - added by burton_ 10 years ago.
Backtrace (4.7 KB) - added by burton_ 10 years ago.
BeOSR5.png (110.5 KB) - added by burton_ 10 years ago.
terminaloutput.txt (1.3 KB) - added by burton_ 10 years ago.

Download all attachments as: .zip

Change History (10)

Changed 10 years ago by burton_

Attachment: RepliText.zip added

Changed 10 years ago by burton_

Attachment: Backtrace added

Changed 10 years ago by burton_

Attachment: BeOSR5.png added

comment:1 Changed 10 years ago by stippi

I fixed a couple of problems in hrev30319. Can you please check with that? There may be the problem that the scroll bars don't scroll the text view anymore. At least there is a TODO in the BScrollBar code to this effect. To fix this, I would have to "reverse engineer" the BScrollBar archive format from BeOS... which means I would have to reboot... maybe later. If you want to look into it, make a small test app that prints every BMessage in MessageReceived. Actually, you can even put this in your replicant code, just add message->PrintToStream() to your text view's MessageReceived() hook, and drop the replicant onto your own window. Then attach the output from the Terminal to this ticket. Thanks a lot!

comment:2 Changed 10 years ago by burton_

in 30759 the replicant works, but, as you already said, the scrollbar doesn't work in the replicant view. I tried to add 'm'essage->PrintToStream() to the NoteView::MessageReceived() and to the NoteText::MessageReceived() of our small program (http://dev.osdrawer.net/projects/show/takenotes) but there's no output on the terminal. If I add that instruction to the NoteView::Archive() I obtain the BMessage structure that contains the different views.

I'll open a small OT, but in our program since the latest reviews the BColorControl object causes a lot of artifacts, should i open another ticket ?

Thanks for your help.

comment:3 Changed 10 years ago by stippi

Wow, that was a long time ago, my memory doesn't go 3 weeks back so easily! If you want to obtain output from your replicant, you have to launch Tracker itself in a Terminal:

hey Tracker quit
/system/Tracker &

Then you can see the output from your replicant in that Terminal. Anyways, what I wanted you to do was to get the output from running your replicant in BeOS. I want to know the message format when archiving BScrollBar. If you add the message->PrintToStream() in your TextView, you should be able to drop the replicant onto your own TextView and thereby print the archive contents to the Terminal.

Changed 10 years ago by burton_

Attachment: terminaloutput.txt added

comment:4 Changed 10 years ago by burton_

i attached the Tracker output as you said. I put the istruction message->PrintToStream() in both the View and the TextView.

comment:5 Changed 10 years ago by stippi

Thanks, but sorry, this is not what I need. Don't worry about it, I will try to get my BeOS system back to work and do the tests myself.

comment:6 Changed 5 years ago by pulkomandy

Resolution: fixed
Status: newclosed

I tested TakeNotes from https://github.com/HaikuArchives/TakeNotes and it works fine. So it seems this got fixed somewhere in the last 5 years?

Note: See TracTickets for help on using tickets.