diff --git a/kcontrol/kicker/advancedDialog.cpp b/kcontrol/kicker/advancedDialog.cpp index 29de71df7..d2a87be69 100644 --- a/kcontrol/kicker/advancedDialog.cpp +++ b/kcontrol/kicker/advancedDialog.cpp @@ -63,6 +63,8 @@ advancedDialog::advancedDialog(TQWidget* parent, const char* name) this, TQT_SLOT(changed())); connect(m_advancedWidget->menubarPanelTransparent, TQT_SIGNAL(clicked()), this, TQT_SLOT(changed())); + connect(m_advancedWidget->menubarPanelBlurred, TQT_SIGNAL(clicked()), + this, TQT_SLOT(changed())); connect(m_advancedWidget->kickerResizeHandle, TQT_SIGNAL(clicked()), this, TQT_SLOT(changed())); connect(m_advancedWidget->kickerDeepButtons, TQT_SIGNAL(clicked()), @@ -94,9 +96,11 @@ void advancedDialog::load() m_advancedWidget->tintColorB->setColor( color ); int tintValue = c.readNumEntry( "TintValue", 33 ); m_advancedWidget->tintSlider->setValue( tintValue ); - + bool transparentMenubarPanel = c.readBoolEntry("MenubarPanelTransparent", false); m_advancedWidget->menubarPanelTransparent->setChecked( transparentMenubarPanel ); + bool blurredMenubarPanel = c.readBoolEntry("MenubarPanelBlurred", false); + m_advancedWidget->menubarPanelBlurred->setChecked( blurredMenubarPanel ); bool useKickerResizeHandle = c.readBoolEntry("UseResizeHandle", false); m_advancedWidget->kickerResizeHandle->setChecked( useKickerResizeHandle ); @@ -123,6 +127,8 @@ void advancedDialog::save() m_advancedWidget->tintSlider->value()); c.writeEntry("MenubarPanelTransparent", m_advancedWidget->menubarPanelTransparent->isChecked()); + c.writeEntry("MenubarPanelBlurred", + m_advancedWidget->menubarPanelBlurred->isChecked()); c.writeEntry("UseResizeHandle", m_advancedWidget->kickerResizeHandle->isChecked()); c.writeEntry("ShowDeepButtons", @@ -157,6 +163,8 @@ void advancedDialog::save() m_advancedWidget->tintSlider->value()); extConfig.writeEntry("MenubarPanelTransparent", m_advancedWidget->menubarPanelTransparent->isChecked()); + extConfig.writeEntry("MenubarPanelBlurred", + m_advancedWidget->menubarPanelBlurred->isChecked()); extConfig.writeEntry("UseResizeHandle", m_advancedWidget->kickerResizeHandle->isChecked()); extConfig.writeEntry("ShowDeepButtons", diff --git a/kcontrol/kicker/advancedOptions.ui b/kcontrol/kicker/advancedOptions.ui index 5f0866c3b..c49cf45b2 100644 --- a/kcontrol/kicker/advancedOptions.ui +++ b/kcontrol/kicker/advancedOptions.ui @@ -296,6 +296,17 @@ Normally if you have the desktop's or current application's menu bar displayed in a panel at the top of the screen (MacOS-style), transparency is disabled for this panel to avoid the desktop background clashing with the menu bar. Set this option to make it transparent anyways. + + + menubarPanelBlurred + + + Blur the background when transparency is enabled + + + When checked, the displayed semi-transparent background image will be blurred to reduce eyestrain + + diff --git a/kicker/kicker/core/containerarea.cpp b/kicker/kicker/core/containerarea.cpp index a202c910a..00d781b98 100644 --- a/kicker/kicker/core/containerarea.cpp +++ b/kicker/kicker/core/containerarea.cpp @@ -1446,6 +1446,12 @@ void ContainerArea::setBackground() double tint = double(KickerSettings::tintValue()) / 100; _rootPixmap->setFadeEffect(tint, KickerSettings::tintColor()); + if (KickerSettings::menubarPanelBlurred()) { + _rootPixmap->setBlurEffect(0.0, 4.0); + } + else { + _rootPixmap->setBlurEffect(0.0, 0.0); + } _rootPixmap->start(); _bgSet = true; return; diff --git a/kicker/libkicker/kickerSettings.kcfg b/kicker/libkicker/kickerSettings.kcfg index ec6575a21..635d9c646 100644 --- a/kicker/libkicker/kickerSettings.kcfg +++ b/kicker/libkicker/kickerSettings.kcfg @@ -43,6 +43,12 @@ false + + + When this option is enabled, the panel containing the menubar will blur pseudo-transparent image + false + + When this option is enabled, the panel will display a tiled image as its background