aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2004-08-01 03:01:43 +0800
committerChristian Persch <chpe@src.gnome.org>2004-08-01 03:01:43 +0800
commitdc4161878bb9b0300f2a1eddeb3077befe7632e1 (patch)
treeebea28f627bc6faa9ac65741dbefa4006d0c8606
parent9b518e9da7dbd25140f8b19e60998a7e33c0c564 (diff)
downloadgsoc2013-epiphany-dc4161878bb9b0300f2a1eddeb3077befe7632e1.tar
gsoc2013-epiphany-dc4161878bb9b0300f2a1eddeb3077befe7632e1.tar.gz
gsoc2013-epiphany-dc4161878bb9b0300f2a1eddeb3077befe7632e1.tar.bz2
gsoc2013-epiphany-dc4161878bb9b0300f2a1eddeb3077befe7632e1.tar.lz
gsoc2013-epiphany-dc4161878bb9b0300f2a1eddeb3077befe7632e1.tar.xz
gsoc2013-epiphany-dc4161878bb9b0300f2a1eddeb3077befe7632e1.tar.zst
gsoc2013-epiphany-dc4161878bb9b0300f2a1eddeb3077befe7632e1.zip
Disconnect from screen's size-changed on finalize too.
2004-07-31 Christian Persch <chpe@cvs.gnome.org> * src/ephy-window.c: (update_exit_fullscreen_popup_position), (size_changed_cb), (ephy_window_destroy), (add_widget): Disconnect from screen's size-changed on finalize too.
-rw-r--r--ChangeLog7
-rw-r--r--src/ephy-window.c58
2 files changed, 38 insertions, 27 deletions
diff --git a/ChangeLog b/ChangeLog
index 397a921b6..a795fd7c6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2004-07-31 Christian Persch <chpe@cvs.gnome.org>
+ * src/ephy-window.c: (update_exit_fullscreen_popup_position),
+ (size_changed_cb), (ephy_window_destroy), (add_widget):
+
+ Disconnect from screen's size-changed on finalize too.
+
+2004-07-31 Christian Persch <chpe@cvs.gnome.org>
+
* embed/mozilla/EphyBrowser.cpp:
Use nsIDOMWindow2 to get the event target for mozilla >= 1.7rc3.
diff --git a/src/ephy-window.c b/src/ephy-window.c
index 3be64d27b..096e0ca75 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -391,6 +391,33 @@ ephy_window_get_type (void)
}
static void
+update_exit_fullscreen_popup_position (EphyWindow *window)
+{
+ GdkRectangle screen_rect;
+ int popup_height;
+
+ g_return_if_fail (window->priv->exit_fullscreen_popup != NULL);
+
+ gtk_window_get_size (GTK_WINDOW (window->priv->exit_fullscreen_popup),
+ NULL, &popup_height);
+
+ gdk_screen_get_monitor_geometry (gdk_screen_get_default (),
+ gdk_screen_get_monitor_at_window
+ (gdk_screen_get_default (),
+ GTK_WIDGET (window)->window),
+ &screen_rect);
+
+ gtk_window_move (GTK_WINDOW (window->priv->exit_fullscreen_popup),
+ screen_rect.x, screen_rect.height - popup_height);
+}
+
+static void
+size_changed_cb (GdkScreen *screen, EphyWindow *window)
+{
+ update_exit_fullscreen_popup_position (window);
+}
+
+static void
ephy_window_destroy (GtkObject *gtkobject)
{
EphyWindow *window = EPHY_WINDOW (gtkobject);
@@ -410,6 +437,10 @@ ephy_window_destroy (GtkObject *gtkobject)
if (window->priv->exit_fullscreen_popup)
{
+ g_signal_handlers_disconnect_by_func
+ (gdk_screen_get_default (),
+ G_CALLBACK (size_changed_cb), window);
+
gtk_widget_destroy (window->priv->exit_fullscreen_popup);
window->priv->exit_fullscreen_popup = NULL;
}
@@ -425,33 +456,6 @@ add_widget (GtkUIManager *merge, GtkWidget *widget, EphyWindow *window)
}
static void
-update_exit_fullscreen_popup_position (EphyWindow *window)
-{
- GdkRectangle screen_rect;
- int popup_height;
-
- g_return_if_fail (window->priv->exit_fullscreen_popup != NULL);
-
- gtk_window_get_size (GTK_WINDOW (window->priv->exit_fullscreen_popup),
- NULL, &popup_height);
-
- gdk_screen_get_monitor_geometry (gdk_screen_get_default (),
- gdk_screen_get_monitor_at_window
- (gdk_screen_get_default (),
- GTK_WIDGET (window)->window),
- &screen_rect);
-
- gtk_window_move (GTK_WINDOW (window->priv->exit_fullscreen_popup),
- screen_rect.x, screen_rect.height - popup_height);
-}
-
-static void
-size_changed_cb (GdkScreen *screen, EphyWindow *window)
-{
- update_exit_fullscreen_popup_position (window);
-}
-
-static void
exit_fullscreen_button_clicked_cb (GtkWidget *button, EphyWindow *window)
{
gtk_window_unfullscreen (GTK_WINDOW (window));