[libadwaita/wip/exalm/remove-the-hack] about-window: Remove the header bar overlay hack
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libadwaita/wip/exalm/remove-the-hack] about-window: Remove the header bar overlay hack
- Date: Sun, 10 Jul 2022 21:50:33 +0000 (UTC)
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]