Changeset 20451 for S60/trunk/WebCore
- Timestamp:
- 03/23/07 13:48:16 (22 months ago)
- Location:
- S60/trunk/WebCore
- Files:
-
- 2 modified
-
ChangeLog (modified) (1 diff)
-
kwq/KWQKHTMLPart.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
S60/trunk/WebCore/ChangeLog
r20444 r20451 1 2007-03-23 bujtas <zbujtas@gmail.com> 2 3 Reviewed by Sriram. 4 DESC: onFocus/onClick could destroy the node (and the associated rendered) under the cursor. fix to check 5 if the renderer is still valid. 6 http://bugs.webkit.org/show_bug.cgi?id=13172 7 8 * kwq/KWQKHTMLPart.cpp: 9 1 10 yadavall, reviewed by <zbujtas@gmail.com> 2 11 DESC: Fix NULL pointer check for CacheImage -
S60/trunk/WebCore/kwq/KWQKHTMLPart.cpp
r20408 r20451 1951 1951 1952 1952 if(navNode) { 1953 navNode->ref();1954 if(navNode->renderer() && navNode->renderer()->isWidget()) {1953 navNode->ref(); 1954 if(navNode->renderer() && navNode->renderer()->isWidget()) { 1955 1955 QWidget* w = static_cast<RenderWidget*>(navNode->renderer())->widget(); 1956 1956 if (w) { 1957 1957 w->clicked(); 1958 xmlDocImpl()->setFocusNode( navNode ); 1959 //Get the focus node again as it may have to set to NULL because of onfocus="blur()" 1960 NodeImpl* focusNode = xmlDocImpl()->focusNode(); 1961 if(focusNode && activate && !w->isActive()) 1958 xmlDocImpl()->setFocusNode( navNode ); 1959 // onClick or onFocus could destroy the renderer 1960 if (navNode->renderer()) { 1961 //Get the focus node again as it may have to set to NULL because of onfocus="blur()" 1962 NodeImpl* focusNode = xmlDocImpl()->focusNode(); 1963 if(focusNode && activate && !w->isActive()) 1962 1964 w->activate(); 1965 } 1963 1966 } 1964 }1965 else if(navNode->isHTMLElement()) {1966 static_cast<HTMLElementImpl*>(navNode)->click(false);1967 xmlDocImpl()->setFocusNode( navNode );1968 }1969 navNode->deref();1967 } 1968 else if(navNode->isHTMLElement()) { 1969 static_cast<HTMLElementImpl*>(navNode)->click(false); 1970 xmlDocImpl()->setFocusNode( navNode ); 1971 } 1972 navNode->deref(); 1970 1973 } 1971 1974 }