Comment 28 for bug 220575

Revision history for this message
pomodoro (zanyuan) wrote : Re: [Bug 220575] Re: [MASTER] checking radio buttons or checkboxes doesn't work correctly

Thanks for detailed explanation though I don't quite understand those
programming terms.
I'll live up to it and look forward to the future...hopefully.

Stephen

On Thu, Jul 30, 2009 at 6:33 AM, Jonathan Thomas <email address hidden>wrote:

> Sadly, gtk-qt-engine is a quite broken piece of software and has been
> removed from distribution. (See bug 404930)
> Unfortunately this means that the large number of bugs will not be seeing
> fixes. :(
>
> For now, the best integration option for KDE is the QtCurve style, (gtk2
> -engines-qtcurve) which offers a theme quite similar to the default
> Oxygen theme. The configuration module for gtk-qt-engine has been
> salvaged and is now living in the kcm-gtk package, which will be
> available and installed by default in Kubuntu 9.10.
>
> Thanks for understanding. This package tried its best, but in the end
> did not live up to the standards required by anybody who doesn't like
> looking at a broken Oxygen imitation.
>
> ** Changed in: gtk-qt-engine (Ubuntu)
> Status: Confirmed => Won't Fix
>
> --
> [MASTER] checking radio buttons or checkboxes doesn't work correctly
> https://bugs.launchpad.net/bugs/220575
> You received this bug notification because you are a direct subscriber
> of the bug.
>
> Status in “firefox” package in Ubuntu: Invalid
> Status in “firefox-3.0” package in Ubuntu: Invalid
> Status in “gtk-qt-engine” package in Ubuntu: Won't Fix
> Status in “gtk-qt-engine-kde4” package in Ubuntu: Invalid
>
> Bug description:
> when selecting a check box or radio button, they show up as "active" but
> not as checked. I've made a quick video to illustrate what I mean. this is a
> real pain in the end of the back because when you quickly "eye-check" if
> you've accepted the terms and conditions (checkbox!) or so you're gonna
> clear that one by accident etc.
>
> sorry the video was made with pyvnc2swf so it's an swf object. if someone
> has problems viewing it create a html file with the following in it: {gonna
> be long...}
>
> <script language="javascript">
> /* Jesse Ruderman
> * July 18, 2004
> *
> * Remaining problems:
> * IE sometimes crashes on exit after using the this script.
> * In IE, it is a little ugly because IE doesn't support border-radius.
> * In IE, it does not work at standalone Flash URLs.
> */
>
> function setupSeekBar() {
>
> setTimeout(initFlashControls, 100);
>
> function initFlashControls()
> {
> var count = 0;
>
> function tt(elem)
> {
> if (typeof elem.TotalFrames != "undefined") /* do not coerce
> elem.StopPlay to bool, because that breaks IE */
> {
> addFlashControls(elem);
> ++count;
> }
> }
>
> var i, x;
>
> for (i = 0; x = document.getElementsByTagName("object")[i]; ++i)
> tt(x);
>
> for (i = 0; x = document.getElementsByTagName("embed")[i]; ++i)
> tt(x);
>
> }
>
>
> function addFlashControls(flash)
> {
> var controlsDiv = document.createElement("div");
>
> /* Put the controls under the Flash.
> *
> * If the Flash is an <embed> in an <object>, we do not want to touch the
> <object>, because that would make
> * Mozilla re-test whether the <object> is broken and reset the <embed>.
> So in that case, we put the controls
> * under the <object>.
> */
> var where = flash;
> while (where.parentNode.tagName.toLowerCase() == "object")
> where = where.parentNode;
> where.parentNode.insertBefore(controlsDiv, where.nextSibling);
>
> /* Construct controls using DOM2 instead of innerHTML.
> * In Mozilla, innerHTML= is like innerText= at standalone flash URLs.
> */
> var table = document.createElement("table");
> controlsDiv.appendChild(table);
>
> var row = table.insertRow(-1);
>
> var pauseButton = document.createElement("button");
> pauseButton.appendChild(document.createTextNode("Pause"));
> var buttonCell = row.insertCell(-1);
> buttonCell.appendChild(pauseButton);
>
> var slider = row.insertCell(-1);
> slider.width = "100%";
>
> var visibleSlider = document.createElement("div");
> visibleSlider.style.position = "relative";
> visibleSlider.style.height = "10px";
> visibleSlider.style.width = "100%";
> visibleSlider.style.MozBorderRadius = "4px";
> visibleSlider.style.background = "#aaa";
> slider.appendChild(visibleSlider);
>
> var thumb = document.createElement("div");
> thumb.style.position = "absolute";
> thumb.style.height = "20px";
> thumb.style.width = "10px";
> thumb.style.top = "-5px";
> thumb.style.MozBorderRadius = "4px";
> thumb.style.background = "#666";
> visibleSlider.appendChild(thumb);
>
>
> var sliderWidth;
> var paused = false;
> var dragging = false;
>
> table.width = Math.max(parseInt(flash.width) || 0, 400);
>
> addEvent(pauseButton, "click", pauseUnpause);
> addEvent(slider, "mousedown", drag);
> addEvent(slider, "drag", function() { return false; }); /* For IE */
> window.setInterval(update, 30);
>
> function pauseUnpause()
> {
> paused = !paused;
>
> pauseButton.style.borderStyle = paused ? "inset" : "";
>
> if (paused)
> flash.StopPlay();
> else
> flash.Play();
> }
>
> function update()
> {
> sliderWidth = parseInt(getWidth(slider) - getWidth(thumb));
>
> if (!paused && !dragging)
> thumb.style.left = parseInt(flash.CurrentFrame() / totalFrames() *
> sliderWidth) + "px";
> }
>
> function dragMousemove(e)
> {
> var pageX = e.clientX + document.body.scrollLeft; /* cross-browser,
> unlike e.pageX, which IE does not support */
> var pos = bounds(0, pageX - getX(slider) - 5, sliderWidth);
> var frame = bounds(1, Math.ceil(totalFrames() * pos / sliderWidth),
> totalFrames() - 2);
>
> thumb.style.left = pos + "px";
>
> flash.GotoFrame(frame);
> }
>
> function release(e)
> {
> removeEvent(document, "mousemove", dragMousemove);
> removeEvent(document, "mouseup", release);
> if (!paused)
> flash.Play();
> dragging = false;
> }
>
> function drag(e)
> {
> addEvent(document, "mousemove", dragMousemove);
> addEvent(document, "mouseup", release);
> dragging = true;
> dragMousemove(e);
> }
>
>
>
> /* Boring functions, some of which only exist to hide differences between
> IE and Mozilla. */
>
> function bounds(min, val, max)
> {
> return Math.min(Math.max(min, val), max);
> }
>
> function totalFrames()
> {
> /* This is weird. TotalFrames differs between IE and Mozilla.
> CurrentFrame does not. */
>
> if (typeof flash.TotalFrames == "number")
> return flash.TotalFrames; /* IE */
> else if (typeof flash.TotalFrames == "function")
> return flash.TotalFrames(); /* Mozilla */
> else
> return 1; /* Partially loaded Flash in IE? */
> }
>
> function getWidth(elem)
> {
> if (document.defaultView && document.defaultView.getComputedStyle)
> return
> parseFloat(document.defaultView.getComputedStyle(elem,null).getPropertyValue("width"));
> /* Mozilla */
> else
> return parseFloat(elem.offsetWidth); /* IE (currentStyle.width can be
> "auto" or "100%") */
> }
>
> function getX(elem)
> {
> if (!elem) return 0;
> return (elem.offsetLeft) + getX(elem.offsetParent);
> }
>
> function addEvent(elem, eventName, fun)
> {
> if (elem.addEventListener) /* Mozilla */
> elem.addEventListener(eventName, fun, false);
> else /* IE */
> elem.attachEvent("on" + eventName, fun);
> }
>
> function removeEvent(elem, eventName, fun)
> {
> if (elem.addEventListener)
> elem.removeEventListener(eventName, fun, false);
> else
> elem.detachEvent("on" + eventName, fun);
> }
>
> }
>
> }
> </script>
> </head>
> <body onload="setupSeekBar();">
> <h1>clickingaction</h1>
> <hr noshade><center>
> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="1280"
> height="800"
> codebase="
> http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0
> ">
> <param name="movie" value="clickingaction.swf">
> <param name="play" value="true">
> <param name="loop" value="True">
> <param name="quality" value="low">
> <embed src="clickingaction.swf" width="1280" height="800" play="true"
> loop="True" quality="low" type="application/x-shockwave-flash"
> pluginspage="http://www.macromedia.com/go/getflashplayer">
> </embed></object></center>
>