diff options
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/control/button.cxx | 10 | ||||
-rw-r--r-- | vcl/source/window/dlgctrl.cxx | 2 |
2 files changed, 8 insertions, 4 deletions
diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx index e9533fec6ff4..829b390a31f7 100644 --- a/vcl/source/control/button.cxx +++ b/vcl/source/control/button.cxx @@ -2150,6 +2150,10 @@ std::vector< VclPtr<RadioButton> > RadioButton::GetRadioButtonGroup(bool bInclud return aGroup; } + std::vector<VclPtr<RadioButton>> aGroup; + if (mbUsesExplicitGroup) + return aGroup; + //old-school // go back to first in group; @@ -2162,7 +2166,6 @@ std::vector< VclPtr<RadioButton> > RadioButton::GetRadioButtonGroup(bool bInclud else break; } - std::vector< VclPtr<RadioButton> > aGroup; // insert radiobuttons up to next group do { @@ -2223,8 +2226,9 @@ void RadioButton::ImplCallClick( bool bGrabFocus, GetFocusFlags nFocusFlags ) mbStateChanged = false; } -RadioButton::RadioButton( vcl::Window* pParent, WinBits nStyle ) : - Button( WindowType::RADIOBUTTON ) +RadioButton::RadioButton(vcl::Window* pParent, bool bUsesExplicitGroup, WinBits nStyle) + : Button(WindowType::RADIOBUTTON) + , mbUsesExplicitGroup(bUsesExplicitGroup) { ImplInitRadioButtonData(); ImplInit( pParent, nStyle ); diff --git a/vcl/source/window/dlgctrl.cxx b/vcl/source/window/dlgctrl.cxx index 45582a7a4e50..1c7fb30f4f99 100644 --- a/vcl/source/window/dlgctrl.cxx +++ b/vcl/source/window/dlgctrl.cxx @@ -600,7 +600,7 @@ namespace { std::vector<VclPtr<RadioButton> > aGroup(pSourceWindow->GetRadioButtonGroup()); - if (aGroup.size() == 1) //only one button in group + if (aGroup.size() < 2) // have to have at last 2 buttons to be a useful group return false; if (bBackward) |