diff src/layout_util.c @ 94:50dc5a14d37b

Thu Nov 2 17:51:31 2006 John Ellis <johne@verizon.net> * collect.c, img-view.c: Make [Shift]+P printing shortcut work for collections and view windows. * layout_util.c: Fix shortcuts [Control]+N and [Shift]+P, broken by the previous keypress handler code cleanup. Add [Control]+V to view current image in a new image window.
author gqview
date Thu, 02 Nov 2006 23:27:03 +0000
parents cade6a52a165
children e2a8b7f2165b
line wrap: on
line diff
--- a/src/layout_util.c	Thu Nov 02 19:45:18 2006 +0000
+++ b/src/layout_util.c	Thu Nov 02 23:27:03 2006 +0000
@@ -21,6 +21,7 @@
 #include "collect-dlg.h"
 #include "dupe.h"
 #include "editors.h"
+#include "img-view.h"
 #include "info.h"
 #include "layout_image.h"
 #include "pan-view.h"
@@ -118,21 +119,33 @@
 			case GDK_Down: case GDK_KP_Down:
 				y += 1;
 				break;
-			case GDK_BackSpace:
-			case 'B': case 'b':
-				layout_image_prev(lw);
-				break;
-			case GDK_space:
-			case 'N': case 'n':
-				layout_image_next(lw);
-				break;
-			case GDK_Menu:
-				layout_image_menu_popup(lw);
-				break;
 			default:
 				stop_signal = FALSE;
 				break;
 			}
+
+		if (!stop_signal &&
+		    !(event->state & GDK_CONTROL_MASK))
+			{
+			stop_signal = TRUE;
+			switch (event->keyval)
+				{
+				case GDK_BackSpace:
+				case 'B': case 'b':
+					layout_image_prev(lw);
+					break;
+				case GDK_space:
+				case 'N': case 'n':
+					layout_image_next(lw);
+					break;
+				case GDK_Menu:
+					layout_image_menu_popup(lw);
+					break;
+				default:
+					stop_signal = FALSE;
+					break;
+				}
+			}
 		}
 
 	if (x != 0 || y!= 0)
@@ -149,7 +162,20 @@
 
 	if (stop_signal) return stop_signal;
 
-	if (!(event->state & GDK_CONTROL_MASK))
+	if (event->state & GDK_CONTROL_MASK)
+		{
+		stop_signal = TRUE;
+		switch (event->keyval)
+			{
+			case 'v' : case 'V':
+				view_window_new(layout_image_get_path(lw));
+				break;
+			default:
+				stop_signal = FALSE;
+				break;
+			}
+		}
+	else
 		{
 		stop_signal = TRUE;
 		switch (event->keyval)
@@ -216,11 +242,18 @@
 #endif
 				break;
 			case 'P': case 'p':
-				layout_image_slideshow_pause_toggle(lw);
+				if (!event->state & GDK_SHIFT_MASK)
+					{
+					layout_image_slideshow_pause_toggle(lw);
+					}
+				else
+					{
+					stop_signal = FALSE;
+					}
 				break;
 			case 'V': case 'v':
 			case GDK_F11:
-				if (!(event->state & GDK_MOD1_MASK)) layout_image_full_screen_toggle(lw);
+				layout_image_full_screen_toggle(lw);
 				break;
 			default:
 				stop_signal = FALSE;