diff options
Diffstat (limited to 'tdefx')
-rw-r--r-- | tdefx/kstyle.cpp | 21 | ||||
-rw-r--r-- | tdefx/kstyle.h | 2 |
2 files changed, 15 insertions, 8 deletions
diff --git a/tdefx/kstyle.cpp b/tdefx/kstyle.cpp index a983bd1d2..d95d98281 100644 --- a/tdefx/kstyle.cpp +++ b/tdefx/kstyle.cpp @@ -302,15 +302,22 @@ void KStyle::unPolish( TQStyleControlElementData ceData, ControlElementFlags ele // Style changes (should) always re-polish popups. -void KStyle::polishPopupMenu( TQPopupMenu* p ) +void KStyle::polishPopupMenu( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr ) { - if (!p->testWState( WState_Polished )) - p->setCheckable(true); + if ( !(ceData.windowState & WState_Polished ) ) { + widgetActionRequest(ceData, elementFlags, ptr, WAR_SetCheckable); + } - // Install transparency handler if the effect is enabled. - if ( d->menuHandler && - (strcmp(p->name(), "tear off menu") != 0)) - p->installEventFilter(d->menuHandler); + if (ceData.widgetObjectTypes.contains(TQWIDGET_OBJECT_NAME_STRING)) { + TQWidget* widget = reinterpret_cast<TQWidget*>(ptr); + TQPopupMenu *p = dynamic_cast<TQPopupMenu*>(widget); + if (p) { + // Install transparency handler if the effect is enabled. + if ( d->menuHandler && (strcmp(p->name(), "tear off menu") != 0)) { + p->installEventFilter(d->menuHandler); + } + } + } } diff --git a/tdefx/kstyle.h b/tdefx/kstyle.h index c9edd25ab..0d36678cf 100644 --- a/tdefx/kstyle.h +++ b/tdefx/kstyle.h @@ -288,7 +288,7 @@ class TDEFX_EXPORT KStyle: public TQCommonStyle void polish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * ); void unPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * ); - void polishPopupMenu( TQPopupMenu* ); + void polishPopupMenu( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr ); void tqdrawPrimitive( TQ_PrimitiveElement pe, TQPainter* p, |