Browse Source

components: Replace Spinner with AdwSpinner

fractal-9
Kévin Commaille 2 years ago
parent
commit
4a26fca3b7
No known key found for this signature in database
GPG Key ID: C971D9DBC9D678D
  1. 5
      data/resources/style.css
  2. 1
      po/POTFILES.in
  3. 4
      src/account_chooser_dialog/account_row.rs
  4. 4
      src/account_chooser_dialog/account_row.ui
  5. 6
      src/account_switcher/session_item.ui
  6. 8
      src/components/action_button.rs
  7. 7
      src/components/action_button.ui
  8. 4
      src/components/dialogs/join_room.rs
  9. 5
      src/components/dialogs/join_room.ui
  10. 4
      src/components/dialogs/user_profile.rs
  11. 5
      src/components/dialogs/user_profile.ui
  12. 4
      src/components/loading/bin.rs
  13. 2
      src/components/loading/bin.ui
  14. 3
      src/components/loading/mod.rs
  15. 71
      src/components/loading/spinner.rs
  16. 3
      src/components/media/content_viewer.rs
  17. 9
      src/components/media/content_viewer.ui
  18. 8
      src/components/rows/switch_loading_row.rs
  19. 2
      src/components/rows/switch_loading_row.ui
  20. 10
      src/login/session_setup_view.ui
  21. 13
      src/session/view/account_settings/notifications_page.rs
  22. 8
      src/session/view/account_settings/user_sessions_page/mod.ui
  23. 3
      src/session/view/content/explore/mod.rs
  24. 10
      src/session/view/content/explore/mod.ui
  25. 6
      src/session/view/content/explore/public_room_row.rs
  26. 9
      src/session/view/content/room_details/history_viewer/audio.ui
  27. 9
      src/session/view/content/room_details/history_viewer/file.ui
  28. 9
      src/session/view/content/room_details/history_viewer/visual_media.ui
  29. 4
      src/session/view/content/room_details/invite_subpage/mod.rs
  30. 8
      src/session/view/content/room_details/invite_subpage/mod.ui
  31. 11
      src/session/view/content/room_history/item_row.rs
  32. 4
      src/session/view/content/room_history/message_row/audio.rs
  33. 5
      src/session/view/content/room_history/message_row/audio.ui
  34. 5
      src/session/view/content/room_history/message_row/message_state_stack.ui
  35. 4
      src/session/view/content/room_history/message_row/visual_media.rs
  36. 4
      src/session/view/content/room_history/message_row/visual_media.ui
  37. 4
      src/session/view/content/room_history/mod.rs
  38. 9
      src/session/view/content/room_history/mod.ui
  39. 8
      src/session/view/create_dm_dialog/mod.ui
  40. 4
      src/window.rs
  41. 10
      src/window.ui

5
data/resources/style.css

@ -255,11 +255,6 @@ editable-avatar .cutout {
padding: 2px;
}
spinner-wrapper.large spinner {
min-width: 32px;
min-height: 32px;
}
.substring-entry-row .header .subtitle {
margin-top: 4px;
margin-bottom: -4px;

1
po/POTFILES.in

@ -23,7 +23,6 @@ src/components/dialogs/join_room.ui
src/components/dialogs/message_dialogs.rs
src/components/dialogs/user_profile.ui
src/components/offline_banner.rs
src/components/loading/spinner.rs
src/components/media/content_viewer.rs
src/components/media/location_viewer.rs
src/components/reaction_chooser.ui

4
src/account_chooser_dialog/account_row.rs

@ -1,7 +1,7 @@
use gtk::{self, glib, prelude::*, subclass::prelude::*, CompositeTemplate};
use crate::{
components::{Avatar, AvatarData, Spinner},
components::{Avatar, AvatarData},
prelude::*,
session::model::Session,
session_list::{FailedSession, SessionInfo},
@ -41,8 +41,6 @@ mod imp {
type ParentType = gtk::ListBoxRow;
fn class_init(klass: &mut Self::Class) {
Spinner::ensure_type();
Self::bind_template(klass);
}

4
src/account_chooser_dialog/account_row.ui

@ -38,7 +38,9 @@
<object class="GtkStackPage">
<property name="name">loading</property>
<property name="child">
<object class="Spinner"/>
<object class="AdwSpinner">
<property name="width-request">24</property>
</object>
</property>
</object>
</child>

6
src/account_switcher/session_item.ui

@ -41,7 +41,11 @@
<object class="GtkStackPage">
<property name="name">loading</property>
<property name="child">
<object class="Spinner"/>
<object class="AdwSpinner">
<property name="valign">center</property>
<property name="halign">center</property>
<property name="height-request">24</property>
</object>
</property>
</object>
</child>

8
src/components/action_button.rs

@ -1,7 +1,5 @@
use adw::subclass::prelude::*;
use gtk::{glib, glib::closure_local, prelude::*, CompositeTemplate};
use super::Spinner;
use adw::{prelude::*, subclass::prelude::*};
use gtk::{glib, glib::closure_local, CompositeTemplate};
#[derive(Debug, Default, Hash, Eq, PartialEq, Clone, Copy, glib::Enum)]
#[repr(u32)]
@ -67,8 +65,6 @@ mod imp {
pub stack: TemplateChild<gtk::Stack>,
#[template_child]
pub button_default: TemplateChild<gtk::Button>,
#[template_child]
pub spinner: TemplateChild<Spinner>,
}
#[glib::object_subclass]

7
src/components/action_button.ui

@ -72,9 +72,12 @@
<property name="can-target">false</property>
<property name="valign">center</property>
<child>
<object class="Spinner" id="spinner">
<object class="AdwSpinner">
<property name="valign">center</property>
</object>
<property name="halign">center</property>
<property name="height-request">20</property>
<property name="width-request">20</property>
</object>
</child>
</object>
</property>

4
src/components/dialogs/join_room.rs

@ -4,7 +4,7 @@ use gtk::{glib, glib::clone, CompositeTemplate};
use super::ToastableDialog;
use crate::{
components::{Avatar, LoadingButton, Spinner},
components::{Avatar, LoadingButton},
i18n::ngettext_f,
prelude::*,
session::model::{RemoteRoom, Session},
@ -69,8 +69,6 @@ mod imp {
type ParentType = ToastableDialog;
fn class_init(klass: &mut Self::Class) {
Spinner::ensure_type();
Self::bind_template(klass);
Self::Type::bind_template_callbacks(klass);
}

5
src/components/dialogs/join_room.ui

@ -110,10 +110,7 @@
<object class="GtkStackPage">
<property name="name">loading</property>
<property name="child">
<object class="Spinner">
<property name="valign">center</property>
<property name="halign">center</property>
</object>
<object class="AdwSpinner" />
</property>
</object>
</child>

4
src/components/dialogs/user_profile.rs

@ -4,7 +4,7 @@ use ruma::OwnedUserId;
use super::ToastableDialog;
use crate::{
components::{Spinner, UserPage},
components::UserPage,
prelude::*,
session::model::{Member, RemoteUser, Session, User},
spawn,
@ -31,8 +31,6 @@ mod imp {
type ParentType = ToastableDialog;
fn class_init(klass: &mut Self::Class) {
Spinner::ensure_type();
Self::bind_template(klass);
Self::Type::bind_template_callbacks(klass);
}

5
src/components/dialogs/user_profile.ui

@ -9,10 +9,7 @@
<object class="GtkStackPage">
<property name="name">loading</property>
<property name="child">
<object class="Spinner">
<property name="valign">center</property>
<property name="halign">center</property>
</object>
<object class="AdwSpinner" />
</property>
</object>
</child>

4
src/components/loading/bin.rs

@ -1,8 +1,6 @@
use adw::prelude::*;
use gtk::{glib, subclass::prelude::*, CompositeTemplate};
use super::Spinner;
mod imp {
use std::marker::PhantomData;
@ -35,8 +33,6 @@ mod imp {
fn class_init(klass: &mut Self::Class) {
klass.set_layout_manager_type::<gtk::BinLayout>();
Spinner::ensure_type();
Self::bind_template(klass);
}

2
src/components/loading/bin.ui

@ -16,7 +16,7 @@
<object class="GtkStackPage">
<property name="name">loading</property>
<property name="child">
<object class="Spinner">
<object class="AdwSpinner">
<property name="valign">center</property>
<property name="halign">center</property>
</object>

3
src/components/loading/mod.rs

@ -1,5 +1,4 @@
mod bin;
mod button;
mod spinner;
pub use self::{bin::LoadingBin, button::LoadingButton, spinner::Spinner};
pub use self::{bin::LoadingBin, button::LoadingButton};

71
src/components/loading/spinner.rs

@ -1,71 +0,0 @@
use gettextrs::gettext;
use gtk::{glib, prelude::*, subclass::prelude::*};
mod imp {
use super::*;
#[derive(Debug, Default)]
pub struct Spinner {
inner: gtk::Spinner,
}
#[glib::object_subclass]
impl ObjectSubclass for Spinner {
const NAME: &'static str = "Spinner";
type Type = super::Spinner;
type ParentType = gtk::Widget;
fn class_init(klass: &mut Self::Class) {
klass.set_layout_manager_type::<gtk::BinLayout>();
klass.set_css_name("spinner-wrapper");
klass.set_accessible_role(gtk::AccessibleRole::Status);
}
}
impl ObjectImpl for Spinner {
fn constructed(&self) {
self.parent_constructed();
let obj = self.obj();
self.inner.set_parent(&*obj);
obj.update_property(&[gtk::accessible::Property::Label(&gettext("Loading"))])
}
fn dispose(&self) {
self.inner.unparent();
}
}
impl WidgetImpl for Spinner {
fn map(&self) {
self.parent_map();
self.inner.start();
}
fn unmap(&self) {
self.inner.stop();
self.parent_unmap();
}
}
impl AccessibleImpl for Spinner {
fn first_accessible_child(&self) -> Option<gtk::Accessible> {
// Hide the children in the a11y tree.
None
}
}
}
glib::wrapper! {
/// A spinner.
///
/// This is a wrapper around `GtkSpinner` that makes sure the spinner is stopped when it is not mapped.
pub struct Spinner(ObjectSubclass<imp::Spinner>)
@extends gtk::Widget, @implements gtk::Accessible;
}
impl Default for Spinner {
fn default() -> Self {
glib::Object::new()
}
}

3
src/components/media/content_viewer.rs

@ -6,7 +6,6 @@ use tracing::warn;
use super::{AnimatedImagePaintable, AudioPlayer, LocationViewer};
use crate::{
components::Spinner,
spawn,
utils::{media::image::load_image, CountedRef},
};
@ -59,8 +58,6 @@ mod imp {
pub viewer: TemplateChild<adw::Bin>,
#[template_child]
pub fallback: TemplateChild<adw::StatusPage>,
#[template_child]
pub spinner: TemplateChild<Spinner>,
/// Whether to play the media content automatically.
#[property(get, construct_only)]
pub autoplay: Cell<bool>,

9
src/components/media/content_viewer.ui

@ -7,14 +7,7 @@
<object class="GtkStackPage">
<property name="name">loading</property>
<property name="child">
<object class="Spinner" id="spinner">
<property name="valign">center</property>
<property name="halign">center</property>
<property name="vexpand">True</property>
<style>
<class name="large"/>
</style>
</object>
<object class="AdwSpinner"/>
</property>
</object>
</child>

8
src/components/rows/switch_loading_row.rs

@ -1,7 +1,7 @@
use adw::subclass::prelude::*;
use gtk::{glib, glib::clone, prelude::*, CompositeTemplate};
use adw::{prelude::*, subclass::prelude::*};
use gtk::{glib, glib::clone, CompositeTemplate};
use crate::{components::Spinner, utils::bool_to_accessible_tristate};
use crate::utils::bool_to_accessible_tristate;
mod imp {
use std::{cell::Cell, marker::PhantomData};
@ -15,7 +15,7 @@ mod imp {
#[properties(wrapper_type = super::SwitchLoadingRow)]
pub struct SwitchLoadingRow {
#[template_child]
pub spinner: TemplateChild<Spinner>,
pub spinner: TemplateChild<adw::Spinner>,
#[template_child]
pub switch: TemplateChild<gtk::Switch>,
/// Whether the switch is active.

2
src/components/rows/switch_loading_row.ui

@ -9,7 +9,7 @@
<property name="valign">center</property>
<property name="spacing">6</property>
<child>
<object class="Spinner" id="spinner">
<object class="AdwSpinner" id="spinner">
<property name="visible">False</property>
<property name="accessible-role">status</property>
</object>

10
src/login/session_setup_view.ui

@ -30,12 +30,10 @@
<property name="orientation">vertical</property>
<property name="spacing">18</property>
<child>
<object class="Spinner">
<property name="halign">center</property>
<style>
<class name="large"/>
</style>
</object>
<object class="AdwSpinner">
<property name="height-request">64</property>
<property name="width-request">64</property>
</object>
</child>
<child>
<object class="GtkLabel">

13
src/session/view/account_settings/notifications_page.rs

@ -4,9 +4,7 @@ use gtk::{gio, glib, glib::clone, CompositeTemplate};
use tracing::error;
use crate::{
components::{
CheckLoadingRow, EntryAddRow, LoadingBin, RemovableRow, Spinner, SwitchLoadingRow,
},
components::{CheckLoadingRow, EntryAddRow, RemovableRow, SwitchLoadingRow},
i18n::gettext_f,
session::model::{NotificationsGlobalSetting, NotificationsSettings},
spawn, toast,
@ -14,11 +12,7 @@ use crate::{
};
mod imp {
use std::{
cell::{Cell, RefCell},
collections::HashMap,
marker::PhantomData,
};
use std::{cell::Cell, marker::PhantomData};
use glib::subclass::InitializingObject;
@ -46,7 +40,6 @@ mod imp {
pub keywords: TemplateChild<gtk::ListBox>,
#[template_child]
pub keywords_add_row: TemplateChild<EntryAddRow>,
pub keywords_suffixes: RefCell<HashMap<glib::GString, LoadingBin>>,
/// The notifications settings of the current session.
#[property(get, set = Self::set_notifications_settings, explicit_notify)]
pub notifications_settings: BoundObjectWeakRef<NotificationsSettings>,
@ -68,8 +61,6 @@ mod imp {
type ParentType = adw::PreferencesPage;
fn class_init(klass: &mut Self::Class) {
Spinner::ensure_type();
Self::bind_template(klass);
Self::Type::bind_template_callbacks(klass);

8
src/session/view/account_settings/user_sessions_page/mod.ui

@ -11,13 +11,7 @@
<object class="GtkStackPage">
<property name="name">loading</property>
<property name="child">
<object class="Spinner">
<property name="valign">center</property>
<property name="halign">center</property>
<style>
<class name="large"/>
</style>
</object>
<object class="AdwSpinner" />
</property>
</object>
</child>

3
src/session/view/content/explore/mod.rs

@ -14,7 +14,7 @@ pub use self::{
servers_popover::ExploreServersPopover,
};
use self::{server::Server, server_list::ServerList, server_row::ExploreServerRow};
use crate::{components::Spinner, session::model::Session};
use crate::session::model::Session;
mod imp {
use std::cell::RefCell;
@ -57,7 +57,6 @@ mod imp {
PublicRoom::ensure_type();
PublicRoomList::ensure_type();
PublicRoomRow::ensure_type();
Spinner::ensure_type();
Self::bind_template(klass);

10
src/session/view/content/explore/mod.ui

@ -42,7 +42,6 @@
</child>
<property name="content">
<object class="GtkStack" id="stack">
<property name="visible-child">spinner</property>
<property name="transition-type">crossfade</property>
<style>
<class name="explore"/>
@ -52,14 +51,7 @@
<property name="name">loading</property>
<property name="title" translatable="yes">Loading</property>
<property name="child">
<object class="Spinner" id="spinner">
<property name="valign">center</property>
<property name="halign">center</property>
<property name="vexpand">True</property>
<style>
<class name="large"/>
</style>
</object>
<object class="AdwSpinner" />
</property>
</object>
</child>

6
src/session/view/content/explore/public_room_row.rs

@ -5,7 +5,7 @@ use ruma::ServerName;
use super::PublicRoom;
use crate::{
components::{Avatar, LoadingButton, Spinner},
components::{Avatar, LoadingButton},
gettext_f, ngettext_f,
prelude::*,
spawn, toast,
@ -131,9 +131,11 @@ mod imp {
self.update_button();
self.update_row();
} else if self.original_child.borrow().is_none() {
let spinner = Spinner::default();
let spinner = adw::Spinner::new();
spinner.set_margin_top(12);
spinner.set_margin_bottom(12);
spinner.set_width_request(24);
spinner.set_height_request(24);
self.original_child.replace(obj.child());
obj.set_child(Some(&spinner));
}

9
src/session/view/content/room_details/history_viewer/audio.ui

@ -16,14 +16,7 @@
<property name="name">loading</property>
<property name="title" translatable="yes">Loading</property>
<property name="child">
<object class="Spinner" id="loading">
<property name="valign">center</property>
<property name="halign">center</property>
<property name="vexpand">True</property>
<style>
<class name="large"/>
</style>
</object>
<object class="AdwSpinner" />
</property>
</object>
</child>

9
src/session/view/content/room_details/history_viewer/file.ui

@ -15,14 +15,7 @@
<property name="name">loading</property>
<property name="title" translatable="yes">Loading</property>
<property name="child">
<object class="Spinner" id="loading">
<property name="valign">center</property>
<property name="halign">center</property>
<property name="vexpand">True</property>
<style>
<class name="large"/>
</style>
</object>
<object class="AdwSpinner" />
</property>
</object>
</child>

9
src/session/view/content/room_details/history_viewer/visual_media.ui

@ -22,14 +22,7 @@
<property name="name">loading</property>
<property name="title" translatable="yes">Loading</property>
<property name="child">
<object class="Spinner" id="loading">
<property name="valign">center</property>
<property name="halign">center</property>
<property name="vexpand">True</property>
<style>
<class name="large"/>
</style>
</object>
<object class="AdwSpinner" />
</property>
</object>
</child>

4
src/session/view/content/room_details/invite_subpage/mod.rs

@ -13,7 +13,7 @@ use self::{
row::InviteRow,
};
use crate::{
components::{LoadingButton, PillSearchEntry, PillSource, Spinner},
components::{LoadingButton, PillSearchEntry, PillSource},
prelude::*,
session::model::{Room, User},
toast,
@ -50,8 +50,6 @@ mod imp {
pub no_search_page: TemplateChild<adw::StatusPage>,
#[template_child]
pub error_page: TemplateChild<adw::StatusPage>,
#[template_child]
pub loading_page: TemplateChild<Spinner>,
/// The room users will be invited to.
#[property(get, set = Self::set_room, construct_only)]
pub room: glib::WeakRef<Room>,

8
src/session/view/content/room_details/invite_subpage/mod.ui

@ -148,13 +148,7 @@
<property name="name">loading</property>
<property name="title" translatable="yes">Searching for Users</property>
<property name="child">
<object class="Spinner" id="loading_page">
<property name="valign">center</property>
<property name="halign">center</property>
<style>
<class name="large"/>
</style>
</object>
<object class="AdwSpinner" />
</property>
</object>
</child>

11
src/session/view/content/room_history/item_row.rs

@ -8,7 +8,7 @@ use tracing::error;
use super::{DividerRow, MessageRow, RoomHistory, StateRow, TypingRow};
use crate::{
components::{ContextMenuBin, ContextMenuBinExt, ContextMenuBinImpl, ReactionChooser, Spinner},
components::{ContextMenuBin, ContextMenuBinExt, ContextMenuBinImpl, ReactionChooser},
prelude::*,
session::{
model::{Event, EventKey, MessageState, TimelineItem, VirtualItem, VirtualItemKind},
@ -308,10 +308,15 @@ mod imp {
match &*item.kind() {
VirtualItemKind::Spinner => {
if !obj.child().is_some_and(|widget| widget.is::<Spinner>()) {
let spinner = Spinner::default();
if !obj
.child()
.is_some_and(|widget| widget.is::<adw::Spinner>())
{
let spinner = adw::Spinner::new();
spinner.set_margin_top(12);
spinner.set_margin_bottom(12);
spinner.set_height_request(24);
spinner.set_width_request(24);
obj.set_child(Some(&spinner));
}
}

4
src/session/view/content/room_history/message_row/audio.rs

@ -9,7 +9,7 @@ use tracing::warn;
use super::ContentFormat;
use crate::{
components::{AudioPlayer, Spinner},
components::AudioPlayer,
gettext_f,
session::model::Session,
spawn,
@ -41,7 +41,7 @@ mod imp {
#[template_child]
pub player: TemplateChild<AudioPlayer>,
#[template_child]
pub state_spinner: TemplateChild<Spinner>,
pub state_spinner: TemplateChild<adw::Spinner>,
#[template_child]
pub state_error: TemplateChild<gtk::Image>,
}

5
src/session/view/content/room_history/message_row/audio.ui

@ -23,7 +23,10 @@
</object>
</child>
<child type="end">
<object class="Spinner" id="state_spinner"/>
<object class="AdwSpinner" id="state_spinner">
<property name="height-request">20</property>
<property name="width-request">20</property>
</object>
</child>
<child type="end">
<object class="GtkImage" id="state_error">

5
src/session/view/content/room_history/message_row/message_state_stack.ui

@ -8,8 +8,9 @@
<object class="GtkStackPage">
<property name="name">sending</property>
<property name="child">
<object class="Spinner" id="spinner">
<property name="valign">center</property>
<object class="AdwSpinner">
<property name="height-request">20</property>
<property name="width-request">20</property>
<!-- Translators: As in 'Sending message…'. -->
<property name="tooltip-text" translatable="yes">Sending…</property>
<accessibility>

4
src/session/view/content/room_history/message_row/visual_media.rs

@ -11,7 +11,7 @@ use tracing::warn;
use super::ContentFormat;
use crate::{
components::{AnimatedImagePaintable, Spinner, VideoPlayer},
components::{AnimatedImagePaintable, VideoPlayer},
gettext_f,
session::model::Session,
spawn,
@ -47,7 +47,7 @@ mod imp {
#[template_child]
pub overlay_error: TemplateChild<gtk::Image>,
#[template_child]
pub overlay_spinner: TemplateChild<Spinner>,
pub overlay_spinner: TemplateChild<adw::Spinner>,
/// The intended display width of the media.
#[property(get, set = Self::set_width, explicit_notify, default = -1, minimum = -1)]
pub width: Cell<i32>,

4
src/session/view/content/room_history/message_row/visual_media.ui

@ -15,9 +15,7 @@
</object>
</child>
<child type="overlay">
<object class="Spinner" id="overlay_spinner">
<property name="halign">center</property>
<property name="valign">center</property>
<object class="AdwSpinner" id="overlay_spinner">
<layout>
<property name="measure">true</property>
</layout>

4
src/session/view/content/room_history/mod.rs

@ -27,7 +27,7 @@ use self::{
};
use super::{room_details, RoomDetails};
use crate::{
components::{confirm_leave_room_dialog, DragOverlay, ReactionChooser, Spinner},
components::{confirm_leave_room_dialog, DragOverlay, ReactionChooser},
i18n::gettext_f,
prelude::*,
session::model::{
@ -98,7 +98,7 @@ mod imp {
#[template_child]
pub message_toolbar: TemplateChild<MessageToolbar>,
#[template_child]
pub loading: TemplateChild<Spinner>,
pub loading: TemplateChild<adw::Spinner>,
#[template_child]
pub error: TemplateChild<adw::StatusPage>,
#[template_child]

9
src/session/view/content/room_history/mod.ui

@ -175,14 +175,7 @@
<property name="name">loading</property>
<property name="title" translatable="yes">Loading</property>
<property name="child">
<object class="Spinner" id="loading">
<property name="valign">center</property>
<property name="halign">center</property>
<property name="vexpand">True</property>
<style>
<class name="large"/>
</style>
</object>
<object class="AdwSpinner" id="loading" />
</property>
</object>
</child>

8
src/session/view/create_dm_dialog/mod.ui

@ -111,13 +111,7 @@
<object class="GtkStackPage">
<property name="name">loading-page</property>
<property name="child">
<object class="Spinner">
<property name="valign">center</property>
<property name="halign">center</property>
<style>
<class name="large"/>
</style>
</object>
<object class="AdwSpinner" />
</property>
</object>
</child>

4
src/window.rs

@ -8,7 +8,7 @@ use tracing::{error, warn};
use crate::{
account_chooser_dialog::AccountChooserDialog,
account_switcher::{AccountSwitcherButton, AccountSwitcherPopover},
components::{OfflineBanner, Spinner},
components::OfflineBanner,
error_page::ErrorPage,
intent,
login::Login,
@ -59,8 +59,6 @@ mod imp {
pub session: TemplateChild<SessionView>,
#[template_child]
pub toast_overlay: TemplateChild<adw::ToastOverlay>,
#[template_child]
pub spinner: TemplateChild<Spinner>,
/// Whether the window should be in compact view.
///
/// It means that the horizontal size is not large enough to hold all

10
src/window.ui

@ -10,7 +10,6 @@
<object class="AdwToastOverlay" id="toast_overlay">
<child>
<object class="GtkStack" id="main_stack">
<property name="visible-child">loading</property>
<property name="transition-type">crossfade</property>
<child>
<object class="GtkStackPage">
@ -34,14 +33,9 @@
<object class="OfflineBanner" />
</child>
<child>
<object class="Spinner" id="spinner">
<property name="valign">center</property>
<property name="halign">center</property>
<object class="AdwSpinner">
<property name="vexpand">True</property>
<style>
<class name="large"/>
</style>
</object>
</object>
</child>
</object>
</property>

Loading…
Cancel
Save