From 1499d445846f746fbd345efd7e7c059108eed832 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Wed, 1 Oct 2014 17:02:00 +0800 Subject: [PATCH] gtk: Fix focusing on file dialog Fixes atom/atom#3626. --- atom/browser/ui/file_dialog_gtk.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/atom/browser/ui/file_dialog_gtk.cc b/atom/browser/ui/file_dialog_gtk.cc index 6a890322de..747f8a7cff 100644 --- a/atom/browser/ui/file_dialog_gtk.cc +++ b/atom/browser/ui/file_dialog_gtk.cc @@ -21,6 +21,7 @@ #include "chrome/browser/ui/libgtk2ui/gtk2_signal.h" #include "ui/aura/window.h" #include "ui/aura/window_tree_host.h" +#include "ui/views/widget/desktop_aura/x11_desktop_handler.h" namespace file_dialog { @@ -114,6 +115,11 @@ class FileChooserDialog { g_signal_connect(dialog_, "response", G_CALLBACK(OnFileDialogResponseThunk), this); gtk_widget_show_all(dialog_); + + // We need to call gtk_window_present after making the widgets visible to + // make sure window gets correctly raised and gets focus. + int time = views::X11DesktopHandler::get()->wm_user_time_ms(); + gtk_window_present_with_time(GTK_WINDOW(dialog_), time); } void RunSaveAsynchronous(const SaveDialogCallback& callback) {