Opened 10 years ago

Closed 9 years ago

#10409 closed defect (fixed)

_setOpacity IE handling: should remove zoom=1.0 if opacity==1

Reported by: CnEY Owned by: Eugene Lazutkin
Priority: high Milestone: 1.5
Component: Core Version: 1.4.0b
Keywords: opacity Cc:
Blocked By: Blocking:

Description (last modified by Eugene Lazutkin)

In IE7+, cleartype rendering gets turned off when playing with filters. For intermediate values this might not be avoidable, but there is already handling to disable these filters when opacity is set to 1. However, in some versions of IE in some rendering modes (for example, IE8 in IE7 standards mode or Quirks mode), disabling the filter still doesn't turn cleartype rendering back on. Mysteriously, removing the zoom setting seems to do the trick.

This is easily achievable by replacing the following line in _setOpacity:

node.style.zoom = 1.0;

with the following instead:

node.style.zoom = (opacity == 1 ? '' : 1.0);

I'm attaching the same file as I did with #10408 to reproduce this, except this time it needs to be tested with cleartype on, in a specific rendering mode in which it happens. I know it happens in IE8 running in IE7 standards mode or quirks mode; using the developer tools you can easily switch this from the Document Mode menu. Unfortunately I'm unsure in which modes in native IE7 this happens. As with #10408, I tested on 1.3.2 but I expect the same thing to happen in 1.4 RC since the code hasn't changed.

Attachments (1)

opacity.html (751 bytes) - added by CnEY 10 years ago.

Download all attachments as: .zip

Change History (5)

Changed 10 years ago by CnEY

Attachment: opacity.html added

comment:1 Changed 10 years ago by bill

Milestone: tbd1.5
Owner: changed from anonymous to Eugene Lazutkin

Eugene, looks like this can be fixed along with #10408?

comment:2 Changed 10 years ago by CnEY

Oh dear. I just noticed that the fix line I supplied got part of its code wikified, there's supposed to be an empty string in the true part of the ternary operator, i.e.:

node.style.zoom = (opacity == 1 ? "" : 1.0);

comment:3 Changed 10 years ago by Eugene Lazutkin

Description: modified (diff)
Status: newassigned

comment:4 Changed 9 years ago by Eugene Lazutkin

Resolution: fixed
Status: assignedclosed

(In [21799]) Tweaking zoom on IE for opacity, thx CnEY, !strict, fixes #10409.

Note: See TracTickets for help on using tickets.