From 406f0b7bc776c6a4c0684e143434b7d693ba2911 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Wed, 15 Jan 2014 14:38:38 +0000 Subject: [PATCH] Implement "blur" window event. --- browser/native_window_gtk.cc | 9 +++++++++ browser/native_window_gtk.h | 1 + 2 files changed, 10 insertions(+) diff --git a/browser/native_window_gtk.cc b/browser/native_window_gtk.cc index 9b73882023..f749e19d09 100644 --- a/browser/native_window_gtk.cc +++ b/browser/native_window_gtk.cc @@ -8,8 +8,10 @@ #include "common/options_switches.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_view.h" +#include "content/public/common/renderer_preferences.h" #include "ui/gfx/gtk_util.h" #include "ui/gfx/rect.h" +#include "ui/gfx/skia_utils_gtk.h" namespace atom { @@ -44,6 +46,8 @@ NativeWindowGtk::NativeWindowGtk(content::WebContents* web_contents, g_signal_connect(window_, "delete-event", G_CALLBACK(OnWindowDeleteEventThunk), this); + g_signal_connect(window_, "focus-out-event", + G_CALLBACK(OnFocusOutThunk), this); SetWebKitColorStyle(); } @@ -271,6 +275,11 @@ gboolean NativeWindowGtk::OnWindowDeleteEvent(GtkWidget* widget, return TRUE; } +gboolean NativeWindowGtk::OnFocusOut(GtkWidget* window, GdkEventFocus*) { + NotifyWindowBlur(); + return FALSE; +} + // static NativeWindow* NativeWindow::Create(content::WebContents* web_contents, base::DictionaryValue* options) { diff --git a/browser/native_window_gtk.h b/browser/native_window_gtk.h index 553d13116a..96ca18edd4 100644 --- a/browser/native_window_gtk.h +++ b/browser/native_window_gtk.h @@ -65,6 +65,7 @@ class NativeWindowGtk : public NativeWindow { CHROMEGTK_CALLBACK_1(NativeWindowGtk, gboolean, OnWindowDeleteEvent, GdkEvent*); + CHROMEGTK_CALLBACK_1(NativeWindowGtk, gboolean, OnFocusOut, GdkEventFocus*); GtkWindow* window_;