diff options
author | Jens Finke <jens@triq.net> | 2003-03-03 11:50:31 +0000 |
---|---|---|
committer | Jens Finke <jens@src.gnome.org> | 2003-03-03 11:50:31 +0000 |
commit | 68037f53f325f0ffca4b36e30f96cc8307635355 (patch) | |
tree | ca7226b91257618ff8ed52c73f79a1a2a8b52cc8 /shell | |
parent | 7f41fab654649ca281232d4bfbdde8ff59c48bec (diff) | |
download | eog-68037f53f325f0ffca4b36e30f96cc8307635355.tar.gz |
Check for ctrl_frame != NULL. (eog_window_construct): Don't create
2003-03-03 Jens Finke <jens@triq.net>
* shell/eog-window.c (eog_window_has_contents): Check for
ctrl_frame != NULL.
(eog_window_construct): Don't create BonoboControlFrame here ...
(eog_window_open_list): ... but here. So we get a fresh control
frame for each new BonoboControl.
Diffstat (limited to 'shell')
-rw-r--r-- | shell/eog-window.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/shell/eog-window.c b/shell/eog-window.c index d5eed2c6..aa661b0b 100644 --- a/shell/eog-window.c +++ b/shell/eog-window.c @@ -543,7 +543,7 @@ eog_window_has_contents (EogWindow *window) { g_return_val_if_fail (EOG_IS_WINDOW (window), FALSE); - return (bonobo_control_frame_get_control (window->priv->ctrl_frame) != CORBA_OBJECT_NIL); + return (window->priv->ctrl_frame != NULL); } /* Drag_data_received handler for windows */ @@ -654,10 +654,7 @@ eog_window_construct (EogWindow *window) gtk_widget_show (GTK_WIDGET (priv->statusbar)); /* add control frame interface */ - priv->ctrl_frame = bonobo_control_frame_new (BONOBO_OBJREF (ui_container)); - bonobo_control_frame_set_autoactivate (priv->ctrl_frame, FALSE); - g_signal_connect (G_OBJECT (priv->ctrl_frame), "activate_uri", - (GtkSignalFunc) activate_uri_cb, NULL); + priv->ctrl_frame = NULL; set_drag_dest (window); @@ -907,6 +904,7 @@ eog_window_open (EogWindow *win, const char *iid, const char *text_uri, GError * gboolean eog_window_open_list (EogWindow *window, const char *iid, GList *text_uri_list, GError **error) { + BonoboUIContainer *ui_container; Bonobo_Control control; Bonobo_PersistFile pfile; CORBA_Environment ev; @@ -923,12 +921,23 @@ eog_window_open_list (EogWindow *window, const char *iid, GList *text_uri_list, CORBA_exception_init (&ev); /* remove previously loaded control */ - if (priv->ctrl_widget != NULL) { + if (priv->ctrl_frame != NULL) { gtk_container_remove (GTK_CONTAINER (priv->box), GTK_WIDGET (priv->ctrl_widget)); + bonobo_object_unref (priv->ctrl_frame); + gtk_widget_destroy (priv->ctrl_widget); priv->ctrl_widget = NULL; - bonobo_control_frame_bind_to_control (priv->ctrl_frame, CORBA_OBJECT_NIL, &ev); + priv->ctrl_frame = NULL; } + g_assert (priv->ctrl_frame == NULL); + + /* create control frame */ + ui_container = bonobo_window_get_ui_container (BONOBO_WINDOW (window)); + priv->ctrl_frame = bonobo_control_frame_new (BONOBO_OBJREF (ui_container)); + bonobo_control_frame_set_autoactivate (priv->ctrl_frame, FALSE); + g_signal_connect (G_OBJECT (priv->ctrl_frame), "activate_uri", + (GtkSignalFunc) activate_uri_cb, NULL); + priv->desired_width = -1; priv->desired_height = -1; |