You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is the second bug I indicated in the "by the way" part of a reply to the Maximized Chromium window issue, just lifted out here to make the issue easier to see: #36 (comment)
The problem:
When a specially shaped (non-rectangular) window becomes transparent, compton renders the part out of its shape incorrectly. Just run compton, run oclock, then set oclock window's opacity to like 50%, and you see the issue. Try moving the oclock window around if it's not obvious where the problem is.
The patch:
Should I repeat my usual words that I know nothing and this patch can be very unreliable? :-) It's taken from xcompmgr:
diff --git a/src/compton.c b/src/compton.c
index b72dc59..57f9926 100644
--- a/src/compton.c
+++ b/src/compton.c
@@ -1122,6 +1122,10 @@ paint_all(Display *dpy, XserverRegion region) {
if (w->mode != WINDOW_SOLID || HAS_FRAME_OPACITY(w)) {
int x, y, wid, hei;
+ // Necessary to make sure specially-shaped windows are
+ // painted correctly
+ XFixesIntersectRegion(dpy, w->border_clip, w->border_clip, w->border_size);
+ XFixesSetPictureClipRegion (dpy, root_buffer, 0, 0, w->border_clip);
#if HAS_NAME_WINDOW_PIXMAP
x = w->a.x;
y = w->a.y;
By the way:
To make sure you don't get puzzled, here's a list of the patches I posted that needs review so far:
(I don't know a way to get around these two issues by simply changing painting sequence, without relying on the bounding region, which can be unreliable. Probably there's a way if we change how the Picture of a window is retrieved, but I suspect that painting in this way would result in huge performance loss. I guess listening to ShapeNotify is the best option right now.)
This is the second bug I indicated in the "by the way" part of a reply to the Maximized Chromium window issue, just lifted out here to make the issue easier to see: #36 (comment)
The problem:
When a specially shaped (non-rectangular) window becomes transparent, compton renders the part out of its shape incorrectly. Just run compton, run oclock, then set oclock window's opacity to like 50%, and you see the issue. Try moving the oclock window around if it's not obvious where the problem is.
The patch:
Should I repeat my usual words that I know nothing and this patch can be very unreliable? :-) It's taken from xcompmgr:
By the way:
To make sure you don't get puzzled, here's a list of the patches I posted that needs review so far:
"Ultimate" patch for the two Chromium window issues, using
ShapeNotify
: Maximized Chromium window sometimes gets partially hidden (& another Chromium issue & research results & fixes) #36 (comment)(I don't know a way to get around these two issues by simply changing painting sequence, without relying on the bounding region, which can be unreliable. Probably there's a way if we change how the
Picture
of a window is retrieved, but I suspect that painting in this way would result in huge performance loss. I guess listening toShapeNotify
is the best option right now.)Patch for the opacity bugs: 5 opacity-related bugs (& patch) #37
Colored shadow patch, of course you may have a better way to implement it: [FeatureRequest] Colored shadows. #35 (comment)
The patch above.
The text was updated successfully, but these errors were encountered: