[gnome-games] savestates-list: Ensure selected row is visible on rename and delete
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games] savestates-list: Ensure selected row is visible on rename and delete
- Date: Thu, 15 Aug 2019 20:26:20 +0000 (UTC)
commit 9d9db1a415f3f815cfaf745ecea862de68c2f25d
Author: Yetizone <andreii lisita gmail com>
Date: Thu Aug 15 20:51:31 2019 +0300
savestates-list: Ensure selected row is visible on rename and delete
Ensures the rename popover appears on screen
Fixes https://gitlab.gnome.org/GNOME/gnome-games/issues/225
src/ui/savestates-list.vala | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
---
diff --git a/src/ui/savestates-list.vala b/src/ui/savestates-list.vala
index 233cb0f2..828f44c2 100644
--- a/src/ui/savestates-list.vala
+++ b/src/ui/savestates-list.vala
@@ -142,6 +142,7 @@ private class Games.SavestatesList : Gtk.Box {
var savestate_row = selected_row as SavestateListBoxRow;
var savestate = savestate_row.savestate;
+ ensure_row_is_visible (selected_row);
runner.delete_savestate (savestate);
savestate_row.remove_animated ();
@@ -172,11 +173,26 @@ private class Games.SavestatesList : Gtk.Box {
private void on_rename_clicked () {
var selected_row = list_box.get_selected_row ();
+ ensure_row_is_visible (selected_row);
+
rename_entry.text = state.selected_savestate.get_name ();
rename_popover.relative_to = selected_row;
rename_popover.popup ();
}
+ // Adapted from gtklistbox.c, ensure_row_visible()
+ private void ensure_row_is_visible (Gtk.ListBoxRow row) {
+ Gtk.Allocation allocation;
+
+ row.get_allocation (out allocation);
+ var y = allocation.y;
+ var height = allocation.height;
+
+ scrolled_window.kinetic_scrolling = false;
+ scrolled_window.vadjustment.clamp_page (y, y + height);
+ scrolled_window.kinetic_scrolling = true;
+ }
+
[GtkCallback]
private void on_rename_entry_activated () {
if (check_rename_is_valid ())
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]