Documentation: Use G_SOURCE_CONTINUE and G_SOURCE_REMOVE
[geeqie.git] / src / layout-util.cc
index af35e29..dfa538a 100644 (file)
@@ -97,7 +97,7 @@ static gboolean layout_key_match(guint keyval)
 
 gboolean layout_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        GtkWidget *focused;
        gboolean stop_signal = FALSE;
        gint x = 0;
@@ -251,7 +251,7 @@ static void layout_menu_clear_marks_cb(GtkAction *UNUSED(action), gpointer UNUSE
 
 static void layout_menu_new_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        collection_window_new(NULL);
@@ -259,7 +259,7 @@ static void layout_menu_new_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_open_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        collection_dialog_load(NULL);
@@ -267,7 +267,7 @@ static void layout_menu_open_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_search_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        search_new(lw->dir_fd, layout_image_get_fd(lw));
@@ -275,7 +275,7 @@ static void layout_menu_search_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_dupes_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        dupe_window_new();
@@ -283,7 +283,7 @@ static void layout_menu_dupes_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_pan_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        pan_window_new(lw->dir_fd);
@@ -291,56 +291,56 @@ static void layout_menu_pan_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_print_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        print_window_new(layout_image_get_fd(lw), layout_selection_list(lw), layout_list(lw), layout_window(lw));
 }
 
 static void layout_menu_dir_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        if (lw->vd) vd_new_folder(lw->vd, lw->dir_fd);
 }
 
 static void layout_menu_copy_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        file_util_copy(NULL, layout_selection_list(lw), NULL, layout_window(lw));
 }
 
 static void layout_menu_copy_path_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        file_util_copy_path_list_to_clipboard(layout_selection_list(lw), TRUE);
 }
 
 static void layout_menu_copy_path_unquoted_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        file_util_copy_path_list_to_clipboard(layout_selection_list(lw), FALSE);
 }
 
 static void layout_menu_move_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        file_util_move(NULL, layout_selection_list(lw), NULL, layout_window(lw));
 }
 
 static void layout_menu_rename_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        file_util_rename(NULL, layout_selection_list(lw), layout_window(lw));
 }
 
 static void layout_menu_delete_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        options->file_ops.safe_delete_enable = FALSE;
        file_util_delete(NULL, layout_selection_list(lw), layout_window(lw));
@@ -348,7 +348,7 @@ static void layout_menu_delete_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_move_to_trash_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        options->file_ops.safe_delete_enable = TRUE;
        file_util_delete(NULL, layout_selection_list(lw), layout_window(lw));
@@ -356,7 +356,7 @@ static void layout_menu_move_to_trash_cb(GtkAction *UNUSED(action), gpointer dat
 
 static void layout_menu_move_to_trash_key_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        if (options->file_ops.enable_delete_key)
                {
@@ -367,21 +367,21 @@ static void layout_menu_move_to_trash_key_cb(GtkAction *UNUSED(action), gpointer
 
 static void layout_menu_disable_grouping_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        file_data_disable_grouping_list(layout_selection_list(lw), TRUE);
 }
 
 static void layout_menu_enable_grouping_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        file_data_disable_grouping_list(layout_selection_list(lw), FALSE);
 }
 
 void layout_menu_close_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        layout_close(lw);
@@ -394,98 +394,98 @@ static void layout_menu_exit_cb(GtkAction *UNUSED(action), gpointer UNUSED(data)
 
 static void layout_menu_alter_90_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_alter_orientation(lw, ALTER_ROTATE_90);
 }
 
 static void layout_menu_rating_0_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_rating(lw, "0");
 }
 
 static void layout_menu_rating_1_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_rating(lw, "1");
 }
 
 static void layout_menu_rating_2_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_rating(lw, "2");
 }
 
 static void layout_menu_rating_3_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_rating(lw, "3");
 }
 
 static void layout_menu_rating_4_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_rating(lw, "4");
 }
 
 static void layout_menu_rating_5_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_rating(lw, "5");
 }
 
 static void layout_menu_rating_m1_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_rating(lw, "-1");
 }
 
 static void layout_menu_alter_90cc_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_alter_orientation(lw, ALTER_ROTATE_90_CC);
 }
 
 static void layout_menu_alter_180_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_alter_orientation(lw, ALTER_ROTATE_180);
 }
 
 static void layout_menu_alter_mirror_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_alter_orientation(lw, ALTER_MIRROR);
 }
 
 static void layout_menu_alter_flip_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_alter_orientation(lw, ALTER_FLIP);
 }
 
 static void layout_menu_alter_desaturate_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_set_desaturate(lw, gtk_toggle_action_get_active(action));
 }
 
 static void layout_menu_alter_ignore_alpha_cb(GtkToggleAction *action, gpointer data)
 {
-   LayoutWindow *lw = (LayoutWindow *)data;
+   LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        if (lw->options.ignore_alpha == gtk_toggle_action_get_active(action)) return;
 
@@ -494,14 +494,14 @@ static void layout_menu_alter_ignore_alpha_cb(GtkToggleAction *action, gpointer
 
 static void layout_menu_alter_none_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_alter_orientation(lw, ALTER_NONE);
 }
 
 static void layout_menu_exif_rotate_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        options->image.exif_rotate_enable = gtk_toggle_action_get_active(action);
        layout_image_reset_orientation(lw);
@@ -514,21 +514,21 @@ static void layout_menu_select_rectangle_cb(GtkToggleAction *action, gpointer UN
 
 static void layout_menu_split_pane_sync_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        lw->options.split_pane_sync = gtk_toggle_action_get_active(action);
 }
 
 static void layout_menu_select_overunderexposed_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_set_overunderexposed(lw, gtk_toggle_action_get_active(action));
 }
 
 static void layout_menu_write_rotate(GtkToggleAction *UNUSED(action), gpointer data, gboolean keep_date)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        GtkTreeModel *store;
        GList *work;
        GtkTreeSelection *selection;
@@ -561,12 +561,12 @@ static void layout_menu_write_rotate(GtkToggleAction *UNUSED(action), gpointer d
                {
                if (lw->vf->type == FILEVIEW_ICON)
                        {
-                       fd_n = work->data;
+                       fd_n = static_cast<FileData *>(work->data);
                        work = work->next;
                        }
                else
                        {
-                       tpath = work->data;
+                       tpath = static_cast<GtkTreePath *>(work->data);
                        gtk_tree_model_get_iter(store, &iter, tpath);
                        gtk_tree_model_get(store, &iter, FILE_COLUMN_POINTER, &fd_n, -1);
                        work = work->next;
@@ -629,7 +629,7 @@ static void layout_menu_write_rotate_cb(GtkToggleAction *action, gpointer data)
 
 static void layout_menu_config_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        show_config_window(lw);
@@ -637,7 +637,7 @@ static void layout_menu_config_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_editors_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        show_editor_list_window();
@@ -645,7 +645,7 @@ static void layout_menu_editors_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_layout_config_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        layout_show_config_window(lw);
@@ -653,7 +653,7 @@ static void layout_menu_layout_config_cb(GtkAction *UNUSED(action), gpointer dat
 
 static void layout_menu_remove_thumb_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        cache_manager_show();
@@ -661,7 +661,7 @@ static void layout_menu_remove_thumb_cb(GtkAction *UNUSED(action), gpointer data
 
 static void layout_menu_wallpaper_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_to_root(lw);
 }
@@ -669,83 +669,83 @@ static void layout_menu_wallpaper_cb(GtkAction *UNUSED(action), gpointer data)
 /* single window zoom */
 static void layout_menu_zoom_in_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_adjust(lw, get_zoom_increment(), FALSE);
 }
 
 static void layout_menu_zoom_out_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_adjust(lw, -get_zoom_increment(), FALSE);
 }
 
 static void layout_menu_zoom_1_1_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set(lw, 1.0, FALSE);
 }
 
 static void layout_menu_zoom_fit_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set(lw, 0.0, FALSE);
 }
 
 static void layout_menu_zoom_fit_hor_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set_fill_geometry(lw, FALSE, FALSE);
 }
 
 static void layout_menu_zoom_fit_vert_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set_fill_geometry(lw, TRUE, FALSE);
 }
 
 static void layout_menu_zoom_2_1_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set(lw, 2.0, FALSE);
 }
 
 static void layout_menu_zoom_3_1_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set(lw, 3.0, FALSE);
 }
 static void layout_menu_zoom_4_1_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set(lw, 4.0, FALSE);
 }
 
 static void layout_menu_zoom_1_2_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set(lw, -2.0, FALSE);
 }
 
 static void layout_menu_zoom_1_3_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set(lw, -3.0, FALSE);
 }
 
 static void layout_menu_zoom_1_4_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set(lw, -4.0, FALSE);
 }
@@ -753,83 +753,83 @@ static void layout_menu_zoom_1_4_cb(GtkAction *UNUSED(action), gpointer data)
 /* connected zoom */
 static void layout_menu_connect_zoom_in_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_adjust(lw, get_zoom_increment(), TRUE);
 }
 
 static void layout_menu_connect_zoom_out_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_adjust(lw, -get_zoom_increment(), TRUE);
 }
 
 static void layout_menu_connect_zoom_1_1_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set(lw, 1.0, TRUE);
 }
 
 static void layout_menu_connect_zoom_fit_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set(lw, 0.0, TRUE);
 }
 
 static void layout_menu_connect_zoom_fit_hor_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set_fill_geometry(lw, FALSE, TRUE);
 }
 
 static void layout_menu_connect_zoom_fit_vert_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set_fill_geometry(lw, TRUE, TRUE);
 }
 
 static void layout_menu_connect_zoom_2_1_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set(lw, 2.0, TRUE);
 }
 
 static void layout_menu_connect_zoom_3_1_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set(lw, 3.0, TRUE);
 }
 static void layout_menu_connect_zoom_4_1_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set(lw, 4.0, TRUE);
 }
 
 static void layout_menu_connect_zoom_1_2_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set(lw, -2.0, TRUE);
 }
 
 static void layout_menu_connect_zoom_1_3_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set(lw, -3.0, TRUE);
 }
 
 static void layout_menu_connect_zoom_1_4_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_zoom_set(lw, -4.0, TRUE);
 }
@@ -837,18 +837,18 @@ static void layout_menu_connect_zoom_1_4_cb(GtkAction *UNUSED(action), gpointer
 
 static void layout_menu_split_cb(GtkRadioAction *action, GtkRadioAction *UNUSED(current), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        ImageSplitMode mode;
 
        layout_exit_fullscreen(lw);
-       mode = gtk_radio_action_get_current_value(action);
+       mode = static_cast<ImageSplitMode>(gtk_radio_action_get_current_value(action));
        layout_split_change(lw, mode);
 }
 
 
 static void layout_menu_thumb_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_thumb_set(lw, gtk_toggle_action_get_active(action));
 }
@@ -856,7 +856,7 @@ static void layout_menu_thumb_cb(GtkToggleAction *action, gpointer data)
 
 static void layout_menu_list_cb(GtkRadioAction *action, GtkRadioAction *UNUSED(current), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        layout_views_set(lw, lw->options.dir_view_type, (FileViewType) gtk_radio_action_get_current_value(action));
@@ -864,7 +864,7 @@ static void layout_menu_list_cb(GtkRadioAction *action, GtkRadioAction *UNUSED(c
 
 static void layout_menu_view_dir_as_cb(GtkToggleAction *action,  gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
 
@@ -880,7 +880,7 @@ static void layout_menu_view_dir_as_cb(GtkToggleAction *action,  gpointer data)
 
 static void layout_menu_view_in_new_window_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        view_window_new(layout_image_get_fd(lw));
@@ -888,7 +888,7 @@ static void layout_menu_view_in_new_window_cb(GtkAction *UNUSED(action), gpointe
 
 static void layout_menu_open_archive_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        LayoutWindow *lw_new;
        gchar *dest_dir;
        FileData *fd;
@@ -914,21 +914,21 @@ static void layout_menu_open_archive_cb(GtkAction *UNUSED(action), gpointer data
 
 static void layout_menu_fullscreen_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_full_screen_toggle(lw);
 }
 
 static void layout_menu_escape_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
 }
 
 static void layout_menu_overlay_toggle_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        image_osd_toggle(lw->image);
        layout_util_sync_views(lw);
@@ -937,14 +937,14 @@ static void layout_menu_overlay_toggle_cb(GtkAction *UNUSED(action), gpointer da
 
 static void layout_menu_overlay_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        if (gtk_toggle_action_get_active(action))
                {
                OsdShowFlags flags = image_osd_get(lw->image);
 
                if ((flags | OSD_SHOW_INFO | OSD_SHOW_STATUS) != flags)
-                       image_osd_set(lw->image, flags | OSD_SHOW_INFO | OSD_SHOW_STATUS);
+                       image_osd_set(lw->image, static_cast<OsdShowFlags>(flags | OSD_SHOW_INFO | OSD_SHOW_STATUS));
                }
        else
                {
@@ -957,24 +957,24 @@ static void layout_menu_overlay_cb(GtkToggleAction *action, gpointer data)
 
 static void layout_menu_histogram_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        if (gtk_toggle_action_get_active(action))
                {
-               image_osd_set(lw->image, OSD_SHOW_INFO | OSD_SHOW_STATUS | OSD_SHOW_HISTOGRAM);
+               image_osd_set(lw->image, static_cast<OsdShowFlags>(OSD_SHOW_INFO | OSD_SHOW_STATUS | OSD_SHOW_HISTOGRAM));
                layout_util_sync_views(lw); /* show the overlay state, default channel and mode in the menu */
                }
        else
                {
                OsdShowFlags flags = image_osd_get(lw->image);
                if (flags & OSD_SHOW_HISTOGRAM)
-                       image_osd_set(lw->image, flags & ~OSD_SHOW_HISTOGRAM);
+                       image_osd_set(lw->image, static_cast<OsdShowFlags>(flags & ~OSD_SHOW_HISTOGRAM));
                }
 }
 
 static void layout_menu_animate_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        if (lw->options.animate == gtk_toggle_action_get_active(action)) return;
        layout_image_animate_toggle(lw);
@@ -987,7 +987,7 @@ static void layout_menu_rectangular_selection_cb(GtkToggleAction *action, gpoint
 
 static void layout_menu_histogram_toggle_channel_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        image_osd_histogram_toggle_channel(lw->image);
        layout_util_sync_views(lw);
@@ -995,7 +995,7 @@ static void layout_menu_histogram_toggle_channel_cb(GtkAction *UNUSED(action), g
 
 static void layout_menu_histogram_toggle_mode_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        image_osd_histogram_toggle_mode(lw->image);
        layout_util_sync_views(lw);
@@ -1003,7 +1003,7 @@ static void layout_menu_histogram_toggle_mode_cb(GtkAction *UNUSED(action), gpoi
 
 static void layout_menu_histogram_channel_cb(GtkRadioAction *action, GtkRadioAction *UNUSED(current), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint channel = gtk_radio_action_get_current_value(action);
        GtkToggleAction *histogram_action = GTK_TOGGLE_ACTION(gtk_action_group_get_action(lw->action_group, "ImageHistogram"));
 
@@ -1015,7 +1015,7 @@ static void layout_menu_histogram_channel_cb(GtkRadioAction *action, GtkRadioAct
 
 static void layout_menu_histogram_mode_cb(GtkRadioAction *action, GtkRadioAction *UNUSED(current), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint mode = gtk_radio_action_get_current_value(action);
        GtkToggleAction *histogram_action = GTK_TOGGLE_ACTION(gtk_action_group_get_action(lw->action_group, "ImageHistogram"));
 
@@ -1027,14 +1027,14 @@ static void layout_menu_histogram_mode_cb(GtkRadioAction *action, GtkRadioAction
 
 static void layout_menu_refresh_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_refresh(lw);
 }
 
 static void layout_menu_bar_exif_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        layout_exif_window_new(lw);
@@ -1042,7 +1042,7 @@ static void layout_menu_bar_exif_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_search_and_run_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        layout_search_and_run_window_new(lw);
@@ -1051,7 +1051,7 @@ static void layout_menu_search_and_run_cb(GtkAction *UNUSED(action), gpointer da
 
 static void layout_menu_float_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        if (lw->options.tools_float == gtk_toggle_action_get_active(action)) return;
 
@@ -1061,7 +1061,7 @@ static void layout_menu_float_cb(GtkToggleAction *action, gpointer data)
 
 static void layout_menu_hide_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        layout_tools_hide_toggle(lw);
@@ -1069,7 +1069,7 @@ static void layout_menu_hide_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_toolbar_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        if (lw->options.toolbar_hidden == gtk_toggle_action_get_active(action)) return;
 
@@ -1079,7 +1079,7 @@ static void layout_menu_toolbar_cb(GtkToggleAction *action, gpointer data)
 
 static void layout_menu_info_pixel_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        if (lw->options.show_info_pixel == gtk_toggle_action_get_active(action)) return;
 
@@ -1090,7 +1090,7 @@ static void layout_menu_info_pixel_cb(GtkToggleAction *action, gpointer data)
 /* NOTE: these callbacks are called also from layout_util_sync_views */
 static void layout_menu_bar_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        if (layout_bar_enabled(lw) == gtk_toggle_action_get_active(action)) return;
 
@@ -1100,7 +1100,7 @@ static void layout_menu_bar_cb(GtkToggleAction *action, gpointer data)
 
 static void layout_menu_bar_sort_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        if (layout_bar_sort_enabled(lw) == gtk_toggle_action_get_active(action)) return;
 
@@ -1110,7 +1110,7 @@ static void layout_menu_bar_sort_cb(GtkToggleAction *action, gpointer data)
 
 static void layout_menu_hide_bars_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        if (lw->options.bars_state.hidden == gtk_toggle_action_get_active(action))
                {
@@ -1121,7 +1121,7 @@ static void layout_menu_hide_bars_cb(GtkToggleAction *action, gpointer data)
 
 static void layout_menu_slideshow_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        if (layout_image_slideshow_active(lw) == gtk_toggle_action_get_active(action)) return;
        layout_image_slideshow_toggle(lw);
@@ -1129,7 +1129,7 @@ static void layout_menu_slideshow_cb(GtkToggleAction *action, gpointer data)
 
 static void layout_menu_slideshow_pause_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_image_slideshow_pause_toggle(lw);
 }
@@ -1151,7 +1151,7 @@ static void layout_menu_slideshow_faster_cb(GtkAction *UNUSED(action), gpointer
 
 static void layout_menu_stereo_mode_next_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint mode = layout_image_stereo_pixbuf_get(lw);
 
        /* 0->1, 1->2, 2->3, 3->1 - disable auto, then cycle */
@@ -1169,14 +1169,14 @@ static void layout_menu_stereo_mode_next_cb(GtkAction *UNUSED(action), gpointer
 
 static void layout_menu_stereo_mode_cb(GtkRadioAction *action, GtkRadioAction *UNUSED(current), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint mode = gtk_radio_action_get_current_value(action);
        layout_image_stereo_pixbuf_set(lw, mode);
 }
 
 static void layout_menu_help_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        help_window_show("index.html");
@@ -1184,7 +1184,7 @@ static void layout_menu_help_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_help_search_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        help_search_window_show();
@@ -1192,7 +1192,7 @@ static void layout_menu_help_search_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_help_keys_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        help_window_show("GuideReferenceKeyboardShortcuts.html");
@@ -1200,7 +1200,7 @@ static void layout_menu_help_keys_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_notes_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        help_window_show("release_notes");
@@ -1208,7 +1208,7 @@ static void layout_menu_notes_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_changelog_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        help_window_show("changelog");
@@ -1255,7 +1255,7 @@ static void layout_menu_foreach_func(
        gchar *key_name, *menu_name;
        gchar **subset_lt_arr, **subset_gt_arr;
        gchar *subset_lt, *converted_name;
-       GPtrArray *array = (GPtrArray *)data;
+       GPtrArray *array = static_cast<GPtrArray *>(data);
 
        path = g_strescape(accel_path, NULL);
        name = gtk_accelerator_name(accel_key, accel_mods);
@@ -1293,7 +1293,8 @@ static void layout_menu_kbd_map_cb(GtkAction *UNUSED(action), gpointer UNUSED(da
        GError *error = NULL;
        GIOChannel *channel;
        char **pre_key, **post_key;
-       char *key_name, *converted_line;
+       const char *key_name;
+       char *converted_line;
        int keymap_index;
        guint index;
 
@@ -1323,9 +1324,9 @@ static void layout_menu_kbd_map_cb(GtkAction *UNUSED(action), gpointer UNUSED(da
                                key_name = " ";
                                for (index=0; index < array->len-2; index=index+2)
                                        {
-                                       if (!(g_ascii_strcasecmp(g_ptr_array_index(array,index+1), post_key[0])))
+                                       if (!(g_ascii_strcasecmp(static_cast<const gchar *>(g_ptr_array_index(array,index+1)), post_key[0])))
                                                {
-                                               key_name = g_ptr_array_index(array,index+0);
+                                               key_name = static_cast<const gchar *>(g_ptr_array_index(array,index+0));
                                                break;
                                                }
                                        }
@@ -1378,7 +1379,7 @@ static void layout_menu_kbd_map_cb(GtkAction *UNUSED(action), gpointer UNUSED(da
 
 static void layout_menu_about_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        show_about_window(lw);
@@ -1386,7 +1387,7 @@ static void layout_menu_about_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_log_window_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_exit_fullscreen(lw);
        log_window_new(lw);
@@ -1401,35 +1402,35 @@ static void layout_menu_log_window_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_select_all_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_select_all(lw);
 }
 
 static void layout_menu_unselect_all_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_select_none(lw);
 }
 
 static void layout_menu_invert_selection_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_select_invert(lw);
 }
 
 static void layout_menu_file_filter_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_file_filter_set(lw, gtk_toggle_action_get_active(action));
 }
 
 static void layout_menu_marks_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_marks_set(lw, gtk_toggle_action_get_active(action));
 }
@@ -1437,7 +1438,7 @@ static void layout_menu_marks_cb(GtkToggleAction *action, gpointer data)
 
 static void layout_menu_set_mark_sel_cb(GtkAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint mark = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(action), "mark_num"));
        g_assert(mark >= 1 && mark <= FILEDATA_MARKS_SIZE);
 
@@ -1446,7 +1447,7 @@ static void layout_menu_set_mark_sel_cb(GtkAction *action, gpointer data)
 
 static void layout_menu_res_mark_sel_cb(GtkAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint mark = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(action), "mark_num"));
        g_assert(mark >= 1 && mark <= FILEDATA_MARKS_SIZE);
 
@@ -1455,7 +1456,7 @@ static void layout_menu_res_mark_sel_cb(GtkAction *action, gpointer data)
 
 static void layout_menu_toggle_mark_sel_cb(GtkAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint mark = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(action), "mark_num"));
        g_assert(mark >= 1 && mark <= FILEDATA_MARKS_SIZE);
 
@@ -1464,7 +1465,7 @@ static void layout_menu_toggle_mark_sel_cb(GtkAction *action, gpointer data)
 
 static void layout_menu_sel_mark_cb(GtkAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint mark = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(action), "mark_num"));
        g_assert(mark >= 1 && mark <= FILEDATA_MARKS_SIZE);
 
@@ -1473,7 +1474,7 @@ static void layout_menu_sel_mark_cb(GtkAction *action, gpointer data)
 
 static void layout_menu_sel_mark_or_cb(GtkAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint mark = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(action), "mark_num"));
        g_assert(mark >= 1 && mark <= FILEDATA_MARKS_SIZE);
 
@@ -1482,7 +1483,7 @@ static void layout_menu_sel_mark_or_cb(GtkAction *action, gpointer data)
 
 static void layout_menu_sel_mark_and_cb(GtkAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint mark = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(action), "mark_num"));
        g_assert(mark >= 1 && mark <= FILEDATA_MARKS_SIZE);
 
@@ -1491,7 +1492,7 @@ static void layout_menu_sel_mark_and_cb(GtkAction *action, gpointer data)
 
 static void layout_menu_sel_mark_minus_cb(GtkAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint mark = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(action), "mark_num"));
        g_assert(mark >= 1 && mark <= FILEDATA_MARKS_SIZE);
 
@@ -1500,7 +1501,7 @@ static void layout_menu_sel_mark_minus_cb(GtkAction *action, gpointer data)
 
 static void layout_menu_mark_filter_toggle_cb(GtkAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint mark = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(action), "mark_num"));
        g_assert(mark >= 1 && mark <= FILEDATA_MARKS_SIZE);
 
@@ -1517,13 +1518,13 @@ static void layout_menu_mark_filter_toggle_cb(GtkAction *action, gpointer data)
 
 static void layout_menu_image_first_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        layout_image_first(lw);
 }
 
 static void layout_menu_image_prev_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint i;
 
        if (lw->options.split_pane_sync)
@@ -1549,7 +1550,7 @@ static void layout_menu_image_prev_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_image_next_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint i;
 
        if (lw->options.split_pane_sync)
@@ -1575,7 +1576,7 @@ static void layout_menu_image_next_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_page_first_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        FileData *fd = layout_image_get_fd(lw);
 
        if (fd->page_total > 0)
@@ -1586,7 +1587,7 @@ static void layout_menu_page_first_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_page_last_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        FileData *fd = layout_image_get_fd(lw);
 
        if (fd->page_total > 0)
@@ -1597,7 +1598,7 @@ static void layout_menu_page_last_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_page_next_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        FileData *fd = layout_image_get_fd(lw);
 
        if (fd->page_total > 0)
@@ -1608,7 +1609,7 @@ static void layout_menu_page_next_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_page_previous_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        FileData *fd = layout_image_get_fd(lw);
 
        if (fd->page_total > 0)
@@ -1619,7 +1620,7 @@ static void layout_menu_page_previous_cb(GtkAction *UNUSED(action), gpointer dat
 
 static void layout_menu_image_forward_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        /* Obtain next image */
        layout_set_path(lw, image_chain_forward());
@@ -1627,7 +1628,7 @@ static void layout_menu_image_forward_cb(GtkAction *UNUSED(action), gpointer dat
 
 static void layout_menu_image_back_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        /* Obtain previous image */
        layout_set_path(lw, image_chain_back());
@@ -1635,7 +1636,7 @@ static void layout_menu_image_back_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_split_pane_next_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint active_frame;
 
        active_frame = lw->active_split_image;
@@ -1653,7 +1654,7 @@ static void layout_menu_split_pane_next_cb(GtkAction *UNUSED(action), gpointer d
 
 static void layout_menu_split_pane_prev_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint active_frame;
 
        active_frame = lw->active_split_image;
@@ -1675,7 +1676,7 @@ static void layout_menu_split_pane_prev_cb(GtkAction *UNUSED(action), gpointer d
 
 static void layout_menu_split_pane_updown_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint active_frame;
 
        active_frame = lw->active_split_image;
@@ -1693,13 +1694,13 @@ static void layout_menu_split_pane_updown_cb(GtkAction *UNUSED(action), gpointer
 
 static void layout_menu_image_last_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        layout_image_last(lw);
 }
 
 static void layout_menu_back_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        FileData *dir_fd;
 
        /* Obtain previous path */
@@ -1710,7 +1711,7 @@ static void layout_menu_back_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_forward_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        FileData *dir_fd;
 
        /* Obtain next path */
@@ -1721,7 +1722,7 @@ static void layout_menu_forward_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_home_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        const gchar *path;
 
        if (lw->options.home_path && *lw->options.home_path)
@@ -1739,7 +1740,7 @@ static void layout_menu_home_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_up_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        ViewDir *vd = lw->vd;
        gchar *path;
 
@@ -1765,7 +1766,7 @@ static void layout_menu_up_cb(GtkAction *UNUSED(action), gpointer data)
 
 static void layout_menu_edit_cb(GtkAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        const gchar *key = gtk_action_get_name(action);
 
        if (!editor_window_flag_set(key))
@@ -1783,7 +1784,7 @@ static void layout_menu_metadata_write_cb(GtkAction *UNUSED(action), gpointer UN
 static GtkWidget *last_focussed = NULL;
 static void layout_menu_keyword_autocomplete_cb(GtkAction *UNUSED(action), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        GtkWidget *tmp;
        gboolean auto_has_focus;
 
@@ -1808,7 +1809,7 @@ static void layout_menu_keyword_autocomplete_cb(GtkAction *UNUSED(action), gpoin
 #ifdef HAVE_LCMS
 static void layout_color_menu_enable_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        if (layout_image_color_profile_get_use(lw) == gtk_toggle_action_get_active(action)) return;
 
@@ -1825,7 +1826,7 @@ static void layout_color_menu_enable_cb()
 #ifdef HAVE_LCMS
 static void layout_color_menu_use_image_cb(GtkToggleAction *action, gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint input;
        gboolean use_image;
 
@@ -1844,7 +1845,7 @@ static void layout_color_menu_use_image_cb()
 #ifdef HAVE_LCMS
 static void layout_color_menu_input_cb(GtkRadioAction *action, GtkRadioAction *UNUSED(current), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint type;
        gint input;
        gboolean use_image;
@@ -1878,7 +1879,7 @@ static void layout_menu_recent_cb(GtkWidget *widget, gpointer UNUSED(data))
 
        n = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "recent_index"));
 
-       path = g_list_nth_data(history_list_get_by_key("recent"), n);
+       path = static_cast<gchar *>(g_list_nth_data(history_list_get_by_key("recent"), n));
 
        if (!path) return;
 
@@ -1943,7 +1944,7 @@ void layout_recent_update_all(void)
        work = layout_window_list;
        while (work)
                {
-               LayoutWindow *lw = (LayoutWindow *)work->data;
+               LayoutWindow *lw = static_cast<LayoutWindow *>(work->data);
                work = work->next;
 
                layout_menu_recent_update(lw);
@@ -1994,8 +1995,8 @@ struct _DeleteWindow
 
 static gint layout_window_menu_list_sort_cb(gconstpointer a, gconstpointer b)
 {
-       const WindowNames *wna = a;
-       const WindowNames *wnb = b;
+       const WindowNames *wna = static_cast<const WindowNames *>(a);
+       const WindowNames *wnb = static_cast<const WindowNames *>(b);
 
        return g_strcmp0((gchar *)wna->name, (gchar *)wnb->name);
 }
@@ -2031,7 +2032,7 @@ static GList *layout_window_menu_list(GList *listin)
                        dupe = FALSE;
                        while (list)
                                {
-                               lw_tmp = list->data;
+                               lw_tmp = static_cast<LayoutWindow *>(list->data);
                                if (g_strcmp0(lw_tmp->options.id, name_base) == 0)
                                        {
                                        dupe = TRUE;
@@ -2065,7 +2066,7 @@ static void layout_menu_new_window_cb(GtkWidget *UNUSED(widget), gpointer data)
        GList *menulist = NULL;
 
        menulist = layout_window_menu_list(menulist);
-       WindowNames *wn = g_list_nth(menulist, n )->data;
+       WindowNames *wn = static_cast<WindowNames *>(g_list_nth(menulist, n )->data);
 
        if (wn->path)
                {
@@ -2110,7 +2111,7 @@ static void layout_menu_new_window_update(LayoutWindow *lw)
        n = 0;
        while (list)
                {
-               wn = list->data;
+               wn = static_cast<WindowNames *>(list->data);
                item = menu_item_add_simple(sub_menu, wn->name, G_CALLBACK(layout_menu_new_window_cb), GINT_TO_POINTER(n));
                if (wn->displayed)
                        {
@@ -2123,7 +2124,7 @@ static void layout_menu_new_window_update(LayoutWindow *lw)
 
 static void window_rename_cancel_cb(GenericDialog *UNUSED(gd), gpointer data)
 {
-       RenameWindow *rw = (RenameWindow *)data;
+       RenameWindow *rw = static_cast<RenameWindow *>(data);
 
        generic_dialog_close(rw->gd);
        g_free(rw);
@@ -2131,7 +2132,7 @@ static void window_rename_cancel_cb(GenericDialog *UNUSED(gd), gpointer data)
 
 static void window_rename_ok(GenericDialog *UNUSED(gd), gpointer data)
 {
-       RenameWindow *rw = (RenameWindow *)data;
+       RenameWindow *rw = static_cast<RenameWindow *>(data);
        gchar *path;
        gboolean window_layout_name_exists = FALSE;
        GList *list = NULL;
@@ -2143,7 +2144,7 @@ static void window_rename_ok(GenericDialog *UNUSED(gd), gpointer data)
        list = layout_window_menu_list(list);
        while (list)
                {
-               WindowNames *ln = list->data;
+               WindowNames *ln = static_cast<WindowNames *>(list->data);
                if (g_strcmp0(ln->name, new_id) == 0)
                        {
                        gchar *buf;
@@ -2184,28 +2185,28 @@ static void window_rename_ok(GenericDialog *UNUSED(gd), gpointer data)
 
 static void window_rename_ok_cb(GenericDialog *gd, gpointer data)
 {
-       RenameWindow *rw = (RenameWindow *)data;
+       RenameWindow *rw = static_cast<RenameWindow *>(data);
 
        window_rename_ok(gd, rw);
 }
 
 static void window_rename_entry_activate_cb(GenericDialog *gd, gpointer data)
 {
-       RenameWindow *rw = (RenameWindow *)data;
+       RenameWindow *rw = static_cast<RenameWindow *>(data);
 
        window_rename_ok(gd, rw);
 }
 
 static void window_delete_cancel_cb(GenericDialog *UNUSED(gd), gpointer data)
 {
-       DeleteWindow *dw = (DeleteWindow *)data;
+       DeleteWindow *dw = static_cast<DeleteWindow *>(data);
 
        g_free(dw);
 }
 
 static void window_delete_ok_cb(GenericDialog *UNUSED(gd), gpointer data)
 {
-       DeleteWindow *dw = (DeleteWindow *)data;
+       DeleteWindow *dw = static_cast<DeleteWindow *>(data);
        gchar *path;
        gchar *xml_name;
 
@@ -2230,7 +2231,7 @@ static void layout_menu_window_default_cb(GtkWidget *UNUSED(widget), gpointer UN
 
 static void layout_menu_windows_menu_cb(GtkWidget *UNUSED(widget), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        GtkWidget *menu;
        GtkWidget *sub_menu;
        gchar *menu_label;
@@ -2260,7 +2261,7 @@ static void layout_menu_windows_menu_cb(GtkWidget *UNUSED(widget), gpointer data
 
 static void layout_menu_view_menu_cb(GtkWidget *UNUSED(widget), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        GtkWidget *menu;
        GtkWidget *sub_menu;
        gchar *menu_label;
@@ -2347,7 +2348,7 @@ static void change_window_id(const gchar *infile, const gchar *outfile)
 
 static void layout_menu_window_from_current_cb(GtkWidget *UNUSED(widget), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        gint fd_in = -1;
        gint fd_out = -1;
        char * tmp_file_in;
@@ -2383,14 +2384,14 @@ static void layout_menu_window_from_current_cb(GtkWidget *UNUSED(widget), gpoint
 
 static void layout_menu_window_cb(GtkWidget *UNUSED(widget), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        layout_menu_new_window_update(lw);
 }
 
 static void layout_menu_window_rename_cb(GtkWidget *UNUSED(widget), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        RenameWindow *rw;
        GtkWidget *hbox;
 
@@ -2421,7 +2422,7 @@ static void layout_menu_window_rename_cb(GtkWidget *UNUSED(widget), gpointer dat
 
 static void layout_menu_window_delete_cb(GtkWidget *UNUSED(widget), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        DeleteWindow *dw;
        GtkWidget *hbox;
 
@@ -2651,6 +2652,7 @@ static GtkToggleActionEntry menu_view_dir_toggle_entries[] = {
 static GtkRadioActionEntry menu_split_radio_entries[] = {
   { "SplitHorizontal", NULL,                   N_("_Horizontal"),                      "E",                    N_("Split panes horizontal."),                  SPLIT_HOR },
   { "SplitVertical",   NULL,                   N_("_Vertical"),                        "U",                    N_("Split panes vertical"),                             SPLIT_VERT },
+  { "SplitTriple",     NULL,                   N_("_Triple"),                          NULL,                   N_("Split panes triple"),                               SPLIT_TRIPLE },
   { "SplitQuad",       NULL,                   N_("_Quad"),                            NULL,                   N_("Split panes quad"),                         SPLIT_QUAD },
   { "SplitSingle",     NULL,                   N_("_Single"),                          "Y",                    N_("Single pane"),                              SPLIT_NONE }
 };
@@ -2848,6 +2850,7 @@ static const gchar *menu_ui_description =
 "      <menu action='SplitMenu'>"
 "        <menuitem action='SplitHorizontal'/>"
 "        <menuitem action='SplitVertical'/>"
+"        <menuitem action='SplitTriple'/>"
 "        <menuitem action='SplitQuad'/>"
 "        <menuitem action='SplitSingle'/>"
 "        <separator/>"
@@ -3110,7 +3113,7 @@ static void layout_actions_editor_add(GString *desc, GList *path, GList *old_pat
 
        for (i =  0; i < to_close; i++)
                {
-               gchar *name = old_path->data;
+               gchar *name = static_cast<gchar *>(old_path->data);
                if (g_str_has_suffix(name, "Section"))
                        {
                        g_string_append(desc,   "      </placeholder>");
@@ -3128,7 +3131,7 @@ static void layout_actions_editor_add(GString *desc, GList *path, GList *old_pat
 
        for (i =  0; i < to_open; i++)
                {
-               gchar *name = path->data;
+               gchar *name = static_cast<gchar *>(path->data);
                if (g_str_has_suffix(name, "Section"))
                        {
                        g_string_append_printf(desc,    "      <placeholder name='%s'>", name);
@@ -3181,7 +3184,7 @@ static void layout_actions_setup_editors(LayoutWindow *lw)
        while (work)
                {
                GList *path;
-               EditorDescription *editor = (EditorDescription *)work->data;
+               EditorDescription *editor = static_cast<EditorDescription *>(work->data);
                GtkActionEntry entry = { editor->key,
                                         NULL,
                                         editor->name,
@@ -3276,8 +3279,8 @@ void layout_actions_setup(LayoutWindow *lw)
        DEBUG_1("%s layout_actions_setup: add toolbar", get_exec_time());
        for (i = 0; i < TOOLBAR_COUNT; i++)
                {
-               layout_toolbar_clear(lw, i);
-               layout_toolbar_add_default(lw, i);
+               layout_toolbar_clear(lw, static_cast<ToolbarType>(i));
+               layout_toolbar_add_default(lw, static_cast<ToolbarType>(i));
                }
 
        DEBUG_1("%s layout_actions_setup: marks", get_exec_time());
@@ -3303,10 +3306,10 @@ static gboolean layout_editors_reload_idle_cb(gpointer UNUSED(data))
                {
                DEBUG_1("%s layout_editors_reload_idle_cb: get_desktop_files", get_exec_time());
                layout_editors_desktop_files = editor_get_desktop_files();
-               return TRUE;
+               return G_SOURCE_CONTINUE;
                }
 
-       editor_read_desktop_file(layout_editors_desktop_files->data);
+       editor_read_desktop_file(static_cast<const gchar *>(layout_editors_desktop_files->data));
        g_free(layout_editors_desktop_files->data);
        layout_editors_desktop_files = g_list_delete_link(layout_editors_desktop_files, layout_editors_desktop_files);
 
@@ -3320,7 +3323,7 @@ static gboolean layout_editors_reload_idle_cb(gpointer UNUSED(data))
                work = layout_window_list;
                while (work)
                        {
-                       LayoutWindow *lw = (LayoutWindow *)work->data;
+                       LayoutWindow *lw = static_cast<LayoutWindow *>(work->data);
                        work = work->next;
                        layout_actions_setup_editors(lw);
                        if (lw->bar_sort_enabled)
@@ -3332,9 +3335,9 @@ static gboolean layout_editors_reload_idle_cb(gpointer UNUSED(data))
                DEBUG_1("%s layout_editors_reload_idle_cb: setup_editors done", get_exec_time());
 
                layout_editors_reload_idle_id = -1;
-               return FALSE;
+               return G_SOURCE_REMOVE;
                }
-       return TRUE;
+       return G_SOURCE_CONTINUE;
 }
 
 void layout_editors_reload_start(void)
@@ -3495,13 +3498,13 @@ void layout_toolbar_add_default(LayoutWindow *lw, ToolbarType type)
                case TOOLBAR_MAIN:
                        if (layout_window_list)
                                {
-                               lw_first = layout_window_list->data;
+                               lw_first = static_cast<LayoutWindow *>(layout_window_list->data);
                                if (lw_first->toolbar_actions[TOOLBAR_MAIN])
                                        {
                                        work_action = lw_first->toolbar_actions[type];
                                        while (work_action)
                                                {
-                                               gchar *action = work_action->data;
+                                               gchar *action = static_cast<gchar *>(work_action->data);
                                                work_action = work_action->next;
                                                layout_toolbar_add(lw, type, action);
                                                }
@@ -3541,13 +3544,13 @@ void layout_toolbar_add_default(LayoutWindow *lw, ToolbarType type)
                case TOOLBAR_STATUS:
                        if (layout_window_list)
                                {
-                               lw_first = layout_window_list->data;
+                               lw_first = static_cast<LayoutWindow *>(layout_window_list->data);
                                if (lw_first->toolbar_actions[TOOLBAR_MAIN])
                                        {
                                        work_action = lw_first->toolbar_actions[type];
                                        while (work_action)
                                                {
-                                               gchar *action = work_action->data;
+                                               gchar *action = static_cast<gchar *>(work_action->data);
                                                work_action = work_action->next;
                                                layout_toolbar_add(lw, type, action);
                                                }
@@ -3597,7 +3600,7 @@ void layout_toolbar_write_config(LayoutWindow *lw, ToolbarType type, GString *ou
        WRITE_NL(); WRITE_STRING("<clear/>");
        while (work)
                {
-               gchar *action = work->data;
+               gchar *action = static_cast<gchar *>(work->data);
                work = work->next;
                WRITE_NL(); WRITE_STRING("<toolitem ");
                write_char_option(outstr, indent + 1, "action", action);
@@ -3656,7 +3659,7 @@ void layout_util_status_update_write_all(void)
        work = layout_window_list;
        while (work)
                {
-               LayoutWindow *lw = (LayoutWindow *)work->data;
+               LayoutWindow *lw = static_cast<LayoutWindow *>(work->data);
                work = work->next;
 
                layout_util_status_update_write(lw);
@@ -3929,7 +3932,7 @@ static gboolean layout_bar_enabled(LayoutWindow *lw)
 
 static void layout_bar_destroyed(GtkWidget *UNUSED(widget), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        lw->bar = NULL;
 /*
@@ -4024,7 +4027,7 @@ static gboolean layout_bar_sort_enabled(LayoutWindow *lw)
 
 static void layout_bar_sort_destroyed(GtkWidget *UNUSED(widget), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
 
        lw->bar_sort = NULL;
 
@@ -4173,7 +4176,7 @@ void layout_bars_close(LayoutWindow *lw)
 
 static gboolean layout_exif_window_destroy(GtkWidget *UNUSED(widget), gpointer data)
 {
-       LayoutWindow *lw = (LayoutWindow *)data;
+       LayoutWindow *lw = static_cast<LayoutWindow *>(data);
        lw->exif_window = NULL;
 
        return TRUE;