[gnome-builder/wip/gtk4-port] libide/greeter: use undershoot shadow instead of separator



commit 7c8c85046ed5a4719cf04296b90f9eada3b2607e
Author: Christian Hergert <chergert redhat com>
Date:   Tue May 17 12:45:11 2022 -0700

    libide/greeter: use undershoot shadow instead of separator
    
    Related #1674

 src/libide/greeter/ide-greeter-workspace.c  | 25 -------------------------
 src/libide/greeter/ide-greeter-workspace.ui |  8 ++------
 src/libide/gui/style.css                    |  4 ++--
 3 files changed, 4 insertions(+), 33 deletions(-)
---
diff --git a/src/libide/greeter/ide-greeter-workspace.c b/src/libide/greeter/ide-greeter-workspace.c
index 22e7a2218..e62cf9d58 100644
--- a/src/libide/greeter/ide-greeter-workspace.c
+++ b/src/libide/greeter/ide-greeter-workspace.c
@@ -65,8 +65,6 @@ struct _IdeGreeterWorkspace
   AdwWindowTitle           *title;
   IdeGreeterButtonsSection *buttons_section;
   AdwStatusPage            *empty_state;
-  GtkScrolledWindow        *scroller;
-  GtkSeparator             *separator;
 
   guint                     selection_mode : 1;
 };
@@ -629,19 +627,6 @@ ide_greeter_workspace_page_action (GtkWidget  *widget,
   IDE_EXIT;
 }
 
-static void
-on_scroller_value_changed_cb (IdeGreeterWorkspace *self,
-                              GtkAdjustment       *adj)
-{
-  g_assert (IDE_IS_GREETER_WORKSPACE (self));
-  g_assert (GTK_IS_ADJUSTMENT (adj));
-
-  if (gtk_adjustment_get_value (adj) > .0)
-    gtk_widget_remove_css_class (GTK_WIDGET (self->separator), "transparent");
-  else
-    gtk_widget_add_css_class (GTK_WIDGET (self->separator), "transparent");
-}
-
 static void
 ide_greeter_workspace_dispose (GObject *object)
 {
@@ -746,11 +731,9 @@ ide_greeter_workspace_class_init (IdeGreeterWorkspaceClass *klass)
   gtk_widget_class_bind_template_child (widget_class, IdeGreeterWorkspace, left_box);
   gtk_widget_class_bind_template_child (widget_class, IdeGreeterWorkspace, pages);
   gtk_widget_class_bind_template_child (widget_class, IdeGreeterWorkspace, projects_action_bar);
-  gtk_widget_class_bind_template_child (widget_class, IdeGreeterWorkspace, scroller);
   gtk_widget_class_bind_template_child (widget_class, IdeGreeterWorkspace, search_entry);
   gtk_widget_class_bind_template_child (widget_class, IdeGreeterWorkspace, sections);
   gtk_widget_class_bind_template_child (widget_class, IdeGreeterWorkspace, select_button);
-  gtk_widget_class_bind_template_child (widget_class, IdeGreeterWorkspace, separator);
   gtk_widget_class_bind_template_child (widget_class, IdeGreeterWorkspace, title);
   gtk_widget_class_bind_template_callback (widget_class, stack_notify_visible_child_cb);
 
@@ -774,18 +757,10 @@ ide_greeter_workspace_init (IdeGreeterWorkspace *self)
   };
 
   g_autoptr(GPropertyAction) selection_action = NULL;
-  GtkAdjustment *vadj;
   GtkGesture *gesture;
 
   gtk_widget_init_template (GTK_WIDGET (self));
 
-  vadj = gtk_scrolled_window_get_vadjustment (self->scroller);
-  g_signal_connect_object (vadj,
-                           "value-changed",
-                           G_CALLBACK (on_scroller_value_changed_cb),
-                           self,
-                           G_CONNECT_SWAPPED);
-
   selection_action = g_property_action_new ("selection-mode", G_OBJECT (self), "selection-mode");
   g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (selection_action));
   g_action_map_add_action_entries (G_ACTION_MAP (self), actions, G_N_ELEMENTS (actions), self);
diff --git a/src/libide/greeter/ide-greeter-workspace.ui b/src/libide/greeter/ide-greeter-workspace.ui
index d13b2270f..d479e2a8e 100644
--- a/src/libide/greeter/ide-greeter-workspace.ui
+++ b/src/libide/greeter/ide-greeter-workspace.ui
@@ -59,14 +59,10 @@
               <object class="GtkBox">
                 <property name="orientation">vertical</property>
                 <child>
-                  <object class="GtkSeparator" id="separator">
+                  <object class="GtkScrolledWindow" id="scroller">
                     <style>
-                      <class name="transparent"/>
+                      <class name="shadow-when-scroll"/>
                     </style>
-                  </object>
-                </child>
-                <child>
-                  <object class="GtkScrolledWindow" id="scroller">
                     <property name="vexpand">true</property>
                     <property name="hscrollbar-policy">never</property>
                     <child>
diff --git a/src/libide/gui/style.css b/src/libide/gui/style.css
index 3fce28b81..0105575d8 100644
--- a/src/libide/gui/style.css
+++ b/src/libide/gui/style.css
@@ -63,8 +63,8 @@ notificationstack button {
   background: none;
 }
 
-separator.transparent {
-  opacity: 0;
+scrolledwindow.shadow-when-scroll undershoot.top {
+  box-shadow: inset 0px 5px 14px -14px rgba(0,0,0,.9);
 }
 
 button.pill.small {


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