summaryrefslogtreecommitdiffstats
path: root/src/kernel/qcolor_x11.cpp
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-05-03 15:02:25 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-05-03 15:02:25 -0500
commit2a85fcbb5cafc25a750ce548123c8e7422793b3c (patch)
tree00606f37c78ac13f0a94f8311ad4c8aa6e5560cc /src/kernel/qcolor_x11.cpp
parent4e770dc8156d0fdce5c9c6e0c71935fe4d18648e (diff)
downloadqt3-2a85fcbb5cafc25a750ce548123c8e7422793b3c.tar.gz
qt3-2a85fcbb5cafc25a750ce548123c8e7422793b3c.zip
Fix ARGB mode stippled focus rectangle showing underlying window contents
Fix TQColor not processing alpha channel in ARGB mode
Diffstat (limited to 'src/kernel/qcolor_x11.cpp')
-rw-r--r--src/kernel/qcolor_x11.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/kernel/qcolor_x11.cpp b/src/kernel/qcolor_x11.cpp
index eeaee5e..dbd039e 100644
--- a/src/kernel/qcolor_x11.cpp
+++ b/src/kernel/qcolor_x11.cpp
@@ -407,8 +407,14 @@ uint QColor::alloc( int screen )
b = sd->blue_shift > 0 ? b << sd->blue_shift : b >> -sd->blue_shift;
pix = (b & sd->blue_mask) | (g & sd->green_mask) | (r & sd->red_mask)
| ~(sd->blue_mask | sd->green_mask | sd->red_mask);
- if ( screen == QPaintDevice::x11AppScreen() )
+ if (QPaintDevice::x11AppDepth(screen) == 32) {
+ int a = qAlpha(d.argb);
+ pix = pix & 0x00ffffff;
+ pix = pix | (a << 24);
+ }
+ if ( screen == QPaintDevice::x11AppScreen() ) {
d.d32.pix = pix;
+ }
return pix;
}
QColorData *c = sd->colorDict->find( (long)(d.argb) );