rendered paste bodyIndex: src/GeckoBrowser.cpp
===================================================================
RCS file: /cvs/gnome/gnome-gecko-embed/src/GeckoBrowser.cpp,v
retrieving revision 1.4
diff -u -r1.4 GeckoBrowser.cpp
--- src/GeckoBrowser.cpp 13 Mar 2006 18:07:14 -0000 1.4
+++ src/GeckoBrowser.cpp 13 Mar 2006 18:52:46 -0000
@@ -46,6 +46,7 @@
#include "nsIDocShell.h"
#include "nsIWebProgress.h"
#include "nsIWebBrowserStream.h"
+#include "nsIWebBrowserFocus.h"
#include "nsIWidget.h"
#include <stdlib.h>
@@ -488,54 +489,23 @@
}
}
-// handle focus in and focus out events
-void
-GeckoBrowser::TopLevelFocusIn(void)
-{
- if (mIsDestroyed)
- return;
-
- nsCOMPtr<nsPIDOMWindow> piWin;
- GetPIDOMWindow(getter_AddRefs(piWin));
-
- if (!piWin)
- return;
-
- nsIFocusController *focusController = piWin->GetRootFocusController();
- if (focusController)
- focusController->SetActive(PR_TRUE);
-}
-
-void
-GeckoBrowser::TopLevelFocusOut(void)
-{
- if (mIsDestroyed)
- return;
-
- nsCOMPtr<nsPIDOMWindow> piWin;
- GetPIDOMWindow(getter_AddRefs(piWin));
-
- if (!piWin)
- return;
-
- nsIFocusController *focusController = piWin->GetRootFocusController();
- if (focusController)
- focusController->SetActive(PR_FALSE);
-}
-
void
GeckoBrowser::ChildFocusIn(void)
{
if (mIsDestroyed)
return;
- nsCOMPtr<nsPIDOMWindow> piWin;
- GetPIDOMWindow(getter_AddRefs(piWin));
+ nsresult rv;
+ nsCOMPtr<nsIWebBrowser> webBrowser;
+ rv = mWindow->GetWebBrowser(getter_AddRefs(webBrowser));
+ if (NS_FAILED(rv))
+ return;
- if (!piWin)
+ nsCOMPtr<nsIWebBrowserFocus> webBrowserFocus(do_QueryInterface(webBrowser));
+ if (!webBrowserFocus)
return;
- piWin->Activate();
+ webBrowserFocus->Activate();
}
void
@@ -544,20 +514,17 @@
if (mIsDestroyed)
return;
- nsCOMPtr<nsPIDOMWindow> piWin;
- GetPIDOMWindow(getter_AddRefs(piWin));
-
- if (!piWin)
+ nsresult rv;
+ nsCOMPtr<nsIWebBrowser> webBrowser;
+ rv = mWindow->GetWebBrowser(getter_AddRefs(webBrowser));
+ if (NS_FAILED(rv))
return;
- piWin->Deactivate();
-
- // but the window is still active until the toplevel gets a focus
- // out
- nsIFocusController *focusController = piWin->GetRootFocusController();
- if (focusController)
- focusController->SetActive(PR_TRUE);
+ nsCOMPtr<nsIWebBrowserFocus> webBrowserFocus(do_QueryInterface(webBrowser));
+ if (!webBrowserFocus)
+ return;
+ webBrowserFocus->Deactivate();
}
// Get the event listener for the chrome event handler.
Index: src/GeckoSingle.h
===================================================================
RCS file: /cvs/gnome/gnome-gecko-embed/src/GeckoSingle.h,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 GeckoSingle.h
--- src/GeckoSingle.h 13 Mar 2006 12:44:57 -0000 1.1.1.1
+++ src/GeckoSingle.h 13 Mar 2006 18:52:47 -0000
@@ -47,8 +47,6 @@
#include <nsIWebBrowserChrome.h>
#include <nsIAppShell.h>
#include <nsIDOMEventReceiver.h>
-// for profiles
-#include <nsIPref.h>
// app component registration
#include <nsIGenericFactory.h>
#include <nsIComponentRegistrar.h>
@@ -109,7 +107,6 @@
static char *sProfileName;
// for profiles
static nsProfileDirServiceProvider *sProfileDirServiceProvider;
- static nsIPref *sPrefs;
static nsIDirectoryServiceProvider * sAppFileLocProvider;
Index: src/gecko-embed.cpp
===================================================================
RCS file: /cvs/gnome/gnome-gecko-embed/src/gecko-embed.cpp,v
retrieving revision 1.4
diff -u -r1.4 gecko-embed.cpp
--- src/gecko-embed.cpp 13 Mar 2006 18:07:14 -0000 1.4
+++ src/gecko-embed.cpp 13 Mar 2006 18:52:50 -0000
@@ -97,16 +97,6 @@
GdkEventFocus *aGdkFocusEvent,
GeckoEmbed *aEmbed);
-// signal handlers for tracking the focus in and focus out events on
-// the toplevel window.
-
-static gint handle_toplevel_focus_in(GtkWidget *aWidget,
- GdkEventFocus *aEvent,
- GeckoBrowser *aPrivate);
-static gint handle_toplevel_focus_out(GtkWidget *aWidget,
- GdkEventFocus *aEvent,
- GeckoBrowser *aPrivate);
-
static PRInt32 sWidgetCount;
// globals for this type of widget
@@ -121,8 +111,6 @@
struct _GeckoEmbedPrivate
{
- gulong toplevel_focus_in_handler_id;
- gulong toplevel_focus_out_handler_id;
GeckoBrowser *browser;
};
@@ -222,35 +210,6 @@
rv = browser->Realize(&alreadyRealized);
g_return_if_fail(NS_SUCCEEDED(rv));
- if (priv->toplevel_focus_in_handler_id == 0)
- {
- GClosure *closure;
- closure = g_cclosure_new (G_CALLBACK (handle_toplevel_focus_in), browser, NULL);
- g_object_watch_closure (G_OBJECT (child_widget), closure);
- priv->toplevel_focus_in_handler_id =
- g_signal_connect_closure (toplevel, "focus_in_event", closure, FALSE);
- }
- if (priv->toplevel_focus_out_handler_id == 0)
- {
- GClosure *closure;
- closure = g_cclosure_new (G_CALLBACK (handle_toplevel_focus_out), browser, NULL);
- g_object_watch_closure (G_OBJECT (child_widget), closure);
- priv->toplevel_focus_out_handler_id =
- g_signal_connect_closure (toplevel, "focus_out_event", closure, FALSE);
- }
-#if 0
- gtk_signal_connect_while_alive(GTK_OBJECT(toplevel),
- "focus_in_event",
- GTK_SIGNAL_FUNC(handle_toplevel_focus_in),
- browser,
- GTK_OBJECT(child_widget));
- gtk_signal_connect_while_alive(GTK_OBJECT(toplevel),
- "focus_out_event",
- GTK_SIGNAL_FUNC(handle_toplevel_focus_out),
- browser,
- GTK_OBJECT(child_widget));
-#endif
-
// if we're already realized we don't need to hook up to anything below
if (alreadyRealized)
return;
@@ -290,19 +249,6 @@
browser->Unrealize();
}
- g_signal_handler_disconnect (toplevel, priv->toplevel_focus_in_handler_id);
- g_signal_handler_disconnect (toplevel, priv->toplevel_focus_out_handler_id);
- priv->toplevel_focus_in_handler_id = 0;
- priv->toplevel_focus_out_handler_id = 0;
-#if 0
- gtk_signal_disconnect_by_func(GTK_OBJECT(toplevel),
- GTK_SIGNAL_FUNC(handle_toplevel_focus_in),
- browser);
- gtk_signal_disconnect_by_func(GTK_OBJECT(toplevel),
- GTK_SIGNAL_FUNC(handle_toplevel_focus_out),
- browser);
-#endif
-
if (GTK_WIDGET_CLASS(parent_class)->unrealize)
GTK_WIDGET_CLASS(parent_class)->unrealize (widget);
}
@@ -386,28 +332,6 @@
browser->ChildFocusOut();
- return FALSE;
-}
-
-/* static */
-gint
-handle_toplevel_focus_in (GtkWidget *aWidget,
- GdkEventFocus *aEvent,
- GeckoBrowser *aPrivate)
-{
- aPrivate->TopLevelFocusIn();
-
- return FALSE;
-}
-
-/* static */
-gint
-handle_toplevel_focus_out (GtkWidget *aWidget,
- GdkEventFocus *aEvent,
- GeckoBrowser *aPrivate)
-{
- aPrivate->TopLevelFocusOut();
-
return FALSE;
}