When selecting a background from the Pictures source, make sure that
the placement is reset from whatever it was set to before, otherwise
it will make use of the previous one, leading to tiled wallpapers if a
colour was selected before, for example.
https://bugzilla.gnome.org/show_bug.cgi?id=703057
We were assuming that setting stock-size would affect the emblems in
GEmblemedIcons, but not the icons themselves. This is a bit weird.
GtkCellRendererPixbuf:gicon is meant to work with
GtkCellRendererPixbuf:stock-size, and this was only working so far
because GTK_ICON_LOOKUP_FORCE_SIZE was not being used when loading
the icon.
Let's composite the emblems ourselves so that we don't have to depend
on this quirky interpretation of stock-size.
Unfortunately, we can not directly use the pixbufs because they are
unaware of the scale factor and GTK+ will scale them on HiDpi
displays. Since our pixbufs already have enough pixels to work well
with such devices, scaling them further will lead to giant, fuzzy
thumbnails. Hence, we use GtkCellRendererPixbuf:surface with the
scale factor codified in it.
https://bugzilla.gnome.org/show_bug.cgi?id=732375
There is no need to pass the source-uri as a parameter as we can get it
from the file itself. This would help in using the same code paths for
local and remote pictures.
https://bugzilla.gnome.org/show_bug.cgi?id=707569
We do not wait until the first thumbnail is created to start filling up
the store. This avoids the "No Pictures Found" message from showing up
on slow machines were I/O and decoding the data may take a while.
However, placeholders are not shown for PNGs since they might be
screenshots.
https://bugzilla.gnome.org/show_bug.cgi?id=708943
We want to track the busy state of the source. To do that we will keep
a count of the number of pending operations. Not having a check for
NOT_FOUND makes it slightly easier to do that. Not a big deal, but I
think it outweighs the downfall of showing an extra warning.
Plus we are trying to create the directories before using them, so the
warning means something fishy has been going on with your system.
https://bugzilla.gnome.org/show_bug.cgi?id=708943
A few of the async calls were still handling the user_data before
checking that it was still valid (eg. the operation was not cancelled),
and also printing warnings when the error was a cancellation.
Sorting after the image scale for each image causes the list to change
as you're viewing it depending on the size of the image.
This can be quite jarring visually.
https://bugzilla.gnome.org/show_bug.cgi?id=691800
So they will be properly cancelled when the panel is disposed.
Also, check early if the operation was cancelled, since it's not safe to
assume the data of the callback is valid anymore before that point.
https://bugzilla.gnome.org/show_bug.cgi?id=672572
The file is in $incdir/gsettings-desktop-schemas/gdesktop-enums.h,
and pkg-config returns -I$incdir/gsettings-desktop-schemas, so the
right way is to #include <gdesktop-enums.h> which is what other modules
do.
https://bugzilla.gnome.org/show_bug.cgi?id=642369
Remember added files, so they cannot be added twice to the pictures
store (using UUID of the URI as key).
Implement removing items from the list.
Fix memory leaks.
And only when selected. There's no point in loading it straight
away, as we have more than enough metadata to display it in the
icon view, and we'll need to load up the data when we display
it anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=641414
Now we'd just need gnome-bg to make the jump.
This also fixes unique IDs for the wallpapers source, as
multiple backgrounds can be defined in a single XML file.
It now is a full GObject, will be able to track the original
XML file for a wallpaper, as well as which values are set in it.
This will allow us to restore wallpapers properly, and only offer
editing options when those aren't already hard-coded inside the
item.