Closed Bug 329777 Opened 14 years ago Closed 14 years ago

[BeOS] Export widget view state to gfx-backbuffer view.

Categories

(Core Graveyard :: GFX: BeOS, defect)

x86
BeOS
defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: sergei_d, Assigned: sergei_d)

Details

Attachments

(1 file)

1.50 KB, patch
thesuckiestemail
: review+
Details | Diff | Splinter Review
Currently in nsSurfceBeOS only thing which we inherit from original onsreen BView is its size. So we rely fully on nsRenderingContext methods, which cause already several problems in past and forced us to create several workarounds
For me it looks unsufficient
1)We loose clipping region, which affects, for example, scrolling with iframes.
as our backbuffer view at bitmap has included in clipping those regions belonging to children (in backbuffer we/mozilla don't recreate view hierarchy). So, inspite 
 trick with hiding children, scrolling is still bit flacky.

2)In future embedding attempts we should rely bit more on font/color/background set via widget methods

3)without this export nsRenderingContextBeOS::LockAndUpdateView() cannot be optimized as good as i wish it be.

Unfortunately constructor form BView(const BView *) is private, and i didn't found methods in native API for state export/import. So, probably, we should get and set:
ClippingRegion,
Font,
ViewColor,
HighColor
LowColor
manually.
Maybe origin too, if I return to Scroll() refactoring yet another time.
Other state parameters isn't set in widget, IIRC, but maybe i forgot smth.

P.S. My current attempt to add it all here seems resulting in better scrolling already.
Attached patch patchSplinter Review
wish to close this bug too.

r=?
Assignee: beos → sergei_d
Status: NEW → ASSIGNED
Attachment #228483 - Flags: review?(thesuckiestemail)
Comment on attachment 228483 [details] [diff] [review]
patch

r=thesuckiestemail@yahoo.se
Attachment #228483 - Flags: review?(thesuckiestemail) → review+
Checking in mozilla/gfx/src/beos/nsDrawingSurfaceBeOS.cpp;
/cvsroot/mozilla/gfx/src/beos/nsDrawingSurfaceBeOS.cpp,v  <--  nsDrawingSurfaceBeOS.cpp
new revision: 1.25; previous revision: 1.24
done
------

That should be followed by method SetupView (olvdview, newview) in nsRenderingContextBeOS and maybe with some changes in nsWidget::Onpaint().

Our Rendering context impl. is still bit flacky - we cannot release surfaces, we cannot use non-cached version of backbuffer. Will see if I open bug for nsRenderingContextBeOS only, or also for DrawingSurface more deep restructuring (required also for printing support)
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.