Closed Bug 533200 Opened 15 years ago Closed 14 years ago

[OS/2] replace nsFrameWindow

Categories

(Core Graveyard :: Widget: OS/2, defect)

x86
OS/2
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: dragtext, Assigned: dragtext)

References

Details

(Whiteboard: OS/2 only - see Comment #1)

Attachments

(1 file)

Because OS/2 handles of toplevel & child widgets differently than Windows and Linux/GTK, we're exposed to changes that could be hard to recover from quickly.  This patch aims to avoid future problems by reconfiguring OS/2's code to resemble other platforms'.

Currently, we use nsWindow for child widgets, and a subclass, nsFrameWindow for toplevel widgets.  In contrast, they use use nsWindow for both.  This patch takes a similar approach.  Like them, it uses of a dummy subclass, nsChildWindow, to satisfy Mozilla's requirement that toplevel & child widgets be of different classes.

However, rather than making nsWindow more complex by incorporating toplevel functionality into nsWindow, this patch encapsulates it by creating an os2FrameWindow helper class.  When a toplevel window is needed, nsWindow creates a helper object and calls on it to handle methods which require a different implementation for toplevel widgets.

This arrangement provides a much clearer division of function than the existing code.  Except when it's creating the frame's client, os2FrameWindow never manipulates a MozillaClassWindow nor accesses nsWindow's data.  Similarly, nsWindow never handles anything frame-related except in a few trivial instances where the only difference is the window handle passed to a PM call.

Note:  this patch depends on Bug 522896 - it can't be applied until all of that bug's patches are in place.
Attachment #416361 - Flags: review?(wuno)
Attachment #416361 - Flags: review?(wuno) → review+
Attachment #424410 [details] [diff] from Bug #522896 must be checked-in before this patch can be applied.
Keywords: checkin-needed
Whiteboard: OS/2 only - see Comment #1
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.

Attachment

General

Creator:
Created:
Updated:
Size: