Mercurial > geeqie
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 } |