[Webkit-unassigned] [Bug 14857] New: [gtk] ScrollView and WebKitGtkPage changes to make multiple frames possible

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Aug 1 15:52:27 PDT 2007


http://bugs.webkit.org/show_bug.cgi?id=14857

           Summary: [gtk] ScrollView and WebKitGtkPage changes to make
                    multiple frames possible
           Product: WebKit
           Version: 522+ (nightly)
          Platform: Macintosh
        OS/Version: Mac OS X 10.4
            Status: NEW
          Keywords: Gtk
          Severity: Normal
          Priority: P2
         Component: New Bugs
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: freyther at handhelds.org
OtherBugsDependingO 14729
             nThis:


To implement FrameLoaderClientGdk::createFrame (#14729) we will need support
for possible overlapping frames. The Windows port of WebKit has an approach to
just use one native window resource for the whole FrameView. This approach was
adopted to Gdk/Gtk. We will have one GdkWindow for the whole FrameView, this
GdkWindow is called bin_window (like with GtkLayout) and will be owned and
managaed by WebKitGtkPage (which is a GtkContainer just like GtkLayout).

This patch makes WebKitGtkPage a true GtkContainer, implementing the virtual
methods/default handlers, on this way killing WebCore/platform/gdk/FrameGdk and
changing the Platform*Event to take specifc GdkEvent* structs insteads of the
generic GdkEvent one.

The FrameView is created on the fly in FrameLoaderClientGdk::makeDocumentView

The ScrollView and Widget methods from the Windows port where used with one
exception. To implement the Gtk+ scrollable protocol the FrameView may get
GtkAdjustment's set from the outside. Whenever this happens the internal
PlatformScrollBar will not be used! The other change is within Widget due the
usage of PlatformScrollBar. PlatformScrollBar is a GtkWidget without an
associated window, it will be used by the RenderLayer and by the ScrollView. It
will be positioned by the geometryChanged() method of Widget. To not make the
PlatformScrollbar scroll when the view is scrolled a method was added to Widget
to select between convertToContainingWindow and contentsToWindow. The other
options would have been to subclass PlatformScrollbar and use that subclass in
ScrollView, or to move that method/selection to PlatformScrollBar. But I think
it is nice to have it in Widget.

Adjust RenderTheme to draw the Theme at the right position and add IntPoint
translation to the GraphicsContext to support that as Gdk/Gtk drawing does not
know about our translation (we just share the same surface).

Implement PlatformScrollbar.

Patches need to be applied in the following order:

1.) Make WebKitGtkPage a GtkContainer
2.) Implement ScrollView
3.) On-The-Fly FrameView creation
4.) Use GtkAdjustment
5.) ScrollBar changes
6.) RenderTheme


-- 
Configure bugmail: http://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list