Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6776743

Lightweight components must be counted as opaque rectangles for the purposes of hw/lw mixing

XMLWordPrintable

    • b01
    • generic
    • generic
    • Verified

      The HW/LW Mixing feature is designed so that it considers the 'opaque' property of lightweight components in order to decide whether these components should affect heavyweight components underneath the lightweights. The logic is simple: if the component is opaque, then its shape (a rectangle) gets cut off of the heavyweights. If it isn't opaque, the component does not affect the shapes of heavyweights. This made it possible to correctly handle, say, the GlassPane-like components which themselves are non-opaque and cover the whole area of the frame. If we were to cut off the shape of the GlassPane of the heavyweights, we wouldn't see any heavyweight components in a JFrame with the hw/lw mixing feature enabled.

      However, this led to ignoring the opaque children of non-opaque containers which has been fixed with 6637655. Also there were some minor issues identified with JInternalFrame's that were fixed with 6768332.

      Currently we run into even bigger problem: modern L&Fs turn almost every lightweight component to non-opaque in order to render their rounded corners. This makes the components non-mixable with heavyweight components breaking the hw/lw mixing feature completely.

            anthony Anthony Petrov (Inactive)
            anthony Anthony Petrov (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: