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