[Libreoffice-commits] .: vcl/unx
Lubos Lunak
llunak at kemper.freedesktop.org
Fri Feb 25 10:43:26 PST 2011
vcl/unx/kde4/KDESalGraphics.cxx | 23 +++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
New commits:
commit 9f588950a1f5f87c597826c037cc4a7d73c5bace
Author: LuboÅ¡ LuÅák <l.lunak at suse.cz>
Date: Fri Feb 25 19:42:38 2011 +0100
some fixes for checkboxes and radiobuttons in popups (bnc#581833)
diff --git a/vcl/unx/kde4/KDESalGraphics.cxx b/vcl/unx/kde4/KDESalGraphics.cxx
index 2978a64..84465f3 100644
--- a/vcl/unx/kde4/KDESalGraphics.cxx
+++ b/vcl/unx/kde4/KDESalGraphics.cxx
@@ -341,7 +341,6 @@ BOOL KDESalGraphics::drawNativeControl( ControlType type, ControlPart part,
}
m_image->fill(KApplication::palette().color(QPalette::Window).rgb());
-
QRegion* clipRegion = NULL;
if (type == CTRL_PUSHBUTTON)
@@ -367,24 +366,32 @@ BOOL KDESalGraphics::drawNativeControl( ControlType type, ControlPart part,
}
}
else if (type == CTRL_MENU_POPUP)
- {
+ {
if (part == PART_MENU_ITEM)
{
QStyleOptionMenuItem option;
draw( QStyle::CE_MenuItem, &option, m_image,
vclStateValue2StateFlag(nControlState, value) );
}
- else if (part == PART_MENU_ITEM_CHECK_MARK && (nControlState & CTRL_STATE_PRESSED) )
+ else if (part == PART_MENU_ITEM_CHECK_MARK)
{
- QStyleOptionButton option;
- draw( QStyle::PE_IndicatorMenuCheckMark, &option, m_image,
- vclStateValue2StateFlag(nControlState, value) );
+ m_image->fill(Qt::transparent);
+ if(nControlState & CTRL_STATE_PRESSED) // at least Oxygen paints always as checked
+ {
+ QStyleOptionButton option;
+ draw( QStyle::PE_IndicatorMenuCheckMark, &option, m_image,
+ vclStateValue2StateFlag(nControlState, value));
+ }
}
- else if (part == PART_MENU_ITEM_RADIO_MARK && (nControlState & CTRL_STATE_PRESSED) )
+ else if (part == PART_MENU_ITEM_RADIO_MARK)
{
+ m_image->fill(Qt::transparent);
QStyleOptionButton option;
+ // we get always passed BUTTONVALUE_DONTKNOW in 'value', and the checked
+ // state is actually CTRL_STATE_PRESSED
+ QStyle::State set = ( nControlState & CTRL_STATE_PRESSED ) ? QStyle::State_On : QStyle::State_Off;
draw( QStyle::PE_IndicatorRadioButton, &option, m_image,
- vclStateValue2StateFlag(nControlState, value) );
+ vclStateValue2StateFlag(nControlState, value) | set );
}
else
{
More information about the Libreoffice-commits
mailing list