[libadwaita/wip/exalm/remove-the-hack] about-window: Remove the header bar overlay hack




commit 62d938e84db5b998d89365f70be99325c1a8d156
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Mon Jul 11 01:48:24 2022 +0400

    about-window: Remove the header bar overlay hack
    
    Make the header bar not overlay scrolled window. I hoped apps won't copy
    the old hacky approach. They are actively doing it, so...

 src/adw-about-window.c            | 10 +----
 src/adw-about-window.ui           | 82 +++++++++++++++++++--------------------
 src/stylesheet/widgets/_misc.scss |  9 -----
 3 files changed, 42 insertions(+), 59 deletions(-)
---
diff --git a/src/adw-about-window.c b/src/adw-about-window.c
index 2fdd2670..5fce8a49 100644
--- a/src/adw-about-window.c
+++ b/src/adw-about-window.c
@@ -16,8 +16,6 @@
 #include "adw-preferences-group.h"
 #include "adw-toast-overlay.h"
 
-#define HEADERBAR_STYLE_THRESHOLD 190
-
 /**
  * AdwAboutWindow:
  *
@@ -361,13 +359,7 @@ static char *
 get_headerbar_name (AdwAboutWindow *self,
                     double          value)
 {
-  double threshold = 0;
-
-  if (self->application_icon && *self->application_icon &&
-      self->application_name && *self->application_name)
-    threshold = HEADERBAR_STYLE_THRESHOLD;
-
-  return g_strdup (value > threshold ? "regular" : "top");
+  return g_strdup (value > 0 ? "regular" : "top");
 }
 
 static inline void
diff --git a/src/adw-about-window.ui b/src/adw-about-window.ui
index d3c1ff91..4337fc28 100644
--- a/src/adw-about-window.ui
+++ b/src/adw-about-window.ui
@@ -17,8 +17,47 @@
             <property name="can-unfold">False</property>
             <property name="width-request">360</property>
             <child>
-              <object class="GtkOverlay">
-                <property name="child">
+              <object class="GtkBox">
+                <property name="orientation">vertical</property>
+                <child>
+                  <object class="GtkStack" id="headerbar_stack">
+                    <property name="transition-type">crossfade</property>
+                    <property name="transition-duration">150</property>
+                    <binding name="visible-child-name">
+                      <closure function="get_headerbar_name" type="gchararray">
+                        <lookup name="value" type="GtkAdjustment">
+                          <lookup name="vadjustment">main_scrolled_window</lookup>
+                        </lookup>
+                      </closure>
+                    </binding>
+                    <child>
+                      <object class="GtkStackPage">
+                        <property name="name">top</property>
+                        <property name="child">
+                          <object class="GtkHeaderBar">
+                            <property name="title-widget">
+                              <object class="AdwWindowTitle">
+                                <property name="visible">False</property>
+                              </object>
+                            </property>
+                            <style>
+                              <class name="flat"/>
+                            </style>
+                          </object>
+                        </property>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkStackPage">
+                        <property name="name">regular</property>
+                        <property name="child">
+                          <object class="GtkHeaderBar"/>
+                        </property>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child>
                   <object class="GtkScrolledWindow" id="main_scrolled_window">
                     <property name="hscrollbar-policy">never</property>
                     <property name="propagate-natural-width">True</property>
@@ -322,45 +361,6 @@
                       </object>
                     </property>
                   </object>
-                </property>
-                <child type="overlay">
-                  <object class="GtkStack" id="headerbar_stack">
-                    <property name="transition-type">crossfade</property>
-                    <property name="transition-duration">150</property>
-                    <property name="valign">start</property>
-                    <binding name="visible-child-name">
-                      <closure function="get_headerbar_name" type="gchararray">
-                        <lookup name="value" type="GtkAdjustment">
-                          <lookup name="vadjustment">main_scrolled_window</lookup>
-                        </lookup>
-                      </closure>
-                    </binding>
-                    <child>
-                      <object class="GtkStackPage">
-                        <property name="name">top</property>
-                        <property name="child">
-                          <object class="GtkHeaderBar">
-                            <property name="title-widget">
-                              <object class="AdwWindowTitle">
-                                <property name="visible">False</property>
-                              </object>
-                            </property>
-                            <style>
-                              <class name="flat"/>
-                            </style>
-                          </object>
-                        </property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkStackPage">
-                        <property name="name">regular</property>
-                        <property name="child">
-                          <object class="GtkHeaderBar"/>
-                        </property>
-                      </object>
-                    </child>
-                  </object>
                 </child>
               </object>
             </child>
diff --git a/src/stylesheet/widgets/_misc.scss b/src/stylesheet/widgets/_misc.scss
index 582cdc81..5c398b56 100644
--- a/src/stylesheet/widgets/_misc.scss
+++ b/src/stylesheet/widgets/_misc.scss
@@ -102,17 +102,8 @@ statusbar {
 
 window.about {
   .main-page {
-    scrollbar.vertical {
-      // Keep in sync with header bar height
-      // WARNING: Don't copy into your app. This is a hack which hardcodes pixels. 
-      margin-top: 47px;
-      background: none;
-      box-shadow: none;
-    }
-
     > viewport > clamp > box {
       margin: 12px;
-      margin-top: 59px; // 12px + 47px
       border-spacing: 6px;
 
       > box {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]