Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_fm.c 


Log Message:


only sel_change callback on an actual change

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_fm.c,v
retrieving revision 1.116
retrieving revision 1.117
diff -u -3 -r1.116 -r1.117
--- e_fm.c      4 Dec 2006 12:14:17 -0000       1.116
+++ e_fm.c      9 Dec 2006 04:46:37 -0000       1.117
@@ -3243,8 +3243,7 @@
 {
    Evas_List *l;
    E_Fm2_Icon *ic2;
-   
-   int multi_sel = 0, range_sel = 0, seen = 0;
+   int multi_sel = 0, range_sel = 0, seen = 0, sel_change = 0;
 
    if (ic->sd->config->selection.windows_modifiers)
      {
@@ -3280,6 +3279,7 @@
                       for (; (l) && (l->data != ic); l = l->prev)
                         {
                            ic2 = l->data;
+                           if (!ic2->selected) sel_change = 1;
                            _e_fm2_icon_select(ic2);
                            ic2->last_selected = 0;
                         }
@@ -3289,6 +3289,7 @@
                       for (; (l) && (l->data != ic); l = l->next)
                         {
                            ic2 = l->data;
+                           if (!ic2->selected) sel_change = 1;
                            _e_fm2_icon_select(ic2);
                            ic2->last_selected = 0;
                         }
@@ -3305,7 +3306,11 @@
             ic2 = l->data;
             if (ic2 != ic)
               {
-                 if (ic2->selected) _e_fm2_icon_deselect(ic2);
+                 if (ic2->selected)
+                   {
+                      _e_fm2_icon_deselect(ic2);
+                      sel_change = 1;
+                   }
               }
          }
      }
@@ -3323,18 +3328,24 @@
    if ((multi_sel) && (ic->selected))
      {
        if ((up) && (!ic->drag.dnd) && (!ic->down_sel))
-         _e_fm2_icon_deselect(ic);
+         {
+            sel_change = 1;
+            _e_fm2_icon_deselect(ic);
+         }
      }
    else
      {
        if (!up)
          {
+            if (!ic->selected) sel_change = 1;
             _e_fm2_icon_select(ic);
             ic->down_sel = 1;
             ic->last_selected = 1;
          }
+
      }
-   evas_object_smart_callback_call(ic->sd->obj, "selection_change", NULL);
+   if (sel_change)
+     evas_object_smart_callback_call(ic->sd->obj, "selection_change", NULL);
    if ((!(S_ISDIR(ic->info.statinfo.st_mode)) ||
        (ic->sd->config->view.no_subdir_jump)) &&
        (ic->sd->config->view.single_click)



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to