Index: scribus/ui/propertiespalette.cpp =================================================================== --- scribus/ui/propertiespalette.cpp (Revision 25886) +++ scribus/ui/propertiespalette.cpp (Arbeitskopie) @@ -356,12 +356,13 @@ if (!m_haveDoc || !m_ScMW || m_ScMW->scriptIsRunning()) return; - enablePalettes(false); +// enablePalettes(false); PageItem* currItem = currentItemFromSelection(); if (m_doc->m_Selection->count() > 1) { scXYZ->setEnabled(true); + scShape->setEnabled(false); scShadow->setEnabled(true); scLine->setEnabled(true); scColor->setEnabled(true); @@ -377,6 +378,12 @@ case -1: m_haveItem = false; colorPalette->showGradient(0); + scXYZ->setEnabled(false); + scShape->setEnabled(false); + scLine->setEnabled(false); + scColor->setEnabled(false); + scTransparency->setEnabled(false); + scShadow->setEnabled(false); break; case PageItem::ImageFrame: case PageItem::LatexFrame: @@ -386,16 +393,24 @@ scXYZ->setEnabled(true); scShadow->setEnabled(true); scShape->setEnabled(true); + scLine->setEnabled(false); scColor->setEnabled(true); + scTransparency->setEnabled(false); } else { - enablePalettes(true); + scXYZ->setEnabled(true); + scShadow->setEnabled(true); + scShape->setEnabled(true); + scLine->setEnabled(true); + scColor->setEnabled(true); + scTransparency->setEnabled(true); } break; case PageItem::Line: scXYZ->setEnabled(true); scShadow->setEnabled(true); + scShape->setEnabled(false); scLine->setEnabled(true); scColor->setEnabled(true); scTransparency->setEnabled(true); @@ -412,7 +427,12 @@ case PageItem::PolyLine: case PageItem::Spiral: case PageItem::PathText: - enablePalettes(true); + scXYZ->setEnabled(true); + scShadow->setEnabled(true); + scShape->setEnabled(true); + scLine->setEnabled(true); + scColor->setEnabled(true); + scTransparency->setEnabled(true); break; } } @@ -424,6 +444,7 @@ { setCurrentItem(currItem); } + } void PropertiesPalette::unitChange() Index: scribus/ui/scrspinbox.cpp =================================================================== --- scribus/ui/scrspinbox.cpp (Revision 25886) +++ scribus/ui/scrspinbox.cpp (Arbeitskopie) @@ -28,11 +28,11 @@ ScrSpinBox::ScrSpinBox(QWidget *parent, int unitIndex) : QDoubleSpinBox(parent) { init(unitIndex); + setFocusPolicy(Qt::StrongFocus); } -ScrSpinBox::ScrSpinBox(double minValue, double maxValue, QWidget *pa, int unitIndex) : QDoubleSpinBox(pa) +ScrSpinBox::ScrSpinBox(double minValue, double maxValue, QWidget *pa, int unitIndex) : ScrSpinBox(pa, unitIndex) { - init(unitIndex); setMinimum(minValue); setMaximum(maxValue); } @@ -333,9 +335,9 @@ if (event->type() == QEvent::Wheel) { - //If read only don't spin - if (isReadOnly()) - return false; + // If read only don't spin OR avoid value changes if widget has no focus + if (isReadOnly() || !hasFocus()) + return true; auto* wheelEvent = dynamic_cast(event); bool shiftB = wheelEvent->modifiers() & Qt::ShiftModifier; bool altB = wheelEvent->modifiers() & Qt::AltModifier;