Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        desktops.c focus.c 


Log Message:
Partial fix to desktop switch focus problem.
Should make the symptoms go away.

===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/desktops.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -3 -r1.40 -r1.41
--- desktops.c  30 May 2003 20:26:53 -0000      1.40
+++ desktops.c  11 Jun 2003 20:05:58 -0000      1.41
@@ -1492,8 +1492,9 @@
                         mode.ewin->y + desks.desk[mode.ewin->desktop].y);
          }
      }
+
    FocusToEWin(NULL);
-   ICCCM_Cmap(NULL);
+   BeginNewDeskFocus();
 
    if (num > 0)
      {
@@ -1577,9 +1578,12 @@
               }
          }
      }
+
+   NewDeskFocus();
    RedrawPagersForDesktop(num, 3);
    ForceUpdatePagersForDesktop(num);
    HandleDrawQueue();
+
    EDBUG_RETURN_;
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/focus.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -3 -r1.34 -r1.35
--- focus.c     22 May 2003 19:15:00 -0000      1.34
+++ focus.c     11 Jun 2003 20:05:59 -0000      1.35
@@ -25,6 +25,8 @@
 static void         ReverseTimeout(int val, void *data);
 static void         AutoraiseTimeout(int val, void *data);
 
+static int          new_desk_focus_nesting = 0;
+
 /* Mostly stolen from the temporary 'ToolTipTimeout' */
 static void
 AutoraiseTimeout(int val, void *data)
@@ -363,8 +365,11 @@
    EWin               *ewin, **lst;
    int                 i, j, num;
 
+   if (new_desk_focus_nesting++)
+      return;
+
    /* we are about to flip desktops or areas - disable enter and leave events
-    * temproarily */
+    * temporarily */
 
    lst = (EWin **) ListItemType(&num, LIST_TYPE_EWIN);
    if (lst)
@@ -405,6 +410,7 @@
          }
        Efree(lst);
      }
+
    for (i = 0; i < ENLIGHTENMENT_CONF_NUM_DESKTOPS; i++)
       XSelectInput(disp, desks.desk[i].win,
                   PropertyChangeMask | SubstructureRedirectMask |
@@ -419,7 +425,10 @@
 
    EDBUG(4, "NewDeskFocus");
 
-   /* we flipped - re-enable ener and leave events */
+   if (--new_desk_focus_nesting)
+      return;
+
+   /* we flipped - re-enable enter and leave events */
    lst = (EWin **) ListItemType(&num, LIST_TYPE_EWIN);
    if (lst)
      {
@@ -469,6 +478,7 @@
          }
        Efree(lst);
      }
+
    for (i = 0; i < ENLIGHTENMENT_CONF_NUM_DESKTOPS; i++)
       XSelectInput(disp, desks.desk[i].win,
                   SubstructureNotifyMask | ButtonPressMask |
@@ -476,6 +486,7 @@
                   ButtonMotionMask | PropertyChangeMask |
                   SubstructureRedirectMask | KeyPressMask | KeyReleaseMask |
                   PointerMotionMask);
+
    if ((mode.focusmode == FOCUS_POINTER) || (mode.focusmode == FOCUS_SLOPPY))
      {
        ewin = GetEwinPointerInClient();
@@ -508,6 +519,7 @@
             Efree(lst);
          }
      }
+
    EDBUG_RETURN_;
 }
 




-------------------------------------------------------
This SF.NET email is sponsored by: eBay
Great deals on office technology -- on eBay now! Click here:
http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to