Menu

#1132 Transparency issue while adding app to hidden slit

v1.4.0
closed-fixed
nobody
None
5
2016-07-30
2015-05-02
No

While playing with bbdock I encountered a small bug in the slit when adding clients using transparent graphics (bbdock) while the slit is hidden.
Also I am using compton for true transparency, but don't think using a compositor or not will make much of a difference for this.

bbdock adds slit clients to launch applications and uses png icons for the clients. If a png icon with transparency is used and bbdock is started while the slit is hidden (i.e. by autoHide), the transparent regions of the png are rendered black for me. Once an icon is clicked to start the application, the transparent regions are displayed correctly (but only for this single icon).
If autoHide is disabled and the slit is always shown, all graphics are displayed correctly.
I assume the reason for this is that there is no background pixmap to be obtained while the slit is hidden.

Looking at the code, I was at least able to create a small workaround:
On creation of the clients, Slit::reconfigure() is called and contains some code to set background pixmaps. Additionally, there are checks at the end to ensure the slit is hidden when autoHide is enabled.
By making Slit::reconfigure() show the slit before creating the background pixmaps the transparency issue vanishes.
The downside to that workaround is that the slit will show up for a moment despite autoHide being set when adding clients to the slit.
I think this behaviour is acceptable since we get correct transparency in slit apps, but there may be a more sophisticated solution for this.
I'm providing you a patch with my workaround in case you think it is acceptable to have the slit show up for a moment when adding clients.

1 Attachments

Discussion

  • Thomas Luebking

    Thomas Luebking - 2016-07-24

    Thanks for the report, investigation a propsed patch.
    Can you try the attached patch instead and report back on whether it resolves the problem as well?

     
  • Thomas Luebking

    Thomas Luebking - 2016-07-28

    This doesn't work - ::reconfigure() also performs inital mapping of the slit, ie. shortcutting it for not being visible visibility forever.

     
  • Thomas Luebking

    Thomas Luebking - 2016-07-30
    • status: open --> closed-fixed
     
  • Thomas Luebking

    Thomas Luebking - 2016-07-30

    Since it follows the idea of the original proposal, let's assume it's fixed by
    commit 50b6102bbf998fc1d8393d4d48bf9507c359a9b9

     
  • Thomas Luebking

    Thomas Luebking - 2016-07-30
    • Group: future release --> v1.4.0
     

Log in to post a comment.