From 404f6d2f132e0f37e88c21a9a9bb1926f7951fe0 Mon Sep 17 00:00:00 2001 From: Theo Linkspfeifer Date: Sat, 9 Nov 2019 20:52:58 +0100 Subject: [PATCH] Prevent search bar from overlapping the document (Bug #14814) --- mousepad/mousepad-window.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/mousepad/mousepad-window.c b/mousepad/mousepad-window.c index 52cedb6..55720b5 100644 --- a/mousepad/mousepad-window.c +++ b/mousepad/mousepad-window.c @@ -3267,6 +3267,19 @@ mousepad_window_drag_data_received (GtkWidget *widget, /** * Find and replace **/ +static gboolean +mousepad_window_scroll_to_cursor (MousepadWindow *window) +{ + g_return_val_if_fail (MOUSEPAD_IS_WINDOW (window), FALSE); + + if (window->active != NULL) + mousepad_view_scroll_to_cursor (window->active->textview); + + return FALSE; +} + + + static gint mousepad_window_search (MousepadWindow *window, MousepadSearchFlags flags, @@ -3304,9 +3317,9 @@ mousepad_window_search (MousepadWindow *window, /* search or replace in the active document */ nmatches = mousepad_util_search (window->active->buffer, string, replacement, flags); - /* make sure the selection is visible */ + /* make sure the selection is visible whenever idle */ if (flags & (MOUSEPAD_SEARCH_FLAGS_ACTION_SELECT | MOUSEPAD_SEARCH_FLAGS_ACTION_REPLACE) && nmatches > 0) - mousepad_view_scroll_to_cursor (window->active->textview); + g_idle_add (mousepad_window_scroll_to_cursor, window); } else { -- 2.20.1