~ubuntu-branches/ubuntu/hardy/eog/hardy-updates

« back to all changes in this revision

Viewing changes to src/eog-window.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2007-12-04 11:57:27 UTC
  • mfrom: (1.1.36 upstream)
  • Revision ID: james.westby@ubuntu.com-20071204115727-lka8thyx592x3owl
Tags: 2.21.2-0ubuntu1
* New upstream version:
  New features:
  - Support for resetting the toolbar to its default layout (LP: #145327)
  Misc improvements/fixes:
  - Fixes for memory leaks and code optimizations
  - Improvements in plugin API
  - Improvements in the plugin system Python bindinds
  Bug fixes:
  - #458661, Up/Down keys in image collection
  - #491528, Use trash icon i.s.o. delete icon for move to trash menu item
  - #491826, Defaults are wrong
  - #494881, Support for exempi 1.99.5
  - #496184, Eog does not support color management
  - #499154, Specify correct type for eog_image_load and _has_data
  - #499156, Wrap eog_image_load in Python
  - #480975, Feature request : EOG lack an option to reset toolbars

Show diffs side-by-side

added added

removed removed

Lines of Context:
99
99
        EOG_WINDOW_STATUS_NORMAL
100
100
} EogWindowStatus;
101
101
 
102
 
typedef enum {
103
 
        EOG_WINDOW_MODE_UNKNOWN,
104
 
        EOG_WINDOW_MODE_NORMAL,
105
 
        EOG_WINDOW_MODE_FULLSCREEN,
106
 
        EOG_WINDOW_MODE_SLIDESHOW
107
 
} EogWindowMode;
108
 
 
109
102
enum {
110
103
        PROP_0,
111
104
        PROP_STARTUP_FLAGS
123
116
        EOG_WINDOW_TARGET_URI_LIST
124
117
};
125
118
 
 
119
/* GConfNotifications */
 
120
enum {
 
121
        EOG_WINDOW_NOTIFY_INTERPOLATE,
 
122
        EOG_WINDOW_NOTIFY_SCROLLWHEEL_ZOOM,
 
123
        EOG_WINDOW_NOTIFY_ZOOM_MULTIPLIER,
 
124
        EOG_WINDOW_NOTIFY_TRANSPARENCY,
 
125
        EOG_WINDOW_NOTIFY_TRANS_COLOR,
 
126
        EOG_WINDOW_NOTIFY_SCROLL_BUTTONS,
 
127
        EOG_WINDOW_NOTIFY_COLLECTION_POS,
 
128
        EOG_WINDOW_NOTIFY_COLLECTION_RESIZABLE,
 
129
        EOG_WINDOW_NOTIFY_CAN_SAVE,
 
130
        EOG_WINDOW_NOTIFY_LENGTH
 
131
};
 
132
 
126
133
struct _EogWindowPrivate {
127
134
        GConfClient         *client;
 
135
        guint                client_notifications[EOG_WINDOW_NOTIFY_LENGTH];
128
136
 
129
137
        EogListStore        *store;
130
138
        EogImage            *image;
414
422
                                             EOG_CONF_UI_IMAGE_COLLECTION_POSITION, 
415
423
                                             NULL, TRUE, NULL);
416
424
 
417
 
        if (mode_entry->value != NULL && mode_entry->value->type == GCONF_VALUE_INT) {
418
 
                position = gconf_value_get_int (mode_entry->value);
 
425
        if (G_LIKELY (mode_entry != NULL)) {
 
426
                if (mode_entry->value != NULL &&
 
427
                    mode_entry->value->type == GCONF_VALUE_INT) {
 
428
                        position = gconf_value_get_int (mode_entry->value);
 
429
                }
 
430
                gconf_entry_unref (mode_entry);
419
431
        }
420
432
 
421
433
        mode_entry = gconf_client_get_entry (priv->client, 
422
434
                                             EOG_CONF_UI_IMAGE_COLLECTION_RESIZABLE, 
423
435
                                             NULL, TRUE, NULL);
424
436
 
425
 
        if (mode_entry->value != NULL && mode_entry->value->type == GCONF_VALUE_BOOL) {
426
 
                resizable = gconf_value_get_bool (mode_entry->value);
 
437
        if (G_LIKELY (mode_entry != NULL)) {
 
438
                if (mode_entry->value != NULL &&
 
439
                    mode_entry->value->type == GCONF_VALUE_BOOL) {
 
440
                        resizable = gconf_value_get_bool (mode_entry->value);
 
441
                }
 
442
                gconf_entry_unref (mode_entry);
427
443
        }
428
444
 
429
445
        if (priv->collection_position == position && 
812
828
                        gtk_action_set_sensitive (action_sshow, TRUE);
813
829
                }
814
830
 
815
 
                gtk_widget_grab_focus (priv->view);
 
831
                if (show_image_collection)
 
832
                        gtk_widget_grab_focus (priv->thumbview);
 
833
                else
 
834
                        gtk_widget_grab_focus (priv->view);
816
835
        }
817
836
 
818
837
        print_disabled = gconf_client_get_bool (priv->client, 
2400
2419
        eog_dialog_show (EOG_DIALOG (pref_dlg));
2401
2420
}
2402
2421
 
 
2422
#define EOG_TB_EDITOR_DLG_RESET_RESPONSE 128
 
2423
 
2403
2424
static void
2404
2425
eog_window_cmd_edit_toolbar_cb (GtkDialog *dialog, gint response, gpointer data)
2405
2426
{
2406
2427
        EogWindow *window = EOG_WINDOW (data);
2407
2428
 
2408
 
        egg_editable_toolbar_set_edit_mode
2409
 
                (EGG_EDITABLE_TOOLBAR (window->priv->toolbar), FALSE);
2410
 
 
2411
 
        eog_application_save_toolbars_model (EOG_APP);
2412
 
 
2413
 
        gtk_widget_destroy (GTK_WIDGET (dialog));
 
2429
        if (response == EOG_TB_EDITOR_DLG_RESET_RESPONSE) {
 
2430
                EggToolbarsModel *model;
 
2431
                EggToolbarEditor *editor;
 
2432
 
 
2433
                editor = g_object_get_data (G_OBJECT (dialog),
 
2434
                                            "EggToolbarEditor");
 
2435
 
 
2436
                g_return_if_fail (editor != NULL);
 
2437
 
 
2438
                egg_editable_toolbar_set_edit_mode
 
2439
                        (EGG_EDITABLE_TOOLBAR (window->priv->toolbar), FALSE);
 
2440
 
 
2441
                eog_application_reset_toolbars_model (EOG_APP);
 
2442
                model = eog_application_get_toolbars_model (EOG_APP);
 
2443
                egg_editable_toolbar_set_model 
 
2444
                        (EGG_EDITABLE_TOOLBAR (window->priv->toolbar), model);
 
2445
                egg_toolbar_editor_set_model (editor, model);
 
2446
 
 
2447
                /* Toolbar would be uneditable now otherwise */
 
2448
                egg_editable_toolbar_set_edit_mode
 
2449
                        (EGG_EDITABLE_TOOLBAR (window->priv->toolbar), TRUE);
 
2450
        } else {
 
2451
                egg_editable_toolbar_set_edit_mode
 
2452
                        (EGG_EDITABLE_TOOLBAR (window->priv->toolbar), FALSE);
 
2453
 
 
2454
                eog_application_save_toolbars_model (EOG_APP);
 
2455
 
 
2456
                gtk_widget_destroy (GTK_WIDGET (dialog));
 
2457
        }
2414
2458
}
2415
2459
 
2416
2460
static void
2426
2470
 
2427
2471
        dialog = gtk_dialog_new_with_buttons (_("Toolbar Editor"),
2428
2472
                                              GTK_WINDOW (window), 
2429
 
                                              GTK_DIALOG_DESTROY_WITH_PARENT, 
2430
 
                                              GTK_STOCK_CLOSE,
 
2473
                                              GTK_DIALOG_DESTROY_WITH_PARENT,
 
2474
                                              _("_Reset to Default"),
 
2475
                                              EOG_TB_EDITOR_DLG_RESET_RESPONSE,
 
2476
                                              GTK_STOCK_CLOSE,
2431
2477
                                              GTK_RESPONSE_CLOSE, 
2432
2478
                                              NULL);
2433
2479
 
2454
2500
        egg_editable_toolbar_set_edit_mode
2455
2501
                (EGG_EDITABLE_TOOLBAR (window->priv->toolbar), TRUE);
2456
2502
 
 
2503
        g_object_set_data (G_OBJECT (dialog), "EggToolbarEditor", editor);
 
2504
 
2457
2505
        g_signal_connect (dialog, 
2458
2506
                          "response",
2459
2507
                          G_CALLBACK (eog_window_cmd_edit_toolbar_cb),
2579
2627
        } else if (g_ascii_strcasecmp (gtk_action_get_name (action), "ViewImageCollection") == 0) {
2580
2628
                if (visible) {
2581
2629
                        gtk_widget_show (priv->nav);
 
2630
                        gtk_widget_grab_focus (priv->thumbview);
2582
2631
                } else {
2583
2632
                        gtk_widget_hide (priv->nav);
 
2633
                        gtk_widget_grab_focus (priv->view);
2584
2634
                }
2585
2635
                gconf_client_set_bool (priv->client, EOG_CONF_UI_IMAGE_COLLECTION, visible, NULL);
2586
2636
 
3335
3385
        { "SetAsWallpaper", NULL, N_("Set As _Wallpaper"), NULL, 
3336
3386
          NULL, 
3337
3387
          G_CALLBACK (eog_window_cmd_wallpaper) },
3338
 
        { "EditMoveToTrash", GTK_STOCK_DELETE, N_("Move to _Trash"), NULL, 
 
3388
        { "EditMoveToTrash", "user-trash", N_("Move to _Trash"), NULL, 
3339
3389
          NULL, 
3340
3390
          G_CALLBACK (eog_window_cmd_move_to_trash) },
3341
3391
        { "ViewZoomIn", GTK_STOCK_ZOOM_IN, N_("_Zoom In"), "<control>plus", 
4011
4061
{
4012
4062
        GdkGeometry hints;
4013
4063
        GdkScreen *screen;
 
4064
        EogWindowPrivate *priv;
4014
4065
 
4015
4066
        eog_debug (DEBUG_WINDOW);
4016
4067
 
4019
4070
 
4020
4071
        screen = gtk_widget_get_screen (GTK_WIDGET (window));
4021
4072
 
4022
 
        window->priv = EOG_WINDOW_GET_PRIVATE (window);
 
4073
        priv = window->priv = EOG_WINDOW_GET_PRIVATE (window);
4023
4074
 
4024
 
        window->priv->client = gconf_client_get_default ();
 
4075
        priv->client = gconf_client_get_default ();
4025
4076
 
4026
4077
        gconf_client_add_dir (window->priv->client, EOG_CONF_DIR,
4027
4078
                              GCONF_CLIENT_PRELOAD_RECURSIVE, NULL);
4028
4079
 
4029
 
        gconf_client_notify_add (window->priv->client,
4030
 
                                 EOG_CONF_VIEW_INTERPOLATE,
4031
 
                                 eog_window_interp_type_changed_cb,
4032
 
                                 window, NULL, NULL);
4033
 
        
4034
 
        gconf_client_notify_add (window->priv->client,
4035
 
                                 EOG_CONF_VIEW_SCROLL_WHEEL_ZOOM,
4036
 
                                 eog_window_scroll_wheel_zoom_changed_cb,
4037
 
                                 window, NULL, NULL);
4038
 
        
4039
 
        gconf_client_notify_add (window->priv->client,
4040
 
                                 EOG_CONF_VIEW_ZOOM_MULTIPLIER,
4041
 
                                 eog_window_zoom_multiplier_changed_cb,
4042
 
                                 window, NULL, NULL);
4043
 
        
4044
 
        gconf_client_notify_add (window->priv->client,
4045
 
                                 EOG_CONF_VIEW_TRANSPARENCY,
4046
 
                                 eog_window_transparency_changed_cb,
4047
 
                                 window, NULL, NULL);
4048
 
 
4049
 
        gconf_client_notify_add (window->priv->client,
4050
 
                                 EOG_CONF_VIEW_TRANS_COLOR,
4051
 
                                 eog_window_trans_color_changed_cb,
4052
 
                                 window, NULL, NULL);
4053
 
 
4054
 
        gconf_client_notify_add (window->priv->client,
4055
 
                                 EOG_CONF_UI_SCROLL_BUTTONS,
4056
 
                                 eog_window_scroll_buttons_changed_cb,
4057
 
                                 window, NULL, NULL);
4058
 
 
4059
 
        gconf_client_notify_add (window->priv->client,
4060
 
                                 EOG_CONF_UI_IMAGE_COLLECTION_POSITION,
4061
 
                                 eog_window_collection_mode_changed_cb,
4062
 
                                 window, NULL, NULL);
4063
 
 
4064
 
        gconf_client_notify_add (window->priv->client,
4065
 
                                 EOG_CONF_UI_IMAGE_COLLECTION_RESIZABLE,
4066
 
                                 eog_window_collection_mode_changed_cb,
4067
 
                                 window, NULL, NULL);
4068
 
        
4069
 
        gconf_client_notify_add (window->priv->client,
4070
 
                                 EOG_CONF_DESKTOP_CAN_SAVE,
4071
 
                                 eog_window_can_save_changed_cb,
4072
 
                                 window, NULL, NULL);
 
4080
        priv->client_notifications[EOG_WINDOW_NOTIFY_INTERPOLATE] = 
 
4081
                gconf_client_notify_add (window->priv->client,
 
4082
                                        EOG_CONF_VIEW_INTERPOLATE,
 
4083
                                         eog_window_interp_type_changed_cb,
 
4084
                                         window, NULL, NULL);
 
4085
        
 
4086
        priv->client_notifications[EOG_WINDOW_NOTIFY_SCROLLWHEEL_ZOOM] =
 
4087
                gconf_client_notify_add (window->priv->client,
 
4088
                                         EOG_CONF_VIEW_SCROLL_WHEEL_ZOOM,
 
4089
                                         eog_window_scroll_wheel_zoom_changed_cb,
 
4090
                                         window, NULL, NULL);
 
4091
 
 
4092
        priv->client_notifications[EOG_WINDOW_NOTIFY_ZOOM_MULTIPLIER] =
 
4093
                gconf_client_notify_add (window->priv->client,
 
4094
                                         EOG_CONF_VIEW_ZOOM_MULTIPLIER,
 
4095
                                         eog_window_zoom_multiplier_changed_cb,
 
4096
                                         window, NULL, NULL);
 
4097
 
 
4098
        priv->client_notifications[EOG_WINDOW_NOTIFY_TRANSPARENCY] =
 
4099
                gconf_client_notify_add (window->priv->client,
 
4100
                                         EOG_CONF_VIEW_TRANSPARENCY,
 
4101
                                         eog_window_transparency_changed_cb,
 
4102
                                         window, NULL, NULL);
 
4103
 
 
4104
        priv->client_notifications[EOG_WINDOW_NOTIFY_TRANS_COLOR] =
 
4105
                gconf_client_notify_add (window->priv->client,
 
4106
                                         EOG_CONF_VIEW_TRANS_COLOR,
 
4107
                                         eog_window_trans_color_changed_cb,
 
4108
                                         window, NULL, NULL);
 
4109
 
 
4110
        priv->client_notifications[EOG_WINDOW_NOTIFY_SCROLL_BUTTONS] =
 
4111
                gconf_client_notify_add (window->priv->client,
 
4112
                                         EOG_CONF_UI_SCROLL_BUTTONS,
 
4113
                                         eog_window_scroll_buttons_changed_cb,
 
4114
                                         window, NULL, NULL);
 
4115
 
 
4116
        priv->client_notifications[EOG_WINDOW_NOTIFY_COLLECTION_POS] =
 
4117
                gconf_client_notify_add (window->priv->client,
 
4118
                                         EOG_CONF_UI_IMAGE_COLLECTION_POSITION,
 
4119
                                         eog_window_collection_mode_changed_cb,
 
4120
                                         window, NULL, NULL);
 
4121
 
 
4122
        priv->client_notifications[EOG_WINDOW_NOTIFY_COLLECTION_RESIZABLE] =
 
4123
                gconf_client_notify_add (window->priv->client,
 
4124
                                         EOG_CONF_UI_IMAGE_COLLECTION_RESIZABLE,
 
4125
                                         eog_window_collection_mode_changed_cb,
 
4126
                                         window, NULL, NULL);
 
4127
 
 
4128
        priv->client_notifications[EOG_WINDOW_NOTIFY_CAN_SAVE] =
 
4129
                gconf_client_notify_add (window->priv->client,
 
4130
                                         EOG_CONF_DESKTOP_CAN_SAVE,
 
4131
                                         eog_window_can_save_changed_cb,
 
4132
                                         window, NULL, NULL);
4073
4133
 
4074
4134
        window->priv->store = NULL;
4075
4135
        window->priv->image = NULL;
4111
4171
}
4112
4172
 
4113
4173
static void
 
4174
eog_window_destroy (GtkObject *object)
 
4175
{
 
4176
        eog_plugin_engine_shutdown ();
 
4177
}
 
4178
 
 
4179
static void
4114
4180
eog_window_dispose (GObject *object)
4115
4181
{
4116
4182
        EogWindow *window;
4181
4247
        eog_window_clear_transform_job (window);
4182
4248
 
4183
4249
        if (priv->client) {
 
4250
                int i;
 
4251
 
 
4252
                for (i = 0; i < EOG_WINDOW_NOTIFY_LENGTH; ++i) {
 
4253
                        gconf_client_notify_remove (priv->client,
 
4254
                                                 priv->client_notifications[i]);
 
4255
                }
4184
4256
                gconf_client_remove_dir (priv->client, EOG_CONF_DIR, NULL);
4185
4257
                g_object_unref (priv->client);
4186
4258
                priv->client = NULL;
4247
4319
{
4248
4320
        GtkContainer *tbcontainer = GTK_CONTAINER ((EOG_WINDOW (widget)->priv->toolbar));
4249
4321
        gint result = FALSE;
 
4322
        gboolean handle_selection = FALSE;
4250
4323
 
4251
4324
        switch (event->keyval) {
4252
4325
        case GDK_space:
 
4326
                if (event->state & GDK_CONTROL_MASK) {
 
4327
                        handle_selection = TRUE;
 
4328
                        break;
 
4329
                };
4253
4330
        case GDK_Return:
4254
4331
                if (tbcontainer->focus_child == NULL) {
4255
4332
                        /* Image properties dialog case */
4279
4356
        case GDK_Left:
4280
4357
                if (tbcontainer->focus_child != NULL)
4281
4358
                        break;
 
4359
                if (!GTK_WIDGET_VISIBLE (EOG_WINDOW (widget)->priv->nav)) {
 
4360
                        eog_window_cmd_go_prev (NULL, EOG_WINDOW (widget));
 
4361
                        result = TRUE;
 
4362
                        break;
 
4363
                }
 
4364
        case GDK_Right:
 
4365
        case GDK_Down:
 
4366
                if (tbcontainer->focus_child != NULL)
 
4367
                        break;
 
4368
                if (!GTK_WIDGET_VISIBLE (EOG_WINDOW (widget)->priv->nav)) {
 
4369
                        eog_window_cmd_go_next (NULL, EOG_WINDOW (widget));
 
4370
                        result = TRUE;
 
4371
                        break;
 
4372
                }
4282
4373
        case GDK_Page_Up:
4283
 
                if (!eog_scroll_view_scrollbars_visible (EOG_SCROLL_VIEW (EOG_WINDOW (widget)->priv->view))) {
4284
 
                        eog_thumb_view_select_single (EOG_THUMB_VIEW (EOG_WINDOW (widget)->priv->thumbview), 
4285
 
                                                      EOG_THUMB_VIEW_SELECT_LEFT);
4286
 
                        result = TRUE;          
4287
 
                }
4288
 
 
4289
 
                if (EOG_WINDOW (widget)->priv->mode == EOG_WINDOW_MODE_SLIDESHOW) {
4290
 
                        slideshow_set_timeout (EOG_WINDOW (widget));
4291
 
                }
4292
 
                
4293
 
                break;
4294
 
        case GDK_Down:
4295
 
        case GDK_Right:
4296
 
                if (tbcontainer->focus_child != NULL)
4297
 
                        break;
4298
4374
        case GDK_Page_Down:
4299
4375
                if (!eog_scroll_view_scrollbars_visible (EOG_SCROLL_VIEW (EOG_WINDOW (widget)->priv->view))) {
4300
 
                        eog_thumb_view_select_single (EOG_THUMB_VIEW (EOG_WINDOW (widget)->priv->thumbview), 
4301
 
                                                      EOG_THUMB_VIEW_SELECT_RIGHT);
4302
 
                        result = TRUE;
 
4376
                        handle_selection = TRUE;
4303
4377
                }
 
4378
                break;
 
4379
        }
 
4380
        
 
4381
        if (handle_selection == TRUE && result == FALSE) {
 
4382
                gtk_widget_grab_focus (GTK_WIDGET (EOG_WINDOW (widget)->priv->thumbview));
 
4383
 
 
4384
                result = gtk_widget_event (GTK_WIDGET (EOG_WINDOW (widget)->priv->thumbview), 
 
4385
                                           (GdkEvent *) event);
4304
4386
 
4305
4387
                if (EOG_WINDOW (widget)->priv->mode == EOG_WINDOW_MODE_SLIDESHOW) {
4306
4388
                        slideshow_set_timeout (EOG_WINDOW (widget));
4307
4389
                }
4308
 
 
4309
 
                break;
4310
4390
        }
4311
4391
 
4312
4392
        if (result == FALSE && GTK_WIDGET_CLASS (eog_window_parent_class)->key_press_event) {
4313
4393
                result = (* GTK_WIDGET_CLASS (eog_window_parent_class)->key_press_event) (widget, event);
4314
4394
        }
4315
 
 
 
4395
        
4316
4396
        return result;
4317
4397
}
4318
4398
 
4501
4581
{
4502
4582
        GObjectClass *g_object_class = (GObjectClass *) class;
4503
4583
        GtkWidgetClass *widget_class = (GtkWidgetClass *) class;
 
4584
        GtkObjectClass *gtk_object_class = (GObjectClass *) class;
4504
4585
 
4505
4586
        g_object_class->constructor = eog_window_constructor;
4506
4587
        g_object_class->dispose = eog_window_dispose;
4508
4589
        g_object_class->set_property = eog_window_set_property;
4509
4590
        g_object_class->get_property = eog_window_get_property;
4510
4591
 
 
4592
        gtk_object_class->destroy = eog_window_destroy;
 
4593
 
4511
4594
        widget_class->delete_event = eog_window_delete;
4512
4595
        widget_class->key_press_event = eog_window_key_press;
4513
4596
        widget_class->button_press_event = eog_window_button_press;
4688
4771
        return window->priv->ui_mgr;
4689
4772
}
4690
4773
 
 
4774
EogWindowMode
 
4775
eog_window_get_mode (EogWindow *window)
 
4776
{
 
4777
        g_return_val_if_fail (EOG_IS_WINDOW (window), EOG_WINDOW_MODE_UNKNOWN);
 
4778
 
 
4779
        return window->priv->mode;
 
4780
}
 
4781
 
 
4782
void
 
4783
eog_window_set_mode (EogWindow *window, EogWindowMode mode)
 
4784
{
 
4785
        g_return_if_fail (EOG_IS_WINDOW (window));
 
4786
 
 
4787
        if (window->priv->mode == mode)
 
4788
                return;
 
4789
 
 
4790
        switch (mode) {
 
4791
        case EOG_WINDOW_MODE_NORMAL:
 
4792
                eog_window_stop_fullscreen (window, 
 
4793
                                            window->priv->mode == EOG_WINDOW_MODE_SLIDESHOW);
 
4794
                break;
 
4795
        case EOG_WINDOW_MODE_FULLSCREEN:
 
4796
                eog_window_run_fullscreen (window, FALSE);
 
4797
                break;
 
4798
        case EOG_WINDOW_MODE_SLIDESHOW:
 
4799
                eog_window_run_fullscreen (window, TRUE);
 
4800
                break;
 
4801
        case EOG_WINDOW_MODE_UNKNOWN:
 
4802
                break;
 
4803
        }
 
4804
}
 
4805
 
4691
4806
EogListStore *
4692
4807
eog_window_get_store (EogWindow *window)
4693
4808
{
4697
4812
}
4698
4813
 
4699
4814
GtkWidget *
 
4815
eog_window_get_view (EogWindow *window)
 
4816
{
 
4817
        g_return_val_if_fail (EOG_IS_WINDOW (window), NULL);
 
4818
 
 
4819
       return window->priv->view;
 
4820
}
 
4821
 
 
4822
GtkWidget *
4700
4823
eog_window_get_sidebar (EogWindow *window)
4701
4824
{
4702
4825
        g_return_val_if_fail (EOG_IS_WINDOW (window), NULL);