]> granicus.if.org Git - handbrake/commitdiff
LinGui: work around bonehead Gtk developer decision
authorjstebbins <jstebbins.hb@gmail.com>
Thu, 15 May 2014 16:39:08 +0000 (16:39 +0000)
committerjstebbins <jstebbins.hb@gmail.com>
Thu, 15 May 2014 16:39:08 +0000 (16:39 +0000)
The width of radio buttons in GtkStackSwitcher are hard coded to 100.
Parse the container to get the buttons and fix this idiocy.

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6194 b64f7644-9d1e-0410-96f1-a4d463321fa5

gtk/src/main.c

index e324f20636022c69cf11e41a83f00a1b2981217e..e180b1986ad99c6a5488b100ce5807231d1c5217 100644 (file)
@@ -1208,6 +1208,23 @@ main(int argc, char *argv[])
     gtk_widget_override_font(GTK_WIDGET(textview), font_desc);
     pango_font_description_free(font_desc);
 
+    // Grrrr!  Gtk developers !!!hard coded!!! the width of the
+    // radio buttons in GtkStackSwitcher to 100!!!
+    //
+    // Thankfully, GtkStackSwitcher is a regular container object
+    // and we can access the buttons to change their width.
+    GList *stack_switcher_children, *link;
+    GtkContainer * stack_switcher = GTK_CONTAINER(
+                            GHB_WIDGET(ud->builder, "SettingsStackSwitcher"));
+    link = stack_switcher_children = gtk_container_get_children(stack_switcher);
+    while (link != NULL)
+    {
+        GtkWidget *widget = link->data;
+        gtk_widget_set_size_request(widget, -1, -1);
+        link = link->next;
+    }
+    g_list_free(stack_switcher_children);
+
     // Everything should be go-to-go.  Lets rock!
 
     gtk_main();