include/svx/AccessibilityCheckDialog.hxx       |    1 +
 svx/source/dialog/AccessibilityCheckDialog.cxx |   12 +++++++++++-
 svx/uiconfig/ui/accessibilitycheckdialog.ui    |    4 +++-
 svx/uiconfig/ui/accessibilitycheckentry.ui     |   16 +++++++++-------
 4 files changed, 24 insertions(+), 9 deletions(-)

New commits:
commit 4a88c5840e022ca896ce26ce1dfde2db7fb7df29
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Thu Mar 2 17:15:06 2023 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Mon Mar 6 16:54:48 2023 +0000

    tdf#148776 for scrolling set step size as height of a row
    
    similar to FontFeaturesDialog.
    
    FWIW gtk's viewport implementation automatically overwrites the step
    size to be 10% of the visible height (and page size of 90% of the
    visible height)
    
    Change-Id: If356724a47b0a10069f129bed4a40cfdee57bfa8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148138
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/include/svx/AccessibilityCheckDialog.hxx 
b/include/svx/AccessibilityCheckDialog.hxx
index f2e3c567351b..65b100064f87 100644
--- a/include/svx/AccessibilityCheckDialog.hxx
+++ b/include/svx/AccessibilityCheckDialog.hxx
@@ -45,6 +45,7 @@ private:
     std::vector<std::unique_ptr<AccessibilityCheckEntry>> 
m_aAccessibilityCheckEntries;
 
     // Controls
+    std::unique_ptr<weld::ScrolledWindow> m_xScrolledWindow;
     std::unique_ptr<weld::Box> m_xAccessibilityCheckBox;
     std::unique_ptr<weld::Button> m_xRescanBtn;
 
diff --git a/svx/source/dialog/AccessibilityCheckDialog.cxx 
b/svx/source/dialog/AccessibilityCheckDialog.cxx
index ac34f7306da4..010f3af0bb81 100644
--- a/svx/source/dialog/AccessibilityCheckDialog.cxx
+++ b/svx/source/dialog/AccessibilityCheckDialog.cxx
@@ -25,9 +25,10 @@ AccessibilityCheckEntry::AccessibilityCheckEntry(
     , m_pAccessibilityIssue(rAccessibilityIssue)
 {
     m_xLabel->set_label(m_pAccessibilityIssue->m_aIssueText);
+    // lock in the height as including the button so all rows are the same 
height
+    m_xContainer->set_size_request(-1, 
m_xContainer->get_preferred_size().Height());
     m_xGotoButton->set_visible(m_pAccessibilityIssue->canGotoIssue());
     m_xGotoButton->connect_clicked(LINK(this, AccessibilityCheckEntry, 
GotoButtonClicked));
-    m_xContainer->show();
 }
 
 IMPL_LINK_NOARG(AccessibilityCheckEntry, GotoButtonClicked, weld::Button&, 
void)
@@ -42,6 +43,7 @@ AccessibilityCheckDialog::AccessibilityCheckDialog(
                               "AccessibilityCheckDialog")
     , m_aIssueCollection(std::move(aIssueCollection))
     , m_getIssueCollection(getIssueCollection)
+    , m_xScrolledWindow(m_xBuilder->weld_scrolled_window("scrolledwindow"))
     , m_xAccessibilityCheckBox(m_xBuilder->weld_box("accessibilityCheckBox"))
     , m_xRescanBtn(m_xBuilder->weld_button("rescan"))
 {
@@ -62,6 +64,14 @@ void AccessibilityCheckDialog::populateIssues()
         m_xAccessibilityCheckBox->reorder_child(xEntry->get_widget(), i++);
         m_aAccessibilityCheckEntries.push_back(std::move(xEntry));
     }
+
+    if (!m_aAccessibilityCheckEntries.empty())
+    {
+        auto nRowHeight
+            = 
m_aAccessibilityCheckEntries.back()->get_widget()->get_preferred_size().Height();
+        // 6 is the spacing set in the .ui
+        m_xScrolledWindow->vadjustment_set_step_increment(nRowHeight + 6);
+    }
 }
 
 IMPL_LINK_NOARG(AccessibilityCheckDialog, RescanButtonClicked, weld::Button&, 
void)
diff --git a/svx/uiconfig/ui/accessibilitycheckdialog.ui 
b/svx/uiconfig/ui/accessibilitycheckdialog.ui
index fecab2fbb31f..b19a1e35e738 100644
--- a/svx/uiconfig/ui/accessibilitycheckdialog.ui
+++ b/svx/uiconfig/ui/accessibilitycheckdialog.ui
@@ -97,7 +97,7 @@
             <property name="vexpand">True</property>
             <property name="orientation">vertical</property>
             <child>
-              <object class="GtkScrolledWindow">
+              <object class="GtkScrolledWindow" id="scrolledwindow">
                 <property name="visible">True</property>
                 <property name="can-focus">True</property>
                 <property name="hexpand">True</property>
@@ -114,6 +114,8 @@
                         <property name="visible">True</property>
                         <property name="can-focus">False</property>
                         <property name="orientation">vertical</property>
+                        <property name="spacing">6</property>
+                        <property name="homogeneous">True</property>
                         <child>
                           <placeholder/>
                         </child>
diff --git a/svx/uiconfig/ui/accessibilitycheckentry.ui 
b/svx/uiconfig/ui/accessibilitycheckentry.ui
index 0fe33322b11f..3d60179f16b5 100644
--- a/svx/uiconfig/ui/accessibilitycheckentry.ui
+++ b/svx/uiconfig/ui/accessibilitycheckentry.ui
@@ -1,20 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.40.0 -->
 <interface domain="svx">
   <requires lib="gtk+" version="3.20"/>
   <object class="GtkBox" id="accessibilityCheckEntryBox">
     <property name="visible">True</property>
-    <property name="can_focus">False</property>
-    <property name="border_width">3</property>
+    <property name="can-focus">False</property>
+    <property name="margin-start">3</property>
+    <property name="margin-end">3</property>
+    <property name="spacing">6</property>
     <child>
       <object class="GtkLabel" id="accessibilityCheckEntryLabel">
         <property name="visible">True</property>
-        <property name="can_focus">False</property>
+        <property name="can-focus">False</property>
         <property name="hexpand">True</property>
         <property name="selectable">True</property>
         <property name="xalign">0</property>
         <child internal-child="accessible">
-          <object class="AtkObject">
+          <object class="AtkObject" 
id="accessibilityCheckEntryLabel-atkobject">
             <property name="AtkObject::accessible-role">static</property>
           </object>
         </child>
@@ -29,8 +31,8 @@
       <object class="GtkButton" id="accessibilityCheckEntryGotoButton">
         <property name="label" translatable="yes" 
context="accessibilitycheckentry|accessibilityCheckEntryGotoButton">Go to 
Issue</property>
         <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="receives_default">True</property>
+        <property name="can-focus">True</property>
+        <property name="receives-default">True</property>
       </object>
       <packing>
         <property name="expand">False</property>

Reply via email to