Index: gtk2/common/common.h =================================================================== --- gtk2/common/common.h +++ gtk2/common/common.h @@ -630,7 +630,8 @@ windowBorder, bgndOpacity, menuBgndOpacity, - dlgOpacity; + dlgOpacity, + shadowSize; EStripe stripedProgress; ESliderStyle sliderStyle; EMouseOver coloredMouseOver; Index: gtk2/common/config_file.cpp =================================================================== --- gtk2/common/config_file.cpp +++ gtk2/common/config_file.cpp @@ -1377,6 +1377,8 @@ CFG_READ_INT(bgndOpacity); CFG_READ_INT(menuBgndOpacity); CFG_READ_INT(dlgOpacity); + CFG_READ_INT(shadowSize); + qtcX11SetShadowSize(opts->shadowSize); CFG_READ_SHADE(menuStripe, true, true, &opts->customMenuStripeColor); CFG_READ_APPEARANCE(menuStripeAppearance, APP_ALLOW_BASIC); CFG_READ_SHADE(comboBtn, true, false, &opts->customComboBtnColor); @@ -1749,6 +1751,7 @@ opts->stdSidebarButtons=false; opts->toolbarTabs=false; opts->bgndOpacity = opts->dlgOpacity = opts->menuBgndOpacity = 100; + opts->shadowSize = qtcX11ShadowSize(); opts->gtkComboMenus=false; opts->noBgndGradientApps=nullptr; opts->noBgndOpacityApps=g_strsplit("sonata,totem,vmware,vmplayer",",", -1);; Index: lib/utils/options.h =================================================================== --- lib/utils/options.h +++ lib/utils/options.h @@ -180,6 +180,15 @@ return qtcMax(qtcScrollbarButtonNum(type), 2); } +/** + * shadow size control for X11. + **/ + +void +qtcX11SetShadowSize(int); +int +qtcX11ShadowSize(); + namespace QtCurve { namespace Config { Index: lib/utils/x11helpers.cpp =================================================================== --- lib/utils/x11helpers.cpp +++ lib/utils/x11helpers.cpp @@ -27,6 +27,8 @@ #include "x11qtc.h" #include "x11wrap.h" +static int shadow_size = 30; + #ifdef QTC_ENABLE_X11 #include "log.h" @@ -75,7 +77,6 @@ void qtcX11ShadowInit() { - int shadow_size = 30; int shadow_radius = 4; QtcColor c1 = {0.4, 0.4, 0.4}; QtcColor c2 = {0.2, 0.2, 0.2}; @@ -328,3 +329,22 @@ } #endif + +QTC_EXPORT void +qtcX11SetShadowSize(int size) +{ + if (size >= 0 && size != shadow_size) { + shadow_size = size; +#ifdef QTC_ENABLE_X11 + qtcX11ShadowDestroy(); + qtcX11ShadowInit(); +#endif + } +} + +QTC_EXPORT int +qtcX11ShadowSize() +{ + return shadow_size; +} + Index: qt4/common/common.h =================================================================== --- qt4/common/common.h +++ qt4/common/common.h @@ -805,7 +805,8 @@ windowBorder, bgndOpacity, menuBgndOpacity, - dlgOpacity; + dlgOpacity, + shadowSize; int dwtSettings; int titlebarButtons; TBCols titlebarButtonColors; Index: qt4/common/config_file.cpp =================================================================== --- qt4/common/config_file.cpp +++ qt4/common/config_file.cpp @@ -1303,6 +1303,8 @@ CFG_READ_INT(bgndOpacity); CFG_READ_INT(menuBgndOpacity); CFG_READ_INT(dlgOpacity); + CFG_READ_INT(shadowSize); + qtcX11SetShadowSize(opts->shadowSize); CFG_READ_SHADE(menuStripe, true, true, &opts->customMenuStripeColor); CFG_READ_APPEARANCE(menuStripeAppearance, APP_ALLOW_BASIC); CFG_READ_SHADE(comboBtn, true, false, &opts->customComboBtnColor); @@ -1599,6 +1601,7 @@ opts->stdSidebarButtons=false; opts->toolbarTabs=false; opts->bgndOpacity=opts->dlgOpacity=opts->menuBgndOpacity=100; + opts->shadowSize = qtcX11ShadowSize(); opts->gtkComboMenus=false; opts->customMenubarsColor.setRgb(0, 0, 0); opts->customSlidersColor.setRgb(0, 0, 0); @@ -2319,6 +2322,7 @@ CFG_WRITE_ENTRY_NUM(bgndOpacity); CFG_WRITE_ENTRY_NUM(menuBgndOpacity); CFG_WRITE_ENTRY_NUM(dlgOpacity); + CFG_WRITE_ENTRY_NUM(shadowSize); CFG_WRITE_ENTRY(stdBtnSizes); CFG_WRITE_ENTRY_NUM(titlebarButtons); CFG_WRITE_ENTRY(titlebarIcon); Index: qt4/config/qtcurveconfig.cpp =================================================================== --- qt4/config/qtcurveconfig.cpp +++ qt4/config/qtcurveconfig.cpp @@ -960,6 +960,12 @@ dlgOpacity->setValue(100); menuBgndOpacity->setRange(0, 100, 5); menuBgndOpacity->setValue(100); + dropShadowSize->setRange(0, 100); + dropShadowSize->setSingleStep(1); + dropShadowSize->setValue(qtcX11ShadowSize()); +#ifndef QTC_ENABLE_X11 + dropShadowSize->setEnabled(false); +#endif sliderWidth->setRange(MIN_SLIDER_WIDTH, MAX_SLIDER_WIDTH, 2); sliderWidth->setValue(DEFAULT_SLIDER_WIDTH); @@ -1109,6 +1115,7 @@ connect(dlgOpacity, SIGNAL(valueChanged(int)), SLOT(updateChanged())); connect(menuBgndImage, SIGNAL(currentIndexChanged(int)), SLOT(menuBgndImageChanged())); connect(menuBgndOpacity, SIGNAL(valueChanged(int)), SLOT(updateChanged())); + connect(dropShadowSize, SIGNAL(valueChanged(int)), SLOT(updateChanged())); connect(dwtAppearance, SIGNAL(currentIndexChanged(int)), SLOT(updateChanged())); connect(tooltipAppearance, SIGNAL(currentIndexChanged(int)), SLOT(updateChanged())); connect(dwtBtnAsPerTitleBar, SIGNAL(toggled(bool)), SLOT(updateChanged())); @@ -3082,6 +3089,8 @@ opts.dlgOpacity=dlgOpacity->value(); opts.menuBgndImage.type=(EImageType)menuBgndImage->currentIndex(); opts.menuBgndOpacity=menuBgndOpacity->value(); + opts.shadowSize=dropShadowSize->value(); + qtcX11SetShadowSize(opts.shadowSize); opts.dwtAppearance=(EAppearance)dwtAppearance->currentIndex(); opts.tooltipAppearance=(EAppearance)tooltipAppearance->currentIndex(); opts.xbar=xbar->isChecked(); @@ -3392,6 +3401,7 @@ dlgOpacity->setValue(opts.dlgOpacity); menuBgndImage->setCurrentIndex(opts.menuBgndImage.type); menuBgndOpacity->setValue(opts.menuBgndOpacity); + dropShadowSize->setValue(qtcX11ShadowSize()); dwtAppearance->setCurrentIndex(opts.dwtAppearance); tooltipAppearance->setCurrentIndex(opts.tooltipAppearance); dwtBtnAsPerTitleBar->setChecked(opts.dwtSettings&DWT_BUTTONS_AS_PER_TITLEBAR); @@ -3771,6 +3781,7 @@ dlgOpacity->value()!=opts.dlgOpacity || menuBgndImage->currentIndex()!=opts.menuBgndImage.type || menuBgndOpacity->value()!=opts.menuBgndOpacity || + dropShadowSize->value()!=opts.shadowSize || dwtAppearance->currentIndex()!=opts.dwtAppearance || tooltipAppearance->currentIndex()!=opts.tooltipAppearance || xbar->isChecked()!=opts.xbar || Index: qt4/config/qtcurveconfigbase.ui =================================================================== --- qt4/config/qtcurveconfigbase.ui +++ qt4/config/qtcurveconfigbase.ui @@ -3759,6 +3759,20 @@ + + + + Drop shadow size: + + + + + + + <p>Sets the base value used for determining drop shadow sizes.</p><p>X11 only. + + + Index: qt5/common/common.h =================================================================== --- qt5/common/common.h +++ qt5/common/common.h @@ -798,7 +798,8 @@ windowBorder, bgndOpacity, menuBgndOpacity, - dlgOpacity; + dlgOpacity, + shadowSize; int dwtSettings; int titlebarButtons; TBCols titlebarButtonColors; Index: qt5/common/config_file.cpp =================================================================== --- qt5/common/config_file.cpp +++ qt5/common/config_file.cpp @@ -1308,6 +1308,8 @@ CFG_READ_INT(bgndOpacity); CFG_READ_INT(menuBgndOpacity); CFG_READ_INT(dlgOpacity); + CFG_READ_INT(shadowSize); + qtcX11SetShadowSize(opts->shadowSize); CFG_READ_SHADE(menuStripe, true, true, &opts->customMenuStripeColor); CFG_READ_APPEARANCE(menuStripeAppearance, APP_ALLOW_BASIC); CFG_READ_SHADE(comboBtn, true, false, &opts->customComboBtnColor); @@ -1607,6 +1609,7 @@ opts->stdSidebarButtons=false; opts->toolbarTabs=false; opts->bgndOpacity=opts->dlgOpacity=opts->menuBgndOpacity=100; + opts->shadowSize = qtcX11ShadowSize(); opts->gtkComboMenus=false; opts->customMenubarsColor.setRgb(0, 0, 0); opts->customSlidersColor.setRgb(0, 0, 0); @@ -2330,6 +2333,7 @@ CFG_WRITE_ENTRY_NUM(bgndOpacity); CFG_WRITE_ENTRY_NUM(menuBgndOpacity); CFG_WRITE_ENTRY_NUM(dlgOpacity); + CFG_WRITE_ENTRY_NUM(shadowSize); CFG_WRITE_ENTRY(stdBtnSizes); CFG_WRITE_ENTRY_NUM(titlebarButtons); CFG_WRITE_ENTRY(titlebarIcon); Index: qt5/config/qtcurveconfig.cpp =================================================================== --- qt5/config/qtcurveconfig.cpp +++ qt5/config/qtcurveconfig.cpp @@ -972,6 +972,13 @@ menuBgndOpacity->setRange(0, 100); menuBgndOpacity->setSingleStep(5); menuBgndOpacity->setValue(100); + dropShadowSize->setRange(0, 100); + dropShadowSize->setSingleStep(1); + dropShadowSize->setValue(qtcX11ShadowSize()); +#ifndef QTC_ENABLE_X11 + dropShadowSize->setEnabled(false); +#endif + sliderWidth->setRange(MIN_SLIDER_WIDTH, MAX_SLIDER_WIDTH); sliderWidth->setSingleStep(2); @@ -1000,7 +1007,7 @@ for (auto *w: {lighterPopupMenuBgnd, tabBgnd, menuDelay, menuCloseDelay, crHighlight, expanderHighlight, colorSelTab, highlightFactor, bgndOpacity, - dlgOpacity, menuBgndOpacity, splitterHighlight, gbFactor}) { + dlgOpacity, menuBgndOpacity, splitterHighlight, gbFactor, dropShadowSize}) { connect(qtcSlot(w, valueChanged, (int)), qtcSlot(this, updateChanged)); } @@ -3045,6 +3052,8 @@ opts.dlgOpacity=dlgOpacity->value(); opts.menuBgndImage.type=(EImageType)menuBgndImage->currentIndex(); opts.menuBgndOpacity=menuBgndOpacity->value(); + opts.shadowSize=dropShadowSize->value(); + qtcX11SetShadowSize(opts.shadowSize); opts.dwtAppearance=(EAppearance)dwtAppearance->currentIndex(); opts.tooltipAppearance=(EAppearance)tooltipAppearance->currentIndex(); opts.crColor=(EShade)crColor->currentIndex(); @@ -3357,6 +3366,7 @@ dlgOpacity->setValue(opts.dlgOpacity); menuBgndImage->setCurrentIndex(opts.menuBgndImage.type); menuBgndOpacity->setValue(opts.menuBgndOpacity); + dropShadowSize->setValue(qtcX11ShadowSize()); dwtAppearance->setCurrentIndex(opts.dwtAppearance); tooltipAppearance->setCurrentIndex(opts.tooltipAppearance); dwtBtnAsPerTitleBar->setChecked(opts.dwtSettings&DWT_BUTTONS_AS_PER_TITLEBAR); @@ -3738,6 +3748,7 @@ dlgOpacity->value()!=opts.dlgOpacity || menuBgndImage->currentIndex()!=opts.menuBgndImage.type || menuBgndOpacity->value()!=opts.menuBgndOpacity || + dropShadowSize->value()!=opts.shadowSize || dwtAppearance->currentIndex()!=opts.dwtAppearance || tooltipAppearance->currentIndex()!=opts.tooltipAppearance || crColor->currentIndex()!=opts.crColor || Index: qt5/config/qtcurveconfigbase.ui =================================================================== --- qt5/config/qtcurveconfigbase.ui +++ qt5/config/qtcurveconfigbase.ui @@ -3823,6 +3823,20 @@ + + + + Drop shadow size: + + + + + + + <p>Sets the base value used for determining drop shadow sizes.</p><p>X11 only. + + +