Closed Bug 342408 Opened 18 years ago Closed 18 years ago

[BeOS] Mouse handling for IFRAMEs is broken after scroll

Categories

(Core Graveyard :: Widget: BeOS, defect)

x86
BeOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: sergei_d, Assigned: sergei_d)

References

Details

(Keywords: fixed1.8.1)

Attachments

(2 files)

That's result of hiding children for perfect scrolling. Hidden BViews don't get mouse notifications, so mouse events do pass to wrong widget.

Solution. Unhide kids in the end of scroll function, but perform some additional actions to minimize unneeded invalidation.
Attached patch patchSplinter Review
Calls HideKids(PR_FALSE) in end of Scroll() methods.
Removed HideKids() from other places.
Adds two little methods to nsViewBeOS - SetVisible() and Visible().
SetVisible() is used in Scroll() to stop any OS-forced invalidation until end of process. Without it Hide/UnhideKids at each scroll event is too expensive.
nsWindow::IsVisible() now also takes in account nsViewBeOS::Visible().

SetVisible()/Visible() might be used in future in other places too, like ::Invalidate().

(Also fixed initial size of gCursorArray)
r=?
Assignee: nobody → sergei_d
Status: NEW → ASSIGNED
Attachment #226648 - Flags: review?(thesuckiestemail)
tqh, there is some code in this patch which relates to ArgvReceived/RefsReceived patch, don't take it in account - it will be removed at checkin, as this is already in tree anyway:)
Comment on attachment 226648 [details] [diff] [review]
patch

r=thesuckiestemail@yahoo.se
Havn't tried it, but it looks ok. Also check formatting before checkin as I just looked at function.
Attachment #226648 - Flags: review?(thesuckiestemail) → review+
Checking in mozilla/widget/src/beos/nsWindow.cpp;
/cvsroot/mozilla/widget/src/beos/nsWindow.cpp,v  <--  nsWindow.cpp
new revision: 1.127; previous revision: 1.126
done
Checking in mozilla/widget/src/beos/nsWindow.h;
/cvsroot/mozilla/widget/src/beos/nsWindow.h,v  <--  nsWindow.h
new revision: 1.57; previous revision: 1.56
done
Status: ASSIGNED → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Needs to be backported to branch. Probably together with bug
https://bugzilla.mozilla.org/show_bug.cgi?id=342613

Fixes quite serious usability issue, will attempt that when at home
Blocks: 311032
(In reply to comment #5)
> Needs to be backported to branch. Probably together with bug
> https://bugzilla.mozilla.org/show_bug.cgi?id=342613
> 
> Fixes quite serious usability issue, will attempt that when at home
> 

I'll see if I can paste this into the branch code tonight.
asking approval for branch,
BeOS-only change.
Attachment #241832 - Flags: approval1.8.1?
Comment on attachment 241832 [details] [diff] [review]
patch version for branch

a=beltzner on behalf of drivers (NPOTB)
Attachment #241832 - Flags: approval1.8.1? → approval1.8.1+
Checking in mozilla/widget/src/beos/nsWindow.h;
/cvsroot/mozilla/widget/src/beos/nsWindow.h,v  <--  nsWindow.h
new revision: 1.35.4.14; previous revision: 1.35.4.13
done
Checking in mozilla/widget/src/beos/nsWindow.cpp;
/cvsroot/mozilla/widget/src/beos/nsWindow.cpp,v  <--  nsWindow.cpp
new revision: 1.91.4.23; previous revision: 1.91.4.22
done 
Keywords: fixed1.8.1
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: