changeset 2378:cedc3017e78a

Merge remote-tracking branches #419 and #416 * merge-requests/419: Force focus to geeqie after leaving fullscreen * merge-requests/416: Add four new preferences
author Klaus Ethgen <Klaus@Ethgen.de>
date Fri, 15 Jul 2016 18:39:02 +0100
parents b4b62b5b1bf5 (current diff) 447aaa3a7be7 (diff)
children 5ddb29034ae2 3f644bf81860
files
diffstat 11 files changed, 57 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/fullscreen.c	Wed Jul 13 20:14:46 2016 +0100
+++ b/src/fullscreen.c	Fri Jul 15 18:39:02 2016 +0100
@@ -364,6 +364,8 @@
 
 	gtk_widget_destroy(fs->window);
 
+	gtk_window_present(fs->normal_window);
+
 	g_free(fs);
 }
 
--- a/src/img-view.c	Wed Jul 13 20:14:46 2016 +0100
+++ b/src/img-view.c	Fri Jul 15 18:39:02 2016 +0100
@@ -580,10 +580,12 @@
 	switch (event->button)
 		{
 		case MOUSE_BUTTON_LEFT:
-			view_step_next(vw);
+			if (options->image_lm_click_nav)
+				view_step_next(vw);
 			break;
 		case MOUSE_BUTTON_MIDDLE:
-			view_step_prev(vw);
+			if (options->image_lm_click_nav)
+				view_step_prev(vw);
 			break;
 		case MOUSE_BUTTON_RIGHT:
 			menu = view_popup_menu(vw);
--- a/src/layout_image.c	Wed Jul 13 20:14:46 2016 +0100
+++ b/src/layout_image.c	Fri Jul 15 18:39:02 2016 +0100
@@ -1405,11 +1405,11 @@
 	switch (event->button)
 		{
 		case MOUSE_BUTTON_LEFT:
-			if (lw->split_mode == SPLIT_NONE)
+			if (options->image_lm_click_nav && lw->split_mode == SPLIT_NONE)
 				layout_image_next(lw);
 			break;
 		case MOUSE_BUTTON_MIDDLE:
-			if (lw->split_mode == SPLIT_NONE)
+			if (options->image_lm_click_nav && lw->split_mode == SPLIT_NONE)
 				layout_image_prev(lw);
 			break;
 		case MOUSE_BUTTON_RIGHT:
--- a/src/layout_util.c	Wed Jul 13 20:14:46 2016 +0100
+++ b/src/layout_util.c	Fri Jul 15 18:39:02 2016 +0100
@@ -203,7 +203,9 @@
 	LayoutWindow *nw;
 	LayoutOptions lop;
 	gboolean tmp = options->save_window_positions;
-	options->save_window_positions = FALSE; /* let the windowmanager decide for the first time */
+
+	if (!options->use_saved_window_positions_for_new_windows)
+		options->save_window_positions = FALSE; /* let the windowmanager decide for the first time */
 
 	layout_exit_fullscreen(lw);
 
--- a/src/main.c	Wed Jul 13 20:14:46 2016 +0100
+++ b/src/main.c	Fri Jul 15 18:39:02 2016 +0100
@@ -106,8 +106,8 @@
 		delta = 8;
 		}
 
-	*x = *x * delta;
-	*y = *y * delta;
+	*x = *x * delta * options->keyboard_scroll_step;
+	*y = *y * delta * options->keyboard_scroll_step;
 }
 
 
--- a/src/options.c	Wed Jul 13 20:14:46 2016 +0100
+++ b/src/options.c	Fri Jul 15 18:39:02 2016 +0100
@@ -55,6 +55,7 @@
 	options->file_filter.disable_file_extension_checks = FALSE;
 
 	options->save_window_positions = TRUE;
+	options->use_saved_window_positions_for_new_windows = FALSE;
 	options->tools_restore_state = TRUE;
 
 	options->file_ops.confirm_delete = TRUE;
@@ -108,10 +109,12 @@
 
 	options->lazy_image_sync = FALSE;
 	options->mousewheel_scrolls = FALSE;
+	options->image_lm_click_nav = TRUE;
 	options->open_recent_list_maxsize = 10;
 	options->place_dialogs_under_mouse = FALSE;
 
 	options->progressive_key_scrolling = TRUE;
+	options->keyboard_scroll_step = 1;
 
 	options->metadata.enable_metadata_dirs = FALSE;
 	options->metadata.save_in_image_file = FALSE;
@@ -143,6 +146,7 @@
 	options->thumbnails.use_exif = FALSE;
 
 	options->tree_descend_subdirs = FALSE;
+	options->view_dir_list_single_click_enter = TRUE;
 	options->update_on_time_change = TRUE;
 
 	options->stereo.fixed_w = 1920;
--- a/src/options.h	Wed Jul 13 20:14:46 2016 +0100
+++ b/src/options.h	Fri Jul 15 18:39:02 2016 +0100
@@ -27,12 +27,15 @@
 {
 	/* ui */
 	gboolean progressive_key_scrolling;
+	guint keyboard_scroll_step;
 	gboolean place_dialogs_under_mouse;
 	gboolean mousewheel_scrolls;
+	gboolean image_lm_click_nav;
 	gboolean show_icon_names;
 
 	/* various */
 	gboolean tree_descend_subdirs;
+	gboolean view_dir_list_single_click_enter;
 
 	gboolean lazy_image_sync;
 	gboolean update_on_time_change;
@@ -44,6 +47,7 @@
 	gint dnd_icon_size;
 
 	gboolean save_window_positions;
+	gboolean use_saved_window_positions_for_new_windows;
 	gboolean tools_restore_state;
 
 	/* file ops */
--- a/src/preferences.c	Wed Jul 13 20:14:46 2016 +0100
+++ b/src/preferences.c	Fri Jul 15 18:39:02 2016 +0100
@@ -218,6 +218,7 @@
 	options->file_ops.safe_delete_folder_maxsize = c_options->file_ops.safe_delete_folder_maxsize;
 	options->tools_restore_state = c_options->tools_restore_state;
 	options->save_window_positions = c_options->save_window_positions;
+	options->use_saved_window_positions_for_new_windows = c_options->use_saved_window_positions_for_new_windows;
 	options->image.zoom_mode = c_options->image.zoom_mode;
 	options->image.scroll_reset_method = c_options->image.scroll_reset_method;
 	options->image.zoom_2pass = c_options->image.zoom_2pass;
@@ -229,6 +230,8 @@
 	options->image.max_autofit_size = c_options->image.max_autofit_size;
 	options->image.use_clutter_renderer = c_options->image.use_clutter_renderer;
 	options->progressive_key_scrolling = c_options->progressive_key_scrolling;
+	options->keyboard_scroll_step = c_options->keyboard_scroll_step;
+
 	if (options->thumbnails.max_width != c_options->thumbnails.max_width
 	    || options->thumbnails.max_height != c_options->thumbnails.max_height
 	    || options->thumbnails.quality != c_options->thumbnails.quality)
@@ -260,6 +263,7 @@
 	options->slideshow.delay = c_options->slideshow.delay;
 
 	options->mousewheel_scrolls = c_options->mousewheel_scrolls;
+	options->image_lm_click_nav = c_options->image_lm_click_nav;
 
 	options->file_ops.enable_in_place_rename = c_options->file_ops.enable_in_place_rename;
 
@@ -313,6 +317,8 @@
 
 	options->tree_descend_subdirs = c_options->tree_descend_subdirs;
 
+	options->view_dir_list_single_click_enter = c_options->view_dir_list_single_click_enter;
+
 	options->open_recent_list_maxsize = c_options->open_recent_list_maxsize;
 	options->dnd_icon_size = c_options->dnd_icon_size;
 
@@ -1534,8 +1540,13 @@
 
 	group = pref_group_new(vbox, FALSE, _("State"), GTK_ORIENTATION_VERTICAL);
 
-	pref_checkbox_new_int(group, _("Remember window positions"),
-			      options->save_window_positions, &c_options->save_window_positions);
+	ct_button = pref_checkbox_new_int(group, _("Remember window positions"),
+					  options->save_window_positions, &c_options->save_window_positions);
+
+	button = pref_checkbox_new_int(group, _("Use saved window positions also for new windows"),
+				       options->use_saved_window_positions_for_new_windows, &c_options->use_saved_window_positions_for_new_windows);
+	pref_checkbox_link_sensitivity(ct_button, button);
+
 	pref_checkbox_new_int(group, _("Remember tool state (float/hidden)"),
 			      options->tools_restore_state, &c_options->tools_restore_state);
 
@@ -2046,6 +2057,9 @@
 	pref_checkbox_new_int(group, _("In place renaming"),
 			      options->file_ops.enable_in_place_rename, &c_options->file_ops.enable_in_place_rename);
 
+	pref_checkbox_new_int(group, _("List directory view uses single click to enter"),
+			      options->view_dir_list_single_click_enter, &c_options->view_dir_list_single_click_enter);
+
 	pref_spin_new_int(group, _("Open recent list maximum size"), NULL,
 			  1, 50, 1, options->open_recent_list_maxsize, &c_options->open_recent_list_maxsize);
 
@@ -2056,8 +2070,12 @@
 
 	pref_checkbox_new_int(group, _("Progressive keyboard scrolling"),
 			      options->progressive_key_scrolling, &c_options->progressive_key_scrolling);
+	pref_spin_new_int(group, _("Keyboard scrolling step multiplier:"), NULL,
+			  1, 32, 1, options->keyboard_scroll_step, (int *)&c_options->keyboard_scroll_step);
 	pref_checkbox_new_int(group, _("Mouse wheel scrolls image"),
 			      options->mousewheel_scrolls, &c_options->mousewheel_scrolls);
+	pref_checkbox_new_int(group, _("Navigation by left or middle click on image"),
+			      options->image_lm_click_nav, &c_options->image_lm_click_nav);
 
 	group = pref_group_new(vbox, FALSE, _("Similarities"), GTK_ORIENTATION_VERTICAL);
 
--- a/src/rcfile.c	Wed Jul 13 20:14:46 2016 +0100
+++ b/src/rcfile.c	Fri Jul 15 18:39:02 2016 +0100
@@ -283,22 +283,26 @@
 	WRITE_SEPARATOR();
 
 	WRITE_NL(); WRITE_BOOL(*options, tree_descend_subdirs);
+	WRITE_NL(); WRITE_BOOL(*options, view_dir_list_single_click_enter);
 	WRITE_NL(); WRITE_BOOL(*options, lazy_image_sync);
 	WRITE_NL(); WRITE_BOOL(*options, update_on_time_change);
 	WRITE_SEPARATOR();
 
 	WRITE_NL(); WRITE_BOOL(*options, progressive_key_scrolling);
+	WRITE_NL(); WRITE_UINT(*options, keyboard_scroll_step);
 
 	WRITE_NL(); WRITE_UINT(*options, duplicates_similarity_threshold);
 	WRITE_NL(); WRITE_BOOL(*options, rot_invariant_sim);
 	WRITE_SEPARATOR();
 
 	WRITE_NL(); WRITE_BOOL(*options, mousewheel_scrolls);
+	WRITE_NL(); WRITE_BOOL(*options, image_lm_click_nav);
 	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_BOOL(*options, save_window_positions);
+	WRITE_NL(); WRITE_BOOL(*options, use_saved_window_positions_for_new_windows);
 	WRITE_NL(); WRITE_BOOL(*options, tools_restore_state);
 
 	/* File operations Options */
@@ -558,6 +562,7 @@
 		if (READ_BOOL(*options, show_icon_names)) continue;
 
 		if (READ_BOOL(*options, tree_descend_subdirs)) continue;
+		if (READ_BOOL(*options, view_dir_list_single_click_enter)) continue;
 		if (READ_BOOL(*options, lazy_image_sync)) continue;
 		if (READ_BOOL(*options, update_on_time_change)) continue;
 
@@ -565,14 +570,17 @@
 		if (READ_BOOL(*options, rot_invariant_sim)) continue;
 
 		if (READ_BOOL(*options, progressive_key_scrolling)) continue;
+		if (READ_UINT_CLAMP(*options, keyboard_scroll_step, 1, 32)) continue;
 
 		if (READ_BOOL(*options, mousewheel_scrolls)) continue;
+		if (READ_BOOL(*options, image_lm_click_nav)) continue;
 
 		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_BOOL(*options, save_window_positions)) continue;
+		if (READ_BOOL(*options, use_saved_window_positions_for_new_windows)) continue;
 		if (READ_BOOL(*options, tools_restore_state)) continue;
 
 		/* Properties dialog options */
--- a/src/view_dir.c	Wed Jul 13 20:14:46 2016 +0100
+++ b/src/view_dir.c	Fri Jul 15 18:39:02 2016 +0100
@@ -1035,6 +1035,9 @@
 	GtkTreePath *tpath;
 	FileData *fd = NULL;
 
+	if (vd->type == DIRVIEW_LIST && !options->view_dir_list_single_click_enter)
+		return FALSE;
+
 	if (!vd->click_fd) return FALSE;
 	vd_color_set(vd, vd->click_fd, FALSE);
 
--- a/src/view_dir_list.c	Wed Jul 13 20:14:46 2016 +0100
+++ b/src/view_dir_list.c	Fri Jul 15 18:39:02 2016 +0100
@@ -406,16 +406,19 @@
 		}
 
 	vd->click_fd = fd;
-	vd_color_set(vd, vd->click_fd, TRUE);
+
+	if (options->view_dir_list_single_click_enter)
+		vd_color_set(vd, vd->click_fd, TRUE);
 
 	if (bevent->button == MOUSE_BUTTON_RIGHT)
 		{
 		vd->popup = vd_pop_menu(vd, vd->click_fd);
 		gtk_menu_popup(GTK_MENU(vd->popup), NULL, NULL, NULL, NULL,
 			       bevent->button, bevent->time);
+		return TRUE;
 		}
 
-	return TRUE;
+	return options->view_dir_list_single_click_enter;
 }
 
 void vdlist_destroy_cb(GtkWidget *widget, gpointer data)