]> git.mdlowis.com Git - archive/afm.git/commitdiff
use prev. node function when moving focus backwards
authora bellenir <a@bellenir.com>
Tue, 29 Jul 2014 21:40:35 +0000 (21:40 +0000)
committera bellenir <a@bellenir.com>
Tue, 29 Jul 2014 21:40:35 +0000 (21:40 +0000)
source/screen.c

index 985eaeeb8e859a537c5ed611ec723bff564a672f..e283f7ded4bffc94a53c5c530a8a6659984f4a61 100644 (file)
@@ -132,13 +132,26 @@ void screen_focus_next(void){
     state_set_screen_dirty(true);
 }
 
+//TODO: this should be a function in list.h
+list_node_t* find_prev_node(list_node_t* node){
+       list_node_t* prev = (Frame_List->head == node) ? NULL : Frame_List->head;
+       while(prev && prev->next != node) prev=prev->next;
+       return prev;
+}
+
 void screen_focus_prev(void){
+       list_node_t* prev = find_prev_node(state_get_focused_node());
+       if(!prev) prev = Frame_List->tail;
+       state_set_focused_node(prev);
+       state_set_screen_dirty(true);
+       /*
     int i = get_focused_frame_index();
     if(i >= 0){
         list_node_t* prev = (i == 0) ? Frame_List->tail : list_at(Frame_List, i-1);
         if(prev) state_set_focused_node(prev);
         state_set_screen_dirty(true);
     }
+    */
 }
 
 void screen_focus_master(void){
@@ -146,13 +159,6 @@ void screen_focus_master(void){
     state_set_screen_dirty(true);
 }
 
-//TODO: this should be a function in list.h
-list_node_t* find_prev_node(list_node_t* node){
-       list_node_t* prev = (Frame_List->head == node) ? NULL : Frame_List->head;
-       while(prev && prev->next != node) prev=prev->next;
-       return prev;
-}
-
 void screen_swap_with_master(void){
        list_node_t* focused = state_get_focused_node();
        list_node_t* master = Frame_List->head;