add colorspace fix for window borders with transparency
This commit is contained in:
parent
1d19662c89
commit
b584834bfc
1 changed files with 13 additions and 1 deletions
|
@ -252,7 +252,19 @@ void FbWindow::updateBackground(bool only_if_alpha) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void FbWindow::setBorderColor(const FbTk::Color &border_color) {
|
void FbWindow::setBorderColor(const FbTk::Color &border_color) {
|
||||||
XSetWindowBorder(display(), m_window, border_color.pixel());
|
unsigned long pixel = border_color.pixel();
|
||||||
|
XWindowAttributes attr;
|
||||||
|
if (XGetWindowAttributes(display(), m_window, &attr)
|
||||||
|
&& attr.colormap != DefaultColormap(display(), m_screen_num)) {
|
||||||
|
XColor color;
|
||||||
|
color.red = border_color.red() * 0x101;
|
||||||
|
color.green = border_color.green() * 0x101;
|
||||||
|
color.blue = border_color.blue() * 0x101;
|
||||||
|
if (XAllocColor(display(), attr.colormap, &color)){
|
||||||
|
pixel = color.pixel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
XSetWindowBorder(display(), m_window, pixel);
|
||||||
m_border_color = border_color.pixel();
|
m_border_color = border_color.pixel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue