Right click is not possible on touchscreens, so our right click menu would be inaccessible.
Here we use GtkGestureLongPress to create our right click menu, but only on touch devices.
The width-request of the HeaderBar dictates what size the room HeaderBar needs to be to fold at and the minimum width of the HdyLeaflets total in this case.
Prevents the room content from becoming too narrow.
The room_info labels could cause the leaflet to fold before
they could ellipsize, causing Fractal to fold at the wrong width. By wrapping in ScrolledWindow we work around that issue.
Fractal's main view could only shrink so far, barring usage at smaller sizes such as a phone's screen. HdyLeaflet enables
Fractal to adapt.
Related to https://gitlab.gnome.org/GNOME/fractal/issues/377
We used to request the complete room state to get only the memebers list
if there was no avatar, which was expensive and we actually have already
the members list.
This reduces memory use.
`markdown_popover` used the deprecated start and end properties and abused margins to space elements out.
Now it uses the `margin` property to create margins around widgets on all sides, as well as the properties of GtkGrid and GtkBox.
tree_magic did not previously return an Option from `from_filepath`, and used `unwrap()` internally, occasionally causing a crash when we used `is_gif()`.
On git master they have fixed this, so that's what we need to use until they put out a new release.
Related to https://gitlab.gnome.org/GNOME/fractal/issues/37
We implemented the structs to which we parse the sync response except
the events, which are a tough case for another commit. Some enhancements
and cleanups were made to the code surrounding the sync management in
order to be able to remove unnecessary error handling and/or queries.
This replaces some boolean properties of the Room Model with a single
property called membership. This makes the room membership (joined, left,
invited) and tag (favourties, low priority, etc) mutch more
understandable and gives the Model a better structure.
We previously included `self` of different crates so we could get things from the crates' roots with crate_name::ObjectName; This can be done in Rust 2018 without
the explicit self.
"Save as" should probably be "Save as…"
"You’ve been invited to join to "… → "to join", not "to join to".
Time formats should use a ratio symbol ∶ as suggested by the HIG
"Favorites" → "Favourites" (multiple occurrences)
https://gitlab.gnome.org/GNOME/fractal/issues/417