comparison src/view_file_icon.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 04ff0df3ad2f
children 3a69a7a3f461
comparison
equal deleted inserted replaced
84:ba3c39002a24 85:9d5c75b5ec28
1162 } 1162 }
1163 1163
1164 static gint vficon_press_key_cb(GtkWidget *widget, GdkEventKey *event, gpointer data) 1164 static gint vficon_press_key_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
1165 { 1165 {
1166 ViewFileIcon *vfi = data; 1166 ViewFileIcon *vfi = data;
1167 gint stop_signal = FALSE;
1168 gint focus_row = 0; 1167 gint focus_row = 0;
1169 gint focus_col = 0; 1168 gint focus_col = 0;
1170 FileData *fd; 1169 FileData *fd;
1171 1170 gint stop_signal;
1171
1172 stop_signal = TRUE;
1172 switch (event->keyval) 1173 switch (event->keyval)
1173 { 1174 {
1174 case GDK_Left: case GDK_KP_Left: 1175 case GDK_Left: case GDK_KP_Left:
1175 focus_col = -1; 1176 focus_col = -1;
1176 stop_signal = TRUE;
1177 break; 1177 break;
1178 case GDK_Right: case GDK_KP_Right: 1178 case GDK_Right: case GDK_KP_Right:
1179 focus_col = 1; 1179 focus_col = 1;
1180 stop_signal = TRUE;
1181 break; 1180 break;
1182 case GDK_Up: case GDK_KP_Up: 1181 case GDK_Up: case GDK_KP_Up:
1183 focus_row = -1; 1182 focus_row = -1;
1184 stop_signal = TRUE;
1185 break; 1183 break;
1186 case GDK_Down: case GDK_KP_Down: 1184 case GDK_Down: case GDK_KP_Down:
1187 focus_row = 1; 1185 focus_row = 1;
1188 stop_signal = TRUE;
1189 break; 1186 break;
1190 case GDK_Page_Up: case GDK_KP_Page_Up: 1187 case GDK_Page_Up: case GDK_KP_Page_Up:
1191 focus_row = -page_height(vfi); 1188 focus_row = -page_height(vfi);
1192 stop_signal = TRUE;
1193 break; 1189 break;
1194 case GDK_Page_Down: case GDK_KP_Page_Down: 1190 case GDK_Page_Down: case GDK_KP_Page_Down:
1195 focus_row = page_height(vfi); 1191 focus_row = page_height(vfi);
1196 stop_signal = TRUE;
1197 break; 1192 break;
1198 case GDK_Home: case GDK_KP_Home: 1193 case GDK_Home: case GDK_KP_Home:
1199 focus_row = -vfi->focus_row; 1194 focus_row = -vfi->focus_row;
1200 focus_col = -vfi->focus_column; 1195 focus_col = -vfi->focus_column;
1201 stop_signal = TRUE;
1202 break; 1196 break;
1203 case GDK_End: case GDK_KP_End: 1197 case GDK_End: case GDK_KP_End:
1204 focus_row = vfi->rows - 1 - vfi->focus_row; 1198 focus_row = vfi->rows - 1 - vfi->focus_row;
1205 focus_col = vfi->columns - 1 - vfi->focus_column; 1199 focus_col = vfi->columns - 1 - vfi->focus_column;
1206 stop_signal = TRUE;
1207 break; 1200 break;
1208 case GDK_space: 1201 case GDK_space:
1209 fd = vficon_find_data(vfi, vfi->focus_row, vfi->focus_column, NULL); 1202 fd = vficon_find_data(vfi, vfi->focus_row, vfi->focus_column, NULL);
1210 if (fd) 1203 if (fd)
1211 { 1204 {
1230 vficon_select_none(vfi); 1223 vficon_select_none(vfi);
1231 vficon_select(vfi, fd); 1224 vficon_select(vfi, fd);
1232 vficon_send_layout_select(vfi, fd); 1225 vficon_send_layout_select(vfi, fd);
1233 } 1226 }
1234 } 1227 }
1235 stop_signal = TRUE;
1236 break; 1228 break;
1237 case GDK_Menu: 1229 case GDK_Menu:
1238 fd = vficon_find_data(vfi, vfi->focus_row, vfi->focus_column, NULL); 1230 fd = vficon_find_data(vfi, vfi->focus_row, vfi->focus_column, NULL);
1239 vfi->click_fd = fd; 1231 vfi->click_fd = fd;
1240 1232
1241 vficon_selection_add(vfi, vfi->click_fd, SELECTION_PRELIGHT, NULL); 1233 vficon_selection_add(vfi, vfi->click_fd, SELECTION_PRELIGHT, NULL);
1242 tip_unschedule(vfi); 1234 tip_unschedule(vfi);
1243 1235
1244 vfi->popup = vficon_pop_menu(vfi, (fd != NULL)); 1236 vfi->popup = vficon_pop_menu(vfi, (fd != NULL));
1245 gtk_menu_popup(GTK_MENU(vfi->popup), NULL, NULL, vfi_menu_position_cb, vfi, 0, GDK_CURRENT_TIME); 1237 gtk_menu_popup(GTK_MENU(vfi->popup), NULL, NULL, vfi_menu_position_cb, vfi, 0, GDK_CURRENT_TIME);
1246 stop_signal = TRUE;
1247 break; 1238 break;
1248 default: 1239 default:
1240 stop_signal = FALSE;
1249 break; 1241 break;
1250 } 1242 }
1251 1243
1252 if (focus_row != 0 || focus_col != 0) 1244 if (focus_row != 0 || focus_col != 0)
1253 { 1245 {
1287 } 1279 }
1288 } 1280 }
1289 1281
1290 if (stop_signal) 1282 if (stop_signal)
1291 { 1283 {
1284 #if 0
1292 g_signal_stop_emission_by_name(GTK_OBJECT(widget), "key_press_event"); 1285 g_signal_stop_emission_by_name(GTK_OBJECT(widget), "key_press_event");
1286 #endif
1293 tip_unschedule(vfi); 1287 tip_unschedule(vfi);
1294 } 1288 }
1295 1289
1296 return stop_signal; 1290 return stop_signal;
1297 } 1291 }