Compare commits
2 Commits
ee5f63e50b
...
0857a04a3a
| Author | SHA1 | Date | |
|---|---|---|---|
|
0857a04a3a
|
|||
|
4302ec71f2
|
@@ -604,6 +604,8 @@ static void
|
|||||||
thumbnailers_start(FivBrowser *self)
|
thumbnailers_start(FivBrowser *self)
|
||||||
{
|
{
|
||||||
thumbnailers_abort(self);
|
thumbnailers_abort(self);
|
||||||
|
if (!self->model)
|
||||||
|
return;
|
||||||
|
|
||||||
// TODO(p): Leave out all paths containing .cache/thumbnails altogether.
|
// TODO(p): Leave out all paths containing .cache/thumbnails altogether.
|
||||||
gchar *thumbnails_dir = fiv_thumbnail_get_root();
|
gchar *thumbnails_dir = fiv_thumbnail_get_root();
|
||||||
@@ -909,6 +911,7 @@ set_item_size(FivBrowser *self, FivThumbnailSize size)
|
|||||||
self->item_size = size;
|
self->item_size = size;
|
||||||
self->item_height = fiv_thumbnail_sizes[self->item_size].size;
|
self->item_height = fiv_thumbnail_sizes[self->item_size].size;
|
||||||
reload_thumbnails(self);
|
reload_thumbnails(self);
|
||||||
|
thumbnailers_start(self);
|
||||||
|
|
||||||
g_object_notify_by_pspec(
|
g_object_notify_by_pspec(
|
||||||
G_OBJECT(self), browser_properties[PROP_THUMBNAIL_SIZE]);
|
G_OBJECT(self), browser_properties[PROP_THUMBNAIL_SIZE]);
|
||||||
@@ -1600,6 +1603,20 @@ fiv_browser_new(FivIoModel *model)
|
|||||||
return GTK_WIDGET(self);
|
return GTK_WIDGET(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
scroll_to_selection(FivBrowser *self)
|
||||||
|
{
|
||||||
|
for (gsize y = 0; y < self->layouted_rows->len; y++) {
|
||||||
|
const Row *row = &g_array_index(self->layouted_rows, Row, y);
|
||||||
|
for (gsize x = 0; x < row->len; x++) {
|
||||||
|
if (row->items[x].entry == self->selected) {
|
||||||
|
scroll_to_row(self, row);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
fiv_browser_select(FivBrowser *self, const char *uri)
|
fiv_browser_select(FivBrowser *self, const char *uri)
|
||||||
{
|
{
|
||||||
@@ -1614,9 +1631,8 @@ fiv_browser_select(FivBrowser *self, const char *uri)
|
|||||||
const Entry *entry = &g_array_index(self->entries, Entry, i);
|
const Entry *entry = &g_array_index(self->entries, Entry, i);
|
||||||
if (!g_strcmp0(entry->uri, uri)) {
|
if (!g_strcmp0(entry->uri, uri)) {
|
||||||
self->selected = entry;
|
self->selected = entry;
|
||||||
|
scroll_to_selection(self);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(p): Scroll to selection.
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user