Bug 119327

Summary: Sliders on a web page does not work
Product: [Applications] konqueror Reporter: Osho GG <oshogg>
Component: khtmlAssignee: Maksim Orlovich <maksim>
Status: RESOLVED FIXED    
Severity: normal CC: maksim
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: patch

Description Osho GG 2006-01-01 00:48:33 UTC
Version:            (using KDE KDE 3.5.0)
Installed from:    SuSE RPMs
OS:                Linux

Hi,

I have noticed that some sliders do not work on this webpage. The webpage is

http://portland.citysearch.com/find/section/portland/restaurants.html?

If you look at the left, there is a Search Restaurants bar. Under that there are various sections titled "By Cuisine" , "By Feature" or "By Price". There are little sliders next to it. I am unable to use these sliders to slide up/down. Firefox/IE works fine on this page.

thanks,
Osho
Comment 1 Maksim Orlovich 2006-01-22 01:33:52 UTC
OK, have a fix, and it has nothing to do with drags or mouse events or whatsoever :-). We just errored out for an unrelated reason, breaking JS here.
Comment 2 Maksim Orlovich 2006-01-22 01:37:15 UTC
Created attachment 14333 [details]
patch

This adds "poor man's" support for getComputedStyle on hidden nodes. It doesn't
actually return anything but "undefined" but this is enough to get the sliders
working. OTOH, there is still a weird bug where all movement starts selecting
stuff(!!)
Comment 3 Maksim Orlovich 2006-01-22 02:26:29 UTC
SVN commit 501090 by orlovich:

Go ahead and return an object when doing getComputedStyle on renderer-less elements.
It wouldn't return anything other than "undefined" in response to any queries,
but that's enough for some websites, apparently.

BUG:119327


 M  +1 -1      dom2_viewsimpl.cpp  


--- branches/KDE/3.5/kdelibs/khtml/xml/dom2_viewsimpl.cpp #501089:501090
@@ -41,7 +41,7 @@
 
 CSSStyleDeclarationImpl *AbstractViewImpl::getComputedStyle(ElementImpl* elt, DOMStringImpl* /*pseudoElt*/)
 {
-    if (!elt || !elt->renderer())
+    if (!elt)
         return 0;
 
     CSSStyleDeclarationImpl* style = new RenderStyleDeclarationImpl( elt );