diff src/pan-view.c @ 85:9d5c75b5ec28

Fri Oct 20 09:20:10 2006 John Ellis <johne@verizon.net> * collect-table.c, collect.c, dupe.c, pan-view.c, search.c, view_file_icon.c: Keypress signal handler code clean-up round 2: the remaining files. Make control and shift logic easier to follow.
author gqview
date Fri, 20 Oct 2006 13:25:03 +0000
parents b192a0efe080
children cade6a52a165
line wrap: on
line diff
--- a/src/pan-view.c	Fri Oct 20 12:03:16 2006 +0000
+++ b/src/pan-view.c	Fri Oct 20 13:25:03 2006 +0000
@@ -3413,23 +3413,20 @@
 
 	if (focused)
 		{
+		stop_signal = TRUE;
 		switch (event->keyval)
 			{
 			case GDK_Left: case GDK_KP_Left:
 				x -= 1;
-				stop_signal = TRUE;
 				break;
 			case GDK_Right: case GDK_KP_Right:
 				x += 1;
-				stop_signal = TRUE;
 				break;
 			case GDK_Up: case GDK_KP_Up:
 				y -= 1;
-				stop_signal = TRUE;
 				break;
 			case GDK_Down: case GDK_KP_Down:
 				y += 1;
-				stop_signal = TRUE;
 				break;
 			case GDK_Page_Up: case GDK_KP_Page_Up:
 				pixbuf_renderer_scroll(pr, 0, 0 - pr->vis_height / 2);
@@ -3443,88 +3440,30 @@
 			case GDK_End: case GDK_KP_End:
 				pixbuf_renderer_scroll(pr, pr->vis_width / 2, 0);
 				break;
+			default:
+				stop_signal = FALSE;
+				break;
+			}
+
+		if (x != 0 || y!= 0)
+			{
+			if (event->state & GDK_SHIFT_MASK)
+				{
+				x *= 3;
+				y *= 3;
+				}
+			keyboard_scroll_calc(&x, &y, event);
+			pixbuf_renderer_scroll(pr, x, y);
 			}
 		}
 
-	if (focused && !(event->state & GDK_CONTROL_MASK) )
-	    switch (event->keyval)
-		{
-		case '+': case '=': case GDK_KP_Add:
-			pixbuf_renderer_zoom_adjust(pr, ZOOM_INCREMENT);
-			break;
-		case '-': case GDK_KP_Subtract:
-			pixbuf_renderer_zoom_adjust(pr, -ZOOM_INCREMENT);
-			break;
-		case 'Z': case 'z': case GDK_KP_Divide: case '1':
-			pixbuf_renderer_zoom_set(pr, 1.0);
-			break;
-		case '2':
-			pixbuf_renderer_zoom_set(pr, 2.0);
-			break;
-		case '3':
-			pixbuf_renderer_zoom_set(pr, 3.0);
-			break;
-		case '4':
-			pixbuf_renderer_zoom_set(pr, 4.0);
-			break;
-		case '7':
-			pixbuf_renderer_zoom_set(pr, -4.0);
-			break;
-		case '8':
-			pixbuf_renderer_zoom_set(pr, -3.0);
-			break;
-		case '9':
-			pixbuf_renderer_zoom_set(pr, -2.0);
-			break;
-		case 'F': case 'f':
-		case 'V': case 'v':
-			pan_fullscreen_toggle(pw, FALSE);
-			stop_signal = TRUE;
-			break;
-		case 'I': case 'i':
-#if 0
-			pan_overlay_toggle(pw);
-#endif
-			break;
-		case GDK_Delete: case GDK_KP_Delete:
-			break;
-		case '/':
-			if (!pw->fs)
-				{
-				if (GTK_WIDGET_VISIBLE(pw->search_box))
-					{
-					gtk_widget_grab_focus(pw->search_entry);
-					}
-				else
-					{
-					gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pw->search_button), TRUE);
-					}
-				stop_signal = TRUE;
-				}
-			break;
-		case GDK_Escape:
-			if (pw->fs)
-				{
-				pan_fullscreen_toggle(pw, TRUE);
-				stop_signal = TRUE;
-				}
-			else if (GTK_WIDGET_VISIBLE(pw->search_entry))
-				{
-				gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pw->search_button), FALSE);
-				stop_signal = TRUE;
-				}
-			break;
-		case GDK_Menu:
-		case GDK_F10:
-			menu = pan_popup_menu(pw);
-			gtk_menu_popup(GTK_MENU(menu), NULL, NULL, pan_window_menu_pos_cb, pw, 0, GDK_CURRENT_TIME);
-			stop_signal = TRUE;
-			break;
-		}
+	if (stop_signal) return stop_signal;
 
 	if (event->state & GDK_CONTROL_MASK)
 		{
 		gint n = -1;
+
+		stop_signal = TRUE;
 		switch (event->keyval)
 			{
 			case '1':
@@ -3575,7 +3514,11 @@
 			case 'W': case 'w':
 				pan_window_close(pw);
 				break;
+			default:
+				stop_signal = FALSE;
+				break;
 			}
+
 		if (n != -1 && path)
 			{
 			if (!editor_window_flag_set(n))
@@ -3583,42 +3526,121 @@
 				pan_fullscreen_toggle(pw, TRUE);
 				}
 			start_editor_from_file(n, path);
-			stop_signal = TRUE;
 			}
 		}
-	else if (event->state & GDK_SHIFT_MASK)
+	else
 		{
-		x *= 3;
-		y *= 3;
-		}
-	else if (!focused)
-		{
-		switch (event->keyval)
+		if (focused)
 			{
-			case GDK_Escape:
-				if (pw->fs)
-					{
-					pan_fullscreen_toggle(pw, TRUE);
-					stop_signal = TRUE;
-					}
-				else if (GTK_WIDGET_HAS_FOCUS(pw->search_entry))
-					{
-					gtk_widget_grab_focus(GTK_WIDGET(pw->imd->widget));
-					gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pw->search_button), FALSE);
-					stop_signal = TRUE;
-					}
-			break;
-			default:
+			stop_signal = TRUE;
+			switch (event->keyval)
+				{
+				case '+': case '=': case GDK_KP_Add:
+					pixbuf_renderer_zoom_adjust(pr, ZOOM_INCREMENT);
+					break;
+				case '-': case GDK_KP_Subtract:
+					pixbuf_renderer_zoom_adjust(pr, -ZOOM_INCREMENT);
+					break;
+				case 'Z': case 'z': case GDK_KP_Divide: case '1':
+					pixbuf_renderer_zoom_set(pr, 1.0);
+					break;
+				case '2':
+					pixbuf_renderer_zoom_set(pr, 2.0);
+					break;
+				case '3':
+					pixbuf_renderer_zoom_set(pr, 3.0);
+					break;
+				case '4':
+					pixbuf_renderer_zoom_set(pr, 4.0);
+					break;
+				case '7':
+					pixbuf_renderer_zoom_set(pr, -4.0);
+					break;
+				case '8':
+					pixbuf_renderer_zoom_set(pr, -3.0);
+					break;
+				case '9':
+					pixbuf_renderer_zoom_set(pr, -2.0);
+					break;
+				case 'F': case 'f':
+				case 'V': case 'v':
+					pan_fullscreen_toggle(pw, FALSE);
+					break;
+				case 'I': case 'i':
+#if 0
+					pan_overlay_toggle(pw);
+#endif
+					break;
+				case GDK_Delete: case GDK_KP_Delete:
+					break;
+				case '/':
+					if (!pw->fs)
+						{
+						if (GTK_WIDGET_VISIBLE(pw->search_box))
+							{
+							gtk_widget_grab_focus(pw->search_entry);
+							}
+						else
+							{
+							gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pw->search_button), TRUE);
+							}
+						}
+					else
+						{
+						stop_signal = FALSE;
+						}
+					break;
+				case GDK_Escape:
+					if (pw->fs)
+						{
+						pan_fullscreen_toggle(pw, TRUE);
+						}
+					else if (GTK_WIDGET_VISIBLE(pw->search_entry))
+						{
+						gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pw->search_button), FALSE);
+						}
+					else
+						{
+						stop_signal = FALSE;
+						}
+					break;
+				case GDK_Menu:
+				case GDK_F10:
+					menu = pan_popup_menu(pw);
+					gtk_menu_popup(GTK_MENU(menu), NULL, NULL, pan_window_menu_pos_cb, pw, 0, GDK_CURRENT_TIME);
+					break;
+				default:
+					stop_signal = FALSE;
+					break;
+				}
+			}
+		else
+			{
+			stop_signal = TRUE;
+			switch (event->keyval)
+				{
+				case GDK_Escape:
+					if (pw->fs)
+						{
+						pan_fullscreen_toggle(pw, TRUE);
+						}
+					else if (GTK_WIDGET_HAS_FOCUS(pw->search_entry))
+						{
+						gtk_widget_grab_focus(GTK_WIDGET(pw->imd->widget));
+						gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pw->search_button), FALSE);
+						}
+					else
+						{
+						stop_signal = FALSE;
+						}
 				break;
+				default:
+					stop_signal = FALSE;
+					break;
+				}
 			}
 		}
 
-	if (x != 0 || y!= 0)
-		{
-		keyboard_scroll_calc(&x, &y, event);
-		pixbuf_renderer_scroll(pr, x, y);
-		}
-
 	return stop_signal;
 }