- int new_render_width = MAX (300, allocation->width);
- if (view->render_width != new_render_width)
- {
- view->render_width = new_render_width;
- rerender (view);
- }
+ view->render_width = MAX (300, allocation->width);
+ rerender (view);
+}
+
+static void
+on_realize (GtkWidget *overview, GObject *view)
+{
+ GtkTreeSelection *sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (overview));
+ gtk_tree_selection_set_mode (sel, GTK_SELECTION_MULTIPLE);
+
+ GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (overview));
+
+ GAction *copy_action = g_action_map_lookup_action (G_ACTION_MAP (toplevel),
+ "copy");
+
+ GAction *select_all_action = g_action_map_lookup_action (G_ACTION_MAP (toplevel),
+ "select-all");
+
+ g_object_set (copy_action, "enabled", FALSE, NULL);
+
+ g_signal_connect_swapped (select_all_action, "activate",
+ G_CALLBACK (on_select_all), view);
+
+ g_signal_connect_swapped (copy_action, "activate",
+ G_CALLBACK (on_copy), view);
+
+ g_signal_connect (sel, "changed", G_CALLBACK (on_selection_change),
+ copy_action);