[Libreoffice-commits] core.git: vcl/unx

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Tue Jan 19 14:25:19 UTC 2021


 vcl/unx/gtk3/gtk3gtkframe.cxx |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

New commits:
commit 98edfb02b2a755d9758bfac2374c0bc8dcebc504
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Tue Jan 19 12:18:11 2021 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Jan 19 15:24:27 2021 +0100

    tdf#139368 new database dialog doesn't have focus on start-center launch
    
    the original issue all the way back of
    
    commit 82abd23f3ee1900b7579e5a0afa23581d5836f01
        tdf#93317 Modified Document Dialog misses focus on Gtk3
    
    eventuallly solved with
    
    commit 1092cc0c75f6d2ab649dd31b1db9f0a9f0944355
        Related: tdf#100337 revert x-crossplatform ToTop...
    
    is possibly all redundant in the contemporary situation. Try using
    gdk_x11_display_get_user_time for X where the problem arises and
    leave things along in the apparently working wayland case
    
    Change-Id: Ia31b88e2760574e1d580d4bff509b06c07e5f0f3
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109630
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
index fdbe68cbc8a7..bbbdf736fe92 100644
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
@@ -2010,10 +2010,16 @@ void GtkSalFrame::ToTop( SalFrameToTop nFlags )
         GrabFocus();
     else if( gtk_widget_get_mapped( m_pWindow ) )
     {
+        auto nTimestamp = GetLastInputEventTime();
+#ifdef GDK_WINDOWING_X11
+        GdkDisplay *pDisplay = GtkSalFrame::getGdkDisplay();
+        if (DLSYM_GDK_IS_X11_DISPLAY(pDisplay))
+            nTimestamp = gdk_x11_display_get_user_time(pDisplay);
+#endif
         if (!(nFlags & SalFrameToTop::GrabFocusOnly))
-            gtk_window_present_with_time(GTK_WINDOW(m_pWindow), GetLastInputEventTime());
+            gtk_window_present_with_time(GTK_WINDOW(m_pWindow), nTimestamp);
         else
-            gdk_window_focus(gtk_widget_get_window(m_pWindow), GetLastInputEventTime());
+            gdk_window_focus(gtk_widget_get_window(m_pWindow), nTimestamp);
         GrabFocus();
     }
     else


More information about the Libreoffice-commits mailing list