Closed Bug 469007 Opened 16 years ago Closed 14 years ago

Transparency in XUL pop-up windows doesn't work properly on OS X

Categories

(Core :: Widget: Cocoa, defect, P2)

x86
macOS
defect

Tracking

()

RESOLVED FIXED

People

(Reporter: avarma, Assigned: sgreenlay)

References

()

Details

Attachments

(2 files)

This bug was originally reported by Fernando Takai in regards to Ubiquity's new skin for its command mode entry popup.  Side-by-side screenshots of the popup on win32 and os x are here:

  http://labs.toolness.com/trac/ticket/397#comment:2

As can be seen, the window looks as-intended on win32 but on OS X the background of the descriptive text is opaque black.  The exact same XUL, CSS, HTML, etc. are being used.
Assignee: nobody → joshmoz
Component: GFX → Widget: Cocoa
QA Contact: general → cocoa
Testcase?

The image suggests that the panel is working fine but that the box inside it isn't.
Yep, that analysis is correct.

What kind of testcase would you like?  I don't know if we have a super-simple one; easiest way to reproduce the bug would be to get the latest Ubiquity beta and try it out with the default skin on Win32 and OS X, but with some work we could probably get a single XUL file together that duplicates the effect.
(In reply to comment #2)
> ... but with some work we could probably get a single XUL file together
> that duplicates the effect.

You should do that. When this is fixed, it should have a minimized testcase that lands with it so it doesn't break again. "Use Ubiquity" isn't a valid automated testcase.
To reproduce the bugs.

(1) Be using a Mac.
(2) Open the redraw_bug.xul page
(3) Type a single character. Notice that the transparency of the yellow box is decreased. This is a redraw bug -- the transparency should change.
(4) Hit delete to remove the typed character. Notice that a ghosted version of the character plus the insertion pointer remains. This is also a bug.
(5) Type a different character. It gets drawn over the ghosted character.
(6) Hit escape. Note that a ghosted version remains. Rolling over the giant button redraws a part of the screen, but not all of it.

This may be related to this bug: https://bugzilla.mozilla.org/show_bug.cgi?id=445404
P.S., this is somewhat blocking for Ubiquity.
Version: unspecified → Trunk
Flags: blocking1.9.1?
Aza, your testcase seems only to have to do with bug 445404; redrawing problems when the popup has gone away. 

As far as I can see it does not reproduce the bug described in comment 0 where some things are not rendered as transparent, where they should be?
Markus, could you do some investigation here?
Assignee: joshmoz → mstange
I've got a (somewhat hacky) patch that fixes the original ubiquity problem but neither of the testcases.
Status: NEW → ASSIGNED
A somewhat hacky patch that works is better than none at all. Especially if it makes Ubiquity not have the odd redraw problems.

I wonder, though, why the testcases act differently than Ubiq proper.
Flags: wanted1.9.1+
Flags: blocking1.9.1?
Flags: blocking1.9.1-
Attached image opaqueUbiq.png
Does the attached image demonstrate the same bug as described here, or is it just an issue with the current Ubiquity skin?

(I see, that it is not the same problem as demonstrated by the attached testcase.)
Priority: -- → P2
The patch that I had doesn't work correctly; it causes painting errors in some cases.

The root problem here is that the description box in the Ubiquity panel which displays the transparency glitches creates a child widget. (This is usually caused by an "overflow" CSS style.) Gecko can't work with transparent child widgets properly. As part of Roc's Compositor work, most child widgets will be removed (bug  352093), and that will probably fix the bug.

Ubiquity might be able to work around the Gecko problem by ensuring that no child widget is created for the buggy box. I don't know how the box is styled, though, so I don't know what exactly has to be done.
Assignee: mstange → nobody
Status: ASSIGNED → NEW
Depends on: widget-removal
Uh... it's an iframe. I don't know if it's possible to make iframes widget-less.
Works for me, using:
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2a1pre) Gecko/20090726 Minefield/3.6a1pre

Seems to be fixed by bug 352093.
Scott - can you confirm a fix here?
Assignee: nobody → sgreenlay
This works in 3.6.10.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: