diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h --- a/widget/gtk/nsWindow.h +++ b/widget/gtk/nsWindow.h @@ -287,6 +287,7 @@ // descendant windows GtkWidget* GetMozContainerWidget(); GdkWindow* GetGdkWindow() { return mGdkWindow; } + GtkWidget* GetGtkWidget() { return mShell; } bool IsDestroyed() { return mIsDestroyed; } void DispatchDragEvent(mozilla::EventMessage aMsg, diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp --- a/widget/gtk/nsWindow.cpp +++ b/widget/gtk/nsWindow.cpp @@ -7480,5 +7480,10 @@ } } - return (gFocusWindow == window); -} + GtkWidget* widget = window->GetGtkWidget(); + if (widget) { + return !(gtk_widget_get_state_flags(widget) & GTK_STATE_FLAG_BACKDROP); + } + + return false; +}