From 221786dda3cb262b47cc0959ca829925b7bec2a2 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 5 Aug 2020 16:41:53 -0400 Subject: [PATCH 01/13] lists: Mention list style classes in docs Document that GtkListView, GtkColumnView and GtkListBox support .rich-list, .navigation-sidebar and .data-table style classes. --- docs/reference/gtk/images/data-table.png | Bin 0 -> 21717 bytes .../gtk/images/navigation-sidebar.png | Bin 0 -> 28865 bytes docs/reference/gtk/images/rich-list.png | Bin 0 -> 8129 bytes docs/reference/gtk/meson.build | 3 +++ docs/reference/gtk/section-list-widget.md | 24 ++++++++++++++++++ gtk/gtkcolumnview.c | 6 ++++- gtk/gtklistbox.c | 14 ++++++---- gtk/gtklistview.c | 6 ++++- 8 files changed, 46 insertions(+), 7 deletions(-) create mode 100644 docs/reference/gtk/images/data-table.png create mode 100644 docs/reference/gtk/images/navigation-sidebar.png create mode 100644 docs/reference/gtk/images/rich-list.png diff --git a/docs/reference/gtk/images/data-table.png b/docs/reference/gtk/images/data-table.png new file mode 100644 index 0000000000000000000000000000000000000000..60eb959bf691ce799f2448155deff677375a5d12 GIT binary patch literal 21717 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�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 literal 0 HcmV?d00001 diff --git a/docs/reference/gtk/images/navigation-sidebar.png b/docs/reference/gtk/images/navigation-sidebar.png new file mode 100644 index 0000000000000000000000000000000000000000..5a9b9945ccfa27bb157dd47cd34e0d545f59adb3 GIT binary patch literal 28865 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 - * columnview[.column-separators] + * columnview[.column-separators][.rich-list][.navigation-sidebar][.data-table] * ├── header * │ ├── * ┊ ┊ @@ -101,6 +101,10 @@ * #GtkColumnView:show-row-separators is set, it will be passed on to the * list view, causing its CSS node to carry the .separators style class. * For rubberband selection, a node with name rubberband is used. + * + * The main columnview node may also carry style classes to select + * the style of [list presentation](ListContainers.html#list-styles): + * .rich-list, .navigation-sidebar or .data-table. */ struct _GtkColumnView diff --git a/gtk/gtklistbox.c b/gtk/gtklistbox.c index fd0a86e4d2..98af2f58fa 100644 --- a/gtk/gtklistbox.c +++ b/gtk/gtklistbox.c @@ -75,14 +75,18 @@ * # CSS nodes * * |[ - * list[.separators] + * list[.separators][.rich-list][.navigation-sidebar] * ╰── row[.activatable] * ]| * - * GtkListBox uses a single CSS node named list. It may carry the .separators style - * class, when the #GtkListBox:show-separators property is set. Each GtkListBoxRow uses - * a single CSS node named row. The row nodes get the .activatable - * style class added when appropriate. + * GtkListBox uses a single CSS node named list. It may carry the .separators + * style class, when the #GtkListBox:show-separators property is set. Each + * GtkListBoxRow uses a single CSS node named row. The row nodes get the + * .activatable style class added when appropriate. + * + * The main list node may also carry style classes to select + * the style of [list presentation](ListContainers.html#list-styles): + * .rich-list, .navigation-sidebar or .data-table. */ typedef struct _GtkListBoxClass GtkListBoxClass; diff --git a/gtk/gtklistview.c b/gtk/gtklistview.c index e0a33b42f4..aa32b46865 100644 --- a/gtk/gtklistview.c +++ b/gtk/gtklistview.c @@ -118,7 +118,7 @@ * # CSS nodes * * |[ - * listview[.separators] + * listview[.separators][.rich-list][.navigation-sidebar][.data-table] * ├── row * │ * ├── row @@ -132,6 +132,10 @@ * .separators style class, when #GtkListView:show-separators property * is set. Each child widget uses a single CSS node named row. For * rubberband selection, a node with name rubberband is used. + * + * The main listview node may also carry style classes to select + * the style of [list presentation](ListContainers.html#list-styles): + * .rich-list, .navigation-sidebar or .data-table. */ typedef struct _ListRow ListRow; From cce3ff6f0467466111cd5461e04635f92c11d678 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 5 Aug 2020 16:42:47 -0400 Subject: [PATCH 02/13] placessidebar: Use the .navigation-sidebar style class --- gtk/gtkplacessidebar.c | 1 + 1 file changed, 1 insertion(+) diff --git a/gtk/gtkplacessidebar.c b/gtk/gtkplacessidebar.c index 148a0aa711..dbe9e81116 100644 --- a/gtk/gtkplacessidebar.c +++ b/gtk/gtkplacessidebar.c @@ -3783,6 +3783,7 @@ gtk_places_sidebar_init (GtkPlacesSidebar *sidebar) /* list box */ sidebar->list_box = gtk_list_box_new (); + gtk_widget_add_css_class (sidebar->list_box, "navigation-sidebar"); gtk_list_box_set_header_func (GTK_LIST_BOX (sidebar->list_box), list_box_header_func, sidebar, NULL); From 0279e1c76ba086acdeabc751741a07e330c681a8 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 5 Aug 2020 16:43:12 -0400 Subject: [PATCH 03/13] inspector: Use the new list style classes Set .rich-list and .data-table on lists, as appropriate. --- gtk/inspector/general.ui | 21 +++++++++++++++++++++ gtk/inspector/object-tree.ui | 3 +++ gtk/inspector/prop-list.ui | 2 +- gtk/inspector/resource-list.ui | 3 +++ gtk/inspector/visual.ui | 8 +++++++- 5 files changed, 35 insertions(+), 2 deletions(-) diff --git a/gtk/inspector/general.ui b/gtk/inspector/general.ui index b8d5455f27..d2b6f00f75 100644 --- a/gtk/inspector/general.ui +++ b/gtk/inspector/general.ui @@ -18,6 +18,9 @@ none + 0 @@ -178,6 +181,9 @@ none + 0 @@ -405,6 +411,9 @@ none + 0 @@ -506,6 +515,9 @@ none + @@ -516,6 +528,9 @@ none + 0 @@ -588,6 +603,9 @@ none + 0 @@ -691,6 +709,9 @@ none + diff --git a/gtk/inspector/object-tree.ui b/gtk/inspector/object-tree.ui index 06e7229e59..7362079eb4 100644 --- a/gtk/inspector/object-tree.ui +++ b/gtk/inspector/object-tree.ui @@ -42,6 +42,9 @@ + Type diff --git a/gtk/inspector/prop-list.ui b/gtk/inspector/prop-list.ui index 15ccf2e2e9..54285d9b61 100644 --- a/gtk/inspector/prop-list.ui +++ b/gtk/inspector/prop-list.ui @@ -16,7 +16,7 @@ diff --git a/gtk/inspector/resource-list.ui b/gtk/inspector/resource-list.ui index e94fb2930a..3c558da420 100644 --- a/gtk/inspector/resource-list.ui +++ b/gtk/inspector/resource-list.ui @@ -51,6 +51,9 @@ + Path diff --git a/gtk/inspector/visual.ui b/gtk/inspector/visual.ui index 223bdb3911..3a04547536 100644 --- a/gtk/inspector/visual.ui +++ b/gtk/inspector/visual.ui @@ -46,7 +46,7 @@ none @@ -415,6 +415,9 @@ none 1 + @@ -600,6 +603,9 @@ none 1 + From a9858c666212febcad3546b4fcc3d83d395c5e2e Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 9 Aug 2020 08:27:56 -0400 Subject: [PATCH 04/13] gtk-demo: Use a style class on the sidebar Use .navigation-sidebar for the main sidebar. --- demos/gtk-demo/main.ui | 3 +++ 1 file changed, 3 insertions(+) diff --git a/demos/gtk-demo/main.ui b/demos/gtk-demo/main.ui index 8ea11ab795..acc789d0ff 100644 --- a/demos/gtk-demo/main.ui +++ b/demos/gtk-demo/main.ui @@ -70,6 +70,9 @@ + /ui/main-listitem.ui From d8753a9fa326dd150032312185663c310d01b3aa Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 9 Aug 2020 08:28:29 -0400 Subject: [PATCH 05/13] gtk-demo: Use style classes in the settings demo Use .navigation-sidebar on the left, and .data-table on the right. --- demos/gtk-demo/listview_settings.c | 4 ++++ demos/gtk-demo/listview_settings.ui | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/demos/gtk-demo/listview_settings.c b/demos/gtk-demo/listview_settings.c index 3bb674117b..9e5b3029d7 100644 --- a/demos/gtk-demo/listview_settings.c +++ b/demos/gtk-demo/listview_settings.c @@ -5,6 +5,10 @@ * It demonstrates how to implement support for trees with GtkListView. * It also shows how to set up sorting and filtering for columns in a * GtkColumnView. + * + * It also demonstrates different styles of list. The tree on the left + * uses the ­.navigation-sidebar style class, the list on the right uses + * the ­.data-table style class. */ #include diff --git a/demos/gtk-demo/listview_settings.ui b/demos/gtk-demo/listview_settings.ui index f428d6b4dd..35c3c79c98 100644 --- a/demos/gtk-demo/listview_settings.ui +++ b/demos/gtk-demo/listview_settings.ui @@ -20,6 +20,9 @@ + 1 + Name From 283fc9d7e4edaae324af2dabcf990e56e1066407 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 10 Aug 2020 20:19:09 -0400 Subject: [PATCH 06/13] gtk-demo: Use style classes in the listbox demo Add a .rich-list style class to the controls demo. --- demos/gtk-demo/listbox2.ui | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/demos/gtk-demo/listbox2.ui b/demos/gtk-demo/listbox2.ui index c4f4700caa..181ee5d4dc 100644 --- a/demos/gtk-demo/listbox2.ui +++ b/demos/gtk-demo/listbox2.ui @@ -36,6 +36,10 @@ none 1 + + @@ -151,6 +155,9 @@ none 1 + From d1b1b5bd9b0687f86c1ddd06d29cd406957125ad Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 9 Aug 2020 11:03:32 -0400 Subject: [PATCH 07/13] widget-factory: Use rich-list style Use the .rich-list style for the listbox on page 2. --- demos/widget-factory/widget-factory.ui | 3 +++ 1 file changed, 3 insertions(+) diff --git a/demos/widget-factory/widget-factory.ui b/demos/widget-factory/widget-factory.ui index 6ee4a6c742..fccbb520d9 100644 --- a/demos/widget-factory/widget-factory.ui +++ b/demos/widget-factory/widget-factory.ui @@ -1624,6 +1624,9 @@ microphone-sensitivity-medium-symbolic none 1 + No rows found From bdb1d87859b9bb0afa0336a840137e5c048c263d Mon Sep 17 00:00:00 2001 From: Jakub Steiner Date: Thu, 6 Aug 2020 11:55:04 +0200 Subject: [PATCH 08/13] Adwaita: style rich-list and data-table - style special list types - add navigation-sidebar too https://gitlab.gnome.org/GNOME/gtk/-/issues/2929 --- gtk/theme/Adwaita/_common.scss | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/gtk/theme/Adwaita/_common.scss b/gtk/theme/Adwaita/_common.scss index cb4ba39680..3f7626e7a7 100644 --- a/gtk/theme/Adwaita/_common.scss +++ b/gtk/theme/Adwaita/_common.scss @@ -3066,7 +3066,7 @@ separator { * Lists * *********/ listview, -list { +list, .rich-list { color: $text_color; background-color: $base_color; border-color: $borders_color; @@ -3120,6 +3120,25 @@ row { } } +/******************************************************** + * Data Tables * + * treeview like tables with individual focusable cells * + * https://gitlab.gnome.org/GNOME/gtk/-/issues/2929 * + ********************************************************/ + + .data-table row:not(:selected) cell editablelabel:not(.editing):focus-within { + outline: 2px solid $focus_border_color; + } + + .data-table row:not(:selected) cell editablelabel.editing:focus-within { + outline: 2px solid $selected_bg_color; + } + + .data-table row:not(:selected) cell editablelabel.editing text selection { + color: $selected_fg_color; + background-color: $selected_bg_color; + } + /********************* * App Notifications * @@ -3361,7 +3380,10 @@ row image.sidebar-icon { opacity: $_placesidebar_icons_opacity; } // dim the sid // see bug #786613 for details // on this oddity -placessidebar { +/* this should be more generic, only using .navigation-sidebar + https://gitlab.gnome.org/GNOME/gtk/-/issues/2929 +*/ +placessidebar, .navigation-sidebar { > scrolledwindow.frame { border-style: none; } row { From b49fd472766ef5c590f13ad3923e1c996988cbb6 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 9 Aug 2020 10:29:39 -0400 Subject: [PATCH 09/13] Adwaita: Fix hover in navigation sidebars The placessidebar gets this from somewhere else, but it wasn't working in the gtk-demo sidebar, so add it explicitly. placessidebar specific styles should be dropped from Adwaita as much as possible, but not doing that here. --- gtk/theme/Adwaita/_common.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gtk/theme/Adwaita/_common.scss b/gtk/theme/Adwaita/_common.scss index 3f7626e7a7..2c30614560 100644 --- a/gtk/theme/Adwaita/_common.scss +++ b/gtk/theme/Adwaita/_common.scss @@ -3410,6 +3410,11 @@ placessidebar, .navigation-sidebar { } } + &:hover { + color: $fg_color; + background-color: $menu_selected_color; + } + &:disabled { color: $insensitive_fg_color; } image.sidebar-icon { From 2b0e9542cba252f76add715d84ee29227c9d359e Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 11 Aug 2020 12:13:29 -0400 Subject: [PATCH 10/13] gtk-demo: take off the makeup Remove all the hardcoded spacing from the listbox demo, so the rich-list styling can take effect. --- demos/gtk-demo/listbox2.ui | 49 ++++++-------------------------------- 1 file changed, 7 insertions(+), 42 deletions(-) diff --git a/demos/gtk-demo/listbox2.ui b/demos/gtk-demo/listbox2.ui index 181ee5d4dc..c2c8a1f1cf 100644 --- a/demos/gtk-demo/listbox2.ui +++ b/demos/gtk-demo/listbox2.ui @@ -44,15 +44,10 @@ - 6 - 6 - 6 - 6 - 12 - 34 Switch + 0 start center 1 @@ -73,15 +68,10 @@ - 6 - 6 - 6 - 6 - 12 - 34 Check + 0 start center 1 @@ -105,15 +95,10 @@ - 6 - 6 - 6 - 6 - 12 - 34 Click here! + 0 start center 1 @@ -164,15 +149,10 @@ 0 - 6 - 6 - 6 - 6 - 12 - 34 Scale + 0 start center 1 @@ -204,15 +184,10 @@ 0 - 6 - 6 - 6 - 6 - 12 - 34 Spinbutton + 0 start center 1 @@ -241,15 +216,10 @@ 0 - 6 - 6 - 6 - 6 - 12 - 34 Dropdown + 0 start center 1 @@ -281,15 +251,10 @@ 0 - 6 - 6 - 6 - 6 - 12 - 34 Entry + 0 start center 1 From df4c57c00131ec86efec66b871c16d474e1e4a4f Mon Sep 17 00:00:00 2001 From: Jakub Steiner Date: Mon, 10 Aug 2020 15:10:12 +0200 Subject: [PATCH 11/13] flatpak: builder options - avoid vulkan from crashing the inspector --- build-aux/flatpak/org.gtk.Demo4.json | 80 +++++++++++-------- build-aux/flatpak/org.gtk.IconBrowser4.json | 79 ++++++++++-------- build-aux/flatpak/org.gtk.WidgetFactory4.json | 9 ++- 3 files changed, 102 insertions(+), 66 deletions(-) diff --git a/build-aux/flatpak/org.gtk.Demo4.json b/build-aux/flatpak/org.gtk.Demo4.json index acc57b3750..9185fada49 100644 --- a/build-aux/flatpak/org.gtk.Demo4.json +++ b/build-aux/flatpak/org.gtk.Demo4.json @@ -1,29 +1,38 @@ { - "app-id": "org.gtk.Demo4", - "runtime": "org.gnome.Platform", - "runtime-version": "master", - "sdk": "org.gnome.Sdk", - "command": "gtk4-demo", - "tags": ["devel", "development", "nightly"], - "desktop-file-name-prefix": "(Development) ", - "finish-args": [ + "app-id" : "org.gtk.Demo4", + "runtime" : "org.gnome.Platform", + "runtime-version" : "master", + "sdk" : "org.gnome.Sdk", + "command" : "gtk4-demo", + "tags" : [ + "devel", + "development", + "nightly" + ], + "desktop-file-name-prefix" : "(Development) ", + "finish-args" : [ "--device=dri", "--share=ipc", "--socket=fallback-x11", "--socket=wayland", - "--talk-name=org.gtk.vfs", "--talk-name=org.gtk.vfs.*" + "--talk-name=org.gtk.vfs", + "--talk-name=org.gtk.vfs.*" ], - "cleanup": [ + "cleanup" : [ "/include", - "/lib/pkgconfig", "/share/pkgconfig", + "/lib/pkgconfig", + "/share/pkgconfig", "/share/aclocal", - "/man", "/share/man", "/share/gtk-doc", - "*.la", ".a", + "/man", + "/share/man", + "/share/gtk-doc", + "*.la", + ".a", "/lib/girepository-1.0", "/share/gir-1.0", "/share/doc" ], - "modules": [ + "modules" : [ { "name" : "wayland", "buildsystem" : "autotools", @@ -39,18 +48,18 @@ ] }, { - "name": "graphene", - "buildsystem": "meson", - "builddir": true, - "config-opts": [ + "name" : "graphene", + "buildsystem" : "meson", + "builddir" : true, + "config-opts" : [ "--libdir=/app/lib", "-Dtests=false", "-Dbenchmarks=false" ], - "sources": [ + "sources" : [ { - "type": "git", - "url": "https://github.com/ebassi/graphene.git" + "type" : "git", + "url" : "https://github.com/ebassi/graphene.git" } ] }, @@ -58,7 +67,7 @@ "name" : "libsass", "buildsystem" : "meson", "builddir" : true, - "config-opts": [ + "config-opts" : [ "--libdir=/app/lib" ], "sources" : [ @@ -73,7 +82,7 @@ "name" : "sassc", "buildsystem" : "meson", "builddir" : true, - "config-opts": [ + "config-opts" : [ "--libdir=/app/lib" ], "sources" : [ @@ -85,18 +94,25 @@ ] }, { - "name": "gtk", - "buildsystem": "meson", - "builddir": true, - "config-opts": [ - "--libdir=/app/lib" + "name" : "gtk", + "buildsystem" : "meson", + "builddir" : true, + "config-opts" : [ + "--libdir=/app/lib", + "-Denable_vulkan=no", + "-Dbuildtype=debugoptimized" ], - "sources": [ + "sources" : [ { - "type": "git", - "url": "https://gitlab.gnome.org/GNOME/gtk.git" + "type" : "git", + "url" : "https://gitlab.gnome.org/GNOME/gtk.git" } ] } - ] + ], + "build-options" : { + "env" : { + "GSK_RENDERER" : "opengl" + } + } } diff --git a/build-aux/flatpak/org.gtk.IconBrowser4.json b/build-aux/flatpak/org.gtk.IconBrowser4.json index cdeaf6f1c9..d6bce54eb8 100644 --- a/build-aux/flatpak/org.gtk.IconBrowser4.json +++ b/build-aux/flatpak/org.gtk.IconBrowser4.json @@ -1,29 +1,38 @@ { - "app-id": "org.gtk.IconBrowser4", - "runtime": "org.gnome.Platform", - "runtime-version": "master", - "sdk": "org.gnome.Sdk", - "command": "gtk4-icon-browser", - "tags": ["devel", "development", "nightly"], - "desktop-file-name-prefix": "(Development) ", - "finish-args": [ + "app-id" : "org.gtk.IconBrowser4", + "runtime" : "org.gnome.Platform", + "runtime-version" : "master", + "sdk" : "org.gnome.Sdk", + "command" : "gtk4-icon-browser", + "tags" : [ + "devel", + "development", + "nightly" + ], + "desktop-file-name-prefix" : "(Development) ", + "finish-args" : [ "--device=dri", "--share=ipc", "--socket=fallback-x11", "--socket=wayland", - "--talk-name=org.gtk.vfs", "--talk-name=org.gtk.vfs.*" + "--talk-name=org.gtk.vfs", + "--talk-name=org.gtk.vfs.*" ], - "cleanup": [ + "cleanup" : [ "/include", - "/lib/pkgconfig", "/share/pkgconfig", + "/lib/pkgconfig", + "/share/pkgconfig", "/share/aclocal", - "/man", "/share/man", "/share/gtk-doc", - "*.la", ".a", + "/man", + "/share/man", + "/share/gtk-doc", + "*.la", + ".a", "/lib/girepository-1.0", "/share/gir-1.0", "/share/doc" ], - "modules": [ + "modules" : [ { "name" : "wayland", "buildsystem" : "autotools", @@ -39,18 +48,18 @@ ] }, { - "name": "graphene", - "buildsystem": "meson", - "builddir": true, - "config-opts": [ + "name" : "graphene", + "buildsystem" : "meson", + "builddir" : true, + "config-opts" : [ "--libdir=/app/lib", "-Dtests=false", "-Dbenchmarks=false" ], - "sources": [ + "sources" : [ { - "type": "git", - "url": "https://github.com/ebassi/graphene.git" + "type" : "git", + "url" : "https://github.com/ebassi/graphene.git" } ] }, @@ -58,7 +67,7 @@ "name" : "libsass", "buildsystem" : "meson", "builddir" : true, - "config-opts": [ + "config-opts" : [ "--libdir=/app/lib" ], "sources" : [ @@ -73,7 +82,7 @@ "name" : "sassc", "buildsystem" : "meson", "builddir" : true, - "config-opts": [ + "config-opts" : [ "--libdir=/app/lib" ], "sources" : [ @@ -85,18 +94,24 @@ ] }, { - "name": "gtk", - "buildsystem": "meson", - "builddir": true, - "config-opts": [ - "--libdir=/app/lib" + "name" : "gtk", + "buildsystem" : "meson", + "builddir" : true, + "config-opts" : [ + "--libdir=/app/lib", + "-Denable_vulkan=no", + "-Dbuildtype=debugoptimized" ], - "sources": [ + "sources" : [ { - "type": "git", - "url": "https://gitlab.gnome.org/GNOME/gtk.git" + "type" : "git", + "url" : "https://gitlab.gnome.org/GNOME/gtk.git" } ] } - ] + ], + "build-options" : { + "env" : { + } + } } diff --git a/build-aux/flatpak/org.gtk.WidgetFactory4.json b/build-aux/flatpak/org.gtk.WidgetFactory4.json index 3a729087cf..dbaee92474 100644 --- a/build-aux/flatpak/org.gtk.WidgetFactory4.json +++ b/build-aux/flatpak/org.gtk.WidgetFactory4.json @@ -98,7 +98,9 @@ "buildsystem" : "meson", "builddir" : true, "config-opts" : [ - "--libdir=/app/lib" + "--libdir=/app/lib", + "-Denable_vulkan=no", + "-Dbuildtype=debugoptimized" ], "sources" : [ { @@ -110,7 +112,10 @@ ], "build-options" : { "env" : { - "DBUS_SESSION_BUS_ADDRESS" : "''" + "DBUS_SESSION_BUS_ADDRESS" : "''", + "GSK_RENDERER" : "opengl", + "GDK_DEBUG" : "vulkan-disable", + "G_ENABLE_DEBUG" : "true" } } } From c5963b960afdef6d1850024349da2b259c4dd4b4 Mon Sep 17 00:00:00 2001 From: Jakub Steiner Date: Thu, 13 Aug 2020 19:40:00 +0200 Subject: [PATCH 12/13] Adwaita: fix focus for .navigation-sidebar --- gtk/theme/Adwaita/_common.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtk/theme/Adwaita/_common.scss b/gtk/theme/Adwaita/_common.scss index 2c30614560..8757c83127 100644 --- a/gtk/theme/Adwaita/_common.scss +++ b/gtk/theme/Adwaita/_common.scss @@ -3399,7 +3399,7 @@ placessidebar, .navigation-sidebar { background-color: desaturate($selected_bg_color,100%); color: $selected_fg_color; - &:focus { + &:focus-visible:focus-within { outline-width: 0; color: $selected_fg_color; background-color: $selected_bg_color; From f4561d3fd5d9702b188a228af2cfbf7c5760c1ed Mon Sep 17 00:00:00 2001 From: Jakub Steiner Date: Thu, 13 Aug 2020 20:11:19 +0200 Subject: [PATCH 13/13] Adwaita: rich-list rows - add whitespace to match the existing look --- gtk/theme/Adwaita/_common.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtk/theme/Adwaita/_common.scss b/gtk/theme/Adwaita/_common.scss index 8757c83127..2e3e94b421 100644 --- a/gtk/theme/Adwaita/_common.scss +++ b/gtk/theme/Adwaita/_common.scss @@ -3077,7 +3077,7 @@ list, .rich-list { border-color: $backdrop_borders_color; } - > row { padding: 2px; } + > row { padding: 18px; } > row.expander { padding: 0px; } > row.expander .row-header { padding: 2px; }