[prev in list] [next in list] [prev in thread] [next in thread]
List: kfm-devel
Subject: Complete patch, change frameset.rows from js (please apply)
From: <koos.vriezen () xs4all ! nl>
Date: 2001-12-17 21:07:36
[Download RAW message or body]
Hi,
Second and complete patch to make the following work:
index.html:
<HTML><HEAD> </HEAD>
<FRAMESET ROWS="200,*" ID='OUTERFRAME'>
<FRAME SRC="topframe.html">
<FRAME SRC="http://www.kde.org">
</FRAMESET>
</HTML>
topframe.html
<HTML>
<HEAD>
<SCRIPT>
function resizeFrame() {
var fs = top.document.getElementById("OUTERFRAME");
fs.rows = "300,*";
}
</SCRIPT>
</HEAD>
<BODY onClick='resizeFrame()'></BODY>
</HTML>
--- html/html_baseimpl.cpp.orig Sun Dec 16 19:15:35 2001
+++ html/html_baseimpl.cpp Mon Dec 17 21:37:25 2001
@@ -385,12 +385,18 @@
switch(attr->attrId)
{
case ATTR_ROWS:
+ delete m_rows;
m_rows = attr->val()->toLengthList();
m_totalRows = m_rows->count();
+ if (m_render)
+ m_render->layout();
break;
case ATTR_COLS:
+ delete m_cols;
m_cols = attr->val()->toLengthList();
m_totalCols = m_cols->count();
+ if (m_render)
+ m_render->layout();
break;
case ATTR_FRAMEBORDER:
// false or "no" or "0"..
@@ -446,7 +452,7 @@
if ( !r )
return;
- khtml::RenderFrameSet *renderFrameSet = new khtml::RenderFrameSet(
this, w, m_rows, m_cols );
+ khtml::RenderFrameSet *renderFrameSet = new khtml::RenderFrameSet(
this, w );
m_render = renderFrameSet;
m_render->setStyle(m_style);
r->addChild( m_render, nextRenderer() );
--- rendering/render_frames.cpp.orig Mon Dec 17 14:03:09 2001
+++ rendering/render_frames.cpp Mon Dec 17 21:42:10 2001
@@ -52,8 +52,7 @@
using namespace khtml;
using namespace DOM;
-RenderFrameSet::RenderFrameSet( HTMLFrameSetElementImpl *frameSet,
KHTMLView *view,
- QPtrList<khtml::Length> *rows,
QPtrList<khtml::Length> *cols )
+RenderFrameSet::RenderFrameSet( HTMLFrameSetElementImpl *frameSet,
KHTMLView *view )
: RenderBox()
{
// init RenderObject attributes
@@ -61,19 +60,6 @@
m_frameset = frameSet;
- m_rows = rows;
- m_cols = cols;
-
- // another one for bad html
- // handle <frameset cols="*" rows="100, ...">
- if ( m_rows && m_cols ) {
- // lets see if one of them is relative
- if ( m_rows->count() == 1 && m_rows->at( 0 )->isRelative() )
- m_rows = 0;
- if ( m_cols->count() == 1 && m_cols->at( 0 )->isRelative() )
- m_cols = 0;
- }
-
m_rowHeight = 0;
m_colWidth = 0;
@@ -109,6 +95,17 @@
m_width = m_view->visibleWidth();
m_height = m_view->visibleHeight();
}
+ QList<khtml::Length> *m_rows = m_frameset->m_rows;
+ QList<khtml::Length> *m_cols = m_frameset->m_cols;
+ // another one for bad html
+ // handle <frameset cols="*" rows="100, ...">
+ if ( m_rows && m_cols ) {
+ // lets see if one of them is relative
+ if ( m_rows->count() == 1 && m_rows->at( 0 )->isRelative() )
+ m_rows = 0;
+ if ( m_cols->count() == 1 && m_cols->at( 0 )->isRelative() )
+ m_cols = 0;
+ }
#ifdef DEBUG_LAYOUT
kdDebug( 6040 ) << renderName() << "(FrameSet)::layout( ) width=" <<
width() << ", height=" << height() << endl;
--- rendering/render_frames.h.orig Mon Dec 17 21:38:54 2001
+++ rendering/render_frames.h Mon Dec 17 21:40:11 2001
@@ -45,12 +45,7 @@
{
friend class DOM::HTMLFrameSetElementImpl;
public:
- RenderFrameSet( DOM::HTMLFrameSetElementImpl *frameSet, KHTMLView
*view,
-#if QT_VERSION < 300
- QList<khtml::Length> *rows, QList<khtml::Length> *cols
);
-#else
- QPtrList<khtml::Length> *rows, QPtrList<khtml::Length>
*cols
);
-#endif
+ RenderFrameSet( DOM::HTMLFrameSetElementImpl *frameSet, KHTMLView *view );
virtual ~RenderFrameSet();
@@ -72,13 +67,6 @@
private:
DOM::HTMLFrameSetElementImpl *m_frameset;
-#if QT_VERSION < 300
- QList<khtml::Length> *m_rows;
- QList<khtml::Length> *m_cols;
-#else
- QPtrList<khtml::Length> *m_rows;
- QPtrList<khtml::Length> *m_cols;
-#endif
KHTMLView *m_view;
int *m_rowHeight;
int *m_colWidth;
This patch removes m_rows and m_cols from RenderFrameSet. A small
initialization check done by the RenderFrameSet constructor is moved to
RenderFrameSet::layout.
What remains:
Dragging a frame border, doesn't update HTMLFrameSetElementImpl::m_rows.
Should that be fixed?
Regards,
Koos Vriezen
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic