Enlightenment CVS committal
Author : kwo
Project : e16
Module : e
Dir : e16/e/src
Modified Files:
E.h borders.c events.c evhandlers.c focus.c icccm.c menus.c
Log Message:
Bits and pieces - no actual changes.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.307
retrieving revision 1.308
diff -u -3 -r1.307 -r1.308
--- E.h 15 Jul 2004 18:23:37 -0000 1.307
+++ E.h 15 Jul 2004 23:31:00 -0000 1.308
@@ -1809,6 +1809,7 @@
void EwinBorderUpdateState(EWin * ewin);
void EwinEventDestroy(EWin * ewin);
void EwinEventMap(EWin * ewin);
+void EwinEventVisibility(EWin * ewin, int on);
void EwinEventUnmap(EWin * ewin);
void MoveEwinToArea(EWin * ewin, int ax, int ay);
int EwinGetDesk(const EWin * ewin);
@@ -2118,6 +2119,7 @@
void HandleFocusIn(XEvent * ev);
void HandleFocusOut(XEvent * ev);
void HandleExpose(XEvent * ev);
+void HandleVisibilityNotify(XEvent * ev);
void HandleDestroy(XEvent * ev);
void HandleUnmap(XEvent * ev);
void HandleMap(XEvent * ev);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/borders.c,v
retrieving revision 1.217
retrieving revision 1.218
diff -u -3 -r1.217 -r1.218
--- borders.c 15 Jul 2004 18:23:53 -0000 1.217
+++ borders.c 15 Jul 2004 23:31:00 -0000 1.218
@@ -1630,6 +1630,11 @@
EwinWithdraw(ewin);
}
+void
+EwinEventVisibility(EWin * ewin __UNUSED__, int state __UNUSED__)
+{
+}
+
static void
EwinBorderSetTo(EWin * ewin, Border * b)
{
@@ -1830,7 +1835,7 @@
{
int x, y;
- if (ewin->state != EWIN_STATE_MAPPED)
+ if (!EwinIsMapped(ewin))
return;
x = ewin->x;
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/events.c,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -3 -r1.68 -r1.69
--- events.c 31 May 2004 19:47:34 -0000 1.68
+++ events.c 15 Jul 2004 23:31:01 -0000 1.69
@@ -169,6 +169,7 @@
case NoExpose: /* 14 */
break;
case VisibilityNotify: /* 15 */
+ HandleVisibilityNotify(ev);
break;
case CreateNotify: /* 16 */
break;
@@ -654,8 +655,10 @@
case Expose:
case GraphicsExpose:
case NoExpose:
- case VisibilityNotify:
goto case_common;
+ case VisibilityNotify:
+ Eprintf("EV-%s win=%#lx state=%d\n", name, win, ev->xvisibility.state);
+ break;
case CreateNotify:
case DestroyNotify:
case UnmapNotify:
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/evhandlers.c,v
retrieving revision 1.172
retrieving revision 1.173
diff -u -3 -r1.172 -r1.173
--- evhandlers.c 15 Jul 2004 18:23:53 -0000 1.172
+++ evhandlers.c 15 Jul 2004 23:31:01 -0000 1.173
@@ -687,6 +687,23 @@
}
void
+HandleVisibilityNotify(XEvent * ev)
+{
+ Window win = ev->xvisibility.window;
+ EWin *ewin;
+
+ EDBUG(5, "HandleVisibilityNotify");
+
+ ewin = FindItem(NULL, win, LIST_FINDBY_ID, LIST_TYPE_EWIN);
+ if (ewin)
+ {
+ EwinEventVisibility(ewin, ev->xvisibility.state);
+ }
+
+ EDBUG_RETURN_;
+}
+
+void
HandleDestroy(XEvent * ev)
{
Window win = ev->xdestroywindow.window;
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/focus.c,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -3 -r1.74 -r1.75
--- focus.c 12 Jul 2004 23:24:36 -0000 1.74
+++ focus.c 15 Jul 2004 23:31:01 -0000 1.75
@@ -33,7 +33,7 @@
if (ewin->skipfocus || ewin->neverfocus || ewin->shaded || ewin->iconified)
return 0;
- if (ewin->state != EWIN_STATE_MAPPED)
+ if (!EwinIsMapped(ewin))
return 0;
return EwinIsOnScreen(ewin);
@@ -280,7 +280,10 @@
/* NB! ewin != NULL */
- if (ewin->iconified || ewin->neverfocus)
+ if (ewin->neverfocus)
+ EDBUG_RETURN_;
+
+ if (ewin->iconified)
EDBUG_RETURN_;
if (!ewin->client.need_input)
@@ -328,11 +331,11 @@
if (Mode.focuswin)
FocusEwinSetActive(Mode.focuswin, 0);
ICCCM_Cmap(ewin);
- ICCCM_Focus(ewin);
Mode.focuswin = ewin;
/* Set new focus window (if any) highlighting */
if (Mode.focuswin)
FocusEwinSetActive(Mode.focuswin, 1);
+ ICCCM_Focus(ewin);
EDBUG_RETURN_;
}
@@ -435,47 +438,6 @@
FocusToEWin(NULL, FOCUS_SET);
}
-#if 0 /* Remove old code */
-void
-FocusHandleEnter(XEvent * ev)
-{
- /*
- * multi screen handling -- root windows receive
- * enter / leave notify
- */
- if (ev->xany.window == VRoot.win)
- {
- if (!Mode.focuswin || Conf.focus.mode == MODE_FOCUS_POINTER)
- HandleFocusWindow(0);
- }
- else
- {
- HandleFocusWindow(ev->xcrossing.window);
- }
-}
-
-void
-FocusHandleLeave(XEvent * ev)
-{
- /*
- * If we are leaving the root window, we are switching
- * screens on a multi screen system - need to unfocus
- * to allow other desk to grab focus...
- */
- if (ev->xcrossing.window == VRoot.win)
- {
- if (ev->xcrossing.mode == NotifyNormal
- && ev->xcrossing.detail != NotifyInferior && Mode.focuswin)
- HandleFocusWindow(0);
- else
- HandleFocusWindow(ev->xcrossing.window);
- }
-/* THIS caused the "emacs focus bug" ? */
-/* else */
-/* HandleFocusWindow(ev->xcrossing.window); */
-}
-#endif
-
void
FocusHandleClick(Window win)
{
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/icccm.c,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -3 -r1.75 -r1.76
--- icccm.c 13 Jul 2004 17:15:20 -0000 1.75
+++ icccm.c 15 Jul 2004 23:31:01 -0000 1.76
@@ -71,7 +71,7 @@
}
static void
-ICCCM_ClientMessageSend(Window win, Atom atom)
+ICCCM_ClientMessageSend(Window win, Atom atom, Time ts)
{
XEvent ev;
@@ -80,7 +80,7 @@
ev.xclient.message_type = E_XA_WM_PROTOCOLS;
ev.xclient.format = 32;
ev.xclient.data.l[0] = atom;
- ev.xclient.data.l[1] = CurrentTime;
+ ev.xclient.data.l[1] = ts;
XSendEvent(disp, win, False, 0, &ev);
}
@@ -197,7 +197,8 @@
}
if (ewin->client.delete_window)
- ICCCM_ClientMessageSend(ewin->client.win, E_XA_WM_DELETE_WINDOW);
+ ICCCM_ClientMessageSend(ewin->client.win, E_XA_WM_DELETE_WINDOW,
+ CurrentTime);
else
XKillClient(disp, (XID) ewin->client.win);
@@ -212,7 +213,8 @@
if (ewin->internal)
EDBUG_RETURN_;
- ICCCM_ClientMessageSend(ewin->client.win, E_XA_WM_SAVE_YOURSELF);
+ ICCCM_ClientMessageSend(ewin->client.win, E_XA_WM_SAVE_YOURSELF,
+ CurrentTime);
EDBUG_RETURN_;
}
@@ -224,10 +226,10 @@
EDBUG(6, "ICCCM_Iconify");
+ EUnmapWindow(disp, ewin->client.win);
XChangeProperty(disp, ewin->client.win, E_XA_WM_STATE, E_XA_WM_STATE,
32, PropModeReplace, (unsigned char *)c, 2);
AddItem(ewin, "ICON", ewin->client.win, LIST_TYPE_ICONIFIEDS);
- EUnmapWindow(disp, ewin->client.win);
EDBUG_RETURN_;
}
@@ -239,10 +241,10 @@
EDBUG(6, "ICCCM_DeIconify");
+ EMapWindow(disp, ewin->client.win);
XChangeProperty(disp, ewin->client.win, E_XA_WM_STATE, E_XA_WM_STATE,
32, PropModeReplace, (unsigned char *)c, 2);
RemoveItem("ICON", ewin->client.win, LIST_FINDBY_BOTH, LIST_TYPE_ICONIFIEDS);
- EMapWindow(disp, ewin->client.win);
EDBUG_RETURN_;
}
@@ -481,6 +483,15 @@
{
EDBUG(6, "ICCCM_Focus");
+ if (EventDebug(EDBUG_TYPE_FOCUS))
+ {
+ if (ewin)
+ Eprintf("ICCCM_Focus %#lx %s\n", ewin->client.win,
+ EwinGetTitle(ewin));
+ else
+ Eprintf("ICCCM_Focus None\n");
+ }
+
if (!ewin)
{
XSetInputFocus(disp, VRoot.win, RevertToPointerRoot, CurrentTime);
@@ -489,8 +500,13 @@
}
if (ewin->client.take_focus)
- ICCCM_ClientMessageSend(ewin->client.win, E_XA_WM_TAKE_FOCUS);
+ {
+ ICCCM_ClientMessageSend(ewin->client.win, E_XA_WM_TAKE_FOCUS,
+ CurrentTime);
+ }
+
XSetInputFocus(disp, ewin->client.win, RevertToPointerRoot, CurrentTime);
+
HintsSetActiveWindow(ewin->client.win);
EDBUG_RETURN_;
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/menus.c,v
retrieving revision 1.146
retrieving revision 1.147
diff -u -3 -r1.146 -r1.147
--- menus.c 14 Jul 2004 19:05:30 -0000 1.146
+++ menus.c 15 Jul 2004 23:31:02 -0000 1.147
@@ -2376,7 +2376,7 @@
if (!m || m->num <= 0)
break;
ewin = FindEwinByMenu(m);
- if (ewin == NULL || ewin->state != EWIN_STATE_MAPPED)
+ if (ewin == NULL || !EwinIsMapped(ewin))
break;
mi = m->items[0];
goto check_menu;
-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs