WebCore:
2007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Adam.

        Use the ScrollView/Widget design of the Windows port to only use one
        native window for the whole page. This will make it possible to implement
        FrameLoaderClientGdk::createFrame.

        In contrast to the windows port the ScrollBars are GtkWidgets. To paint them
        at the right position we need to position them correctly. To not scroll the
        ScrollBar's belonging to the ScrollView a ScrollViewScrollbar is introduced with
        a different geometryChanged method.

        To allow the Gtk+ way of scrolling the ScrollView allows to get GtkAdjustments
        set. In this case no ScrollViewScrollbar will be created.

        * platform/ScrollView.h:
        * platform/Widget.h:
        * platform/gdk/PlatformScreenGdk.cpp:
        (WebCore::screenDepth):
        * platform/gdk/PlatformScrollBar.h:
        * platform/gdk/PlatformScrollBarGdk.cpp:
        (PlatformScrollbar::PlatformScrollbar):
        (PlatformScrollbar::~PlatformScrollbar):
        (PlatformScrollbar::setRect):
        (PlatformScrollbar::geometryChanged):
        * platform/gdk/ScrollViewGdk.cpp:
        (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
        (WebCore::ScrollView::ScrollViewPrivate::~ScrollViewPrivate):
        (WebCore::ScrollViewScrollbar::ScrollViewScrollbar):
        (WebCore::ScrollViewScrollbar::geometryChanged):
        (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
        (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
        (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
        (WebCore::ScrollView::ScrollViewPrivate::adjustmentChanged):
        (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
        (WebCore::ScrollView::ScrollViewPrivate::windowClipRect):
        (WebCore::ScrollView::setGtkAdjustments):
        (WebCore::ScrollView::updateContents):
        (WebCore::ScrollView::update):
        (WebCore::ScrollView::visibleWidth):
        (WebCore::ScrollView::resizeContents):
        (WebCore::ScrollView::contentsX):
        (WebCore::ScrollView::scrollOffset):
        (WebCore::ScrollView::maximumScroll):
        (WebCore::ScrollView::scrollBy):
        (WebCore::ScrollView::suppressScrollbars):
        (WebCore::ScrollView::setHScrollbarMode):
        (WebCore::ScrollView::setVScrollbarMode):
        (WebCore::ScrollView::setScrollbarsMode):
        (WebCore::ScrollView::setFrameGeometry):
        (WebCore::ScrollView::addChild):
        (WebCore::ScrollView::removeChild):
        (WebCore::ScrollView::scrollRectIntoViewRecursively):
        (WebCore::ScrollView::wheelEvent):
        (WebCore::ScrollView::updateScrollbars):
        (WebCore::ScrollView::windowToContents):
        (WebCore::ScrollView::contentsToWindow):
        (WebCore::ScrollView::scrollbarUnderMouse):
        (WebCore::ScrollView::convertChildToSelf):
        (WebCore::ScrollView::convertSelfToChild):
        (WebCore::ScrollView::paint):
        (WebCore::ScrollView::geometryChanged):
        (WebCore::ScrollView::scroll):
        (WebCore::ScrollView::addToDirtyRegion):
        (WebCore::ScrollView::scrollBackingStore):
        (WebCore::ScrollView::updateBackingStore):
        * platform/gdk/WidgetGdk.cpp:
        (WebCore::WidgetPrivate::gdkDrawable):
        (WebCore::Widget::Widget):
        (WebCore::Widget::setContainingWindow):
        (WebCore::Widget::containingWindow):
        (WebCore::Widget::frameGeometry):
        (WebCore::Widget::setFrameGeometry):
        (WebCore::Widget::setParent):
        (WebCore::Widget::parent):
        (WebCore::Widget::setCursor):
        (WebCore::Widget::show):
        (WebCore::Widget::hide):
        (WebCore::Widget::removeFromParent):
        (WebCore::Widget::paint):
        (WebCore::Widget::invalidate):
        (WebCore::Widget::invalidateRect):
        (WebCore::Widget::convertToContainingWindow):
        (WebCore::Widget::convertFromContainingWindow):
        (WebCore::Widget::convertChildToSelf):
        (WebCore::Widget::convertSelfToChild):
        (WebCore::Widget::suppressInvalidation):
        (WebCore::Widget::setSuppressInvalidation):

WebKit/gtk:
2007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Adam.

        Follow the changes of ScrollView in WebCore and call setContainingWindow, set the
        GtkAdjustment of the GtkLayout and reimplement the set_scroll_adjustments method and pass
        the GtkAdjustments to ScrollView.
        This makes having one GdkWindow for the complete FrameTree possible.

        * gtk/Api/webkitgtkframe.cpp:
        * gtk/Api/webkitgtkpage.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@24963 268f45cc-cd09-0410-ab3c-d52691b4dbfc
11 files changed