diff --git a/src/app/browser/window/tab/item/widget.rs b/src/app/browser/window/tab/item/widget.rs index 356ece09..1168dfd5 100644 --- a/src/app/browser/window/tab/item/widget.rs +++ b/src/app/browser/window/tab/item/widget.rs @@ -25,7 +25,16 @@ impl Widget { is_selected: bool, ) -> Arc { let gobject = match position { - Some(number) => tab_view.insert(child, number), + Some(value) => { + // If given `position` match pinned tab, GTK will panic with notice: + // adw_tab_view_insert: assertion 'position >= self->n_pinned_pages' + // as the solution, prepend new page after pinned tabs on this case + if value > tab_view.n_pinned_pages() { + tab_view.insert(child, value) + } else { + tab_view.prepend(child) + } + } None => tab_view.append(child), };