[Libreoffice-commits] core.git: Branch 'libreoffice-6-3' - vcl/source

Justin Luth (via logerrit) logerrit at kemper.freedesktop.org
Mon Jul 15 12:56:15 UTC 2019


 vcl/source/control/button.cxx |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

New commits:
commit 4109dfff009f017e8994ea0a57119e79291ca2c8
Author:     Justin Luth <justin_luth at sil.org>
AuthorDate: Sat Jul 6 07:27:16 2019 +0300
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon Jul 15 14:55:29 2019 +0200

    Revert "tdf#108687 vcl: always enable tabstop on radio buttons"
    
    This reverts LO 6.2 commit f2cd1c3c7cce2699d1341f726fc90cf30b52612c
    because it caused regression tdf#125609.
    
    There are places where radio-groups are not properly defined,
    and things are a big mess.
    -about 4 levels of radio buttons are created.
    -the last level does not do grouping properly.
    -the tab order is defined too early, before all
     the controls are fully made.
    -this code is repeated for EVERY control added.
    
    Already reverted in 6.2, this also reverts 6.3
    because after looking again I don't see any way
    out of this, short of rewriting all of the old code.
    
    This can be a fairly serious regression, because the value
    of the radio buttons can change just by tabbing around.
    
    Leaving the commit in place for master, so that I can give it
    one more try before completely giving up.
    
    Change-Id: Ic62fd7bb50e67647703cba3796f6d11ffb797eb5
    Reviewed-on: https://gerrit.libreoffice.org/75157
    Tested-by: Jenkins
    Reviewed-by: Justin Luth <justin_luth at sil.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx
index 8469407dfc57..1aa58877ad6d 100644
--- a/vcl/source/control/button.cxx
+++ b/vcl/source/control/button.cxx
@@ -1856,7 +1856,12 @@ WinBits RadioButton::ImplInitStyle( const vcl::Window* pPrevWindow, WinBits nSty
          (!pPrevWindow || (pPrevWindow->GetType() != WindowType::RADIOBUTTON)) )
         nStyle |= WB_GROUP;
     if ( !(nStyle & WB_NOTABSTOP) )
-        nStyle |= WB_TABSTOP;
+    {
+        if ( IsChecked() )
+            nStyle |= WB_TABSTOP;
+        else
+            nStyle &= ~WB_TABSTOP;
+    }
 
     if ( IsChecked() && IsRadioCheckEnabled() )
         ImplUncheckAllOther();


More information about the Libreoffice-commits mailing list