<para>This is the width and height of the icon generated from image and displayed when doing drag and drop actions. High resolution screens may require to increase this number.</para>\r
</listitem>\r
</varlistentry>\r
+ <varlistentry>\r
+ <term>\r
+ <guilabel>Copy path clipboard selection</guilabel>\r
+ </term>\r
+ <listitem>\r
+ <para>\r
+ This option determines which clipboard selection is used for the "Copy path" menu item. The exact method of the paste operation will depend on the operating system, but in general will be:\r
+ <variablelist>\r
+ <varlistentry>\r
+ <term>\r
+ <guilabel>PRIMARY</guilabel>\r
+ </term>\r
+ <listitem>\r
+ <para>Paste using mouse middle-click, or shift-insert.</para>\r
+ </listitem>\r
+ </varlistentry>\r
+ <varlistentry>\r
+ <term>\r
+ <guilabel>CLIPBOARD</guilabel>\r
+ </term>\r
+ <listitem>\r
+ <para>Paste using mouse right-click and select paste, or control-v.</para>\r
+ </listitem>\r
+ </varlistentry>\r
+ </variablelist>\r
+ </para>\r
+ </listitem>\r
+ </varlistentry>\r
</variablelist>\r
</section>\r
<section id="Navigation">\r
options->open_recent_list_maxsize = c_options->open_recent_list_maxsize;
options->dnd_icon_size = c_options->dnd_icon_size;
+ options->clipboard_selection = c_options->clipboard_selection;
options->metadata.save_in_image_file = c_options->metadata.save_in_image_file;
options->metadata.save_legacy_IPTC = c_options->metadata.save_legacy_IPTC;
}
}
+static void clipboard_selection_menu_cb(GtkWidget *combo, gpointer data)
+{
+ gint *option = data;
+
+ switch (gtk_combo_box_get_active(GTK_COMBO_BOX(combo)))
+ {
+ case 0:
+ default:
+ *option = PRIMARY;
+ break;
+ case 1:
+ *option = CLIPBOARD;
+ break;
+ }
+}
+
static void add_quality_menu(GtkWidget *table, gint column, gint row, const gchar *text,
guint option, guint *option_c)
{
gtk_widget_show(combo);
}
+static void add_clipboard_selection_menu(GtkWidget *table, gint column, gint row, const gchar *text,
+ guint option, guint *option_c)
+{
+ GtkWidget *combo;
+ gint current = 0;
+
+ *option_c = option;
+
+ pref_table_label(table, column, row, text, 0.0);
+
+ combo = gtk_combo_box_text_new();
+
+ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo), _("PRIMARY"));
+ if (option == PRIMARY) current = 0;
+ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo), _("CLIPBOARD"));
+ if (option == CLIPBOARD) current = 1;
+
+ gtk_combo_box_set_active(GTK_COMBO_BOX(combo), current);
+
+ g_signal_connect(G_OBJECT(combo), "changed",
+ G_CALLBACK(clipboard_selection_menu_cb), option_c);
+
+ gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1,
+ GTK_EXPAND | GTK_FILL, 0, 0, 0);
+ gtk_widget_show(combo);
+}
+
static void thumb_size_menu_cb(GtkWidget *combo, gpointer data)
{
gint n;
pref_spin_new_int(group, _("Drag'n drop icon size"), NULL,
16, 256, 16, options->dnd_icon_size, &c_options->dnd_icon_size);
+ table = pref_table_new(group, 2, 1, FALSE, FALSE);
+ add_clipboard_selection_menu(table, 0, 0, _("Copy path clipboard selection:"), options->clipboard_selection, &c_options->clipboard_selection);
+
group = pref_group_new(vbox, FALSE, _("Navigation"), GTK_ORIENTATION_VERTICAL);
pref_checkbox_new_int(group, _("Progressive keyboard scrolling"),
WRITE_NL(); WRITE_INT(*options, open_recent_list_maxsize);
WRITE_NL(); WRITE_INT(*options, dnd_icon_size);
WRITE_NL(); WRITE_BOOL(*options, place_dialogs_under_mouse);
+ WRITE_NL(); WRITE_INT(*options, clipboard_selection);
WRITE_NL(); WRITE_BOOL(*options, save_window_positions);
WRITE_NL(); WRITE_BOOL(*options, use_saved_window_positions_for_new_windows);
if (READ_INT(*options, open_recent_list_maxsize)) continue;
if (READ_INT(*options, dnd_icon_size)) continue;
if (READ_BOOL(*options, place_dialogs_under_mouse)) continue;
+ if (READ_INT(*options, clipboard_selection)) continue;
if (READ_BOOL(*options, save_window_positions)) continue;
if (READ_BOOL(*options, use_saved_window_positions_for_new_windows)) continue;
if (!fd || !*fd->path) return;
- clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
+ if (options->clipboard_selection == PRIMARY)
+ {
+ clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
+ }
+ else
+ {
+ clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
+ }
gtk_clipboard_set_text(clipboard, g_shell_quote(fd->path), -1);
}
GList *work;
GString *new;
- clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
+ if (options->clipboard_selection == PRIMARY)
+ {
+ clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
+ }
+ else
+ {
+ clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
+ }
new = g_string_new("");
work = list;