From 898b0db5607d67aad5f061fbde737f1d6e738800 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= <bombe@pterodactylus.net>
Date: Wed, 29 Sep 2010 14:36:02 +0200
Subject: [PATCH 3/3] Improve handling of ffmpeg format changes.

The previous code would simply disable the codec lists if the currently
selected codec did not also exist in the new codec list. Now the codec
is preselected in the new codec list if it exists; if it does not exist,
the first codec in the new codec list is now pre-selected to always
ensure a valid codec selection.
---
 vice/src/arch/unix/x11/gnome/uiscreenshot.c |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/vice/src/arch/unix/x11/gnome/uiscreenshot.c b/vice/src/arch/unix/x11/gnome/uiscreenshot.c
index 949097e..9134ee3 100644
--- a/vice/src/arch/unix/x11/gnome/uiscreenshot.c
+++ b/vice/src/arch/unix/x11/gnome/uiscreenshot.c
@@ -218,12 +218,11 @@ static void ffmpeg_details(GtkWidget *w, gpointer data)
                 found = (id == current_ac_id);
             } while (!found && gtk_tree_model_iter_next(GTK_TREE_MODEL(store), &iter));
             gtk_combo_box_set_model(GTK_COMBO_BOX(acmenu), GTK_TREE_MODEL(ac_store));
+            gtk_widget_set_sensitive(GTK_WIDGET(acmenu), TRUE);
             if (found) {
-                gtk_widget_set_sensitive(GTK_WIDGET(acmenu), TRUE);
                 gtk_combo_box_set_active(GTK_COMBO_BOX(acmenu), index);
-                selected_ac = id;
             } else {
-                gtk_widget_set_sensitive(GTK_WIDGET(acmenu), FALSE);
+                gtk_combo_box_set_active(GTK_COMBO_BOX(acmenu), 0);
             }
         } else {
             gtk_widget_set_sensitive(GTK_WIDGET(acmenu), FALSE);
@@ -244,12 +243,11 @@ static void ffmpeg_details(GtkWidget *w, gpointer data)
                 found = (id == current_vc_id);
             } while (!found && gtk_tree_model_iter_next(GTK_TREE_MODEL(store), &iter));
             gtk_combo_box_set_model(GTK_COMBO_BOX(vcmenu), GTK_TREE_MODEL(vc_store));
+            gtk_widget_set_sensitive(GTK_WIDGET(vcmenu), TRUE);
             if (found) {
-                gtk_widget_set_sensitive(GTK_WIDGET(vcmenu), TRUE);
                 gtk_combo_box_set_active(GTK_COMBO_BOX(vcmenu), index);
-                selected_vc = id;
             } else {
-                gtk_widget_set_sensitive(GTK_WIDGET(vcmenu), FALSE);
+                gtk_combo_box_set_active(GTK_COMBO_BOX(vcmenu), 0);
             }
         } else {
             gtk_widget_set_sensitive(GTK_WIDGET(vcmenu), FALSE);
-- 
1.7.2.2

