Enlightenment CVS committal
Author : kwo
Project : e16
Module : e
Dir : e16/e/src
Modified Files:
evhandlers.c icccm.c
Log Message:
Fix problem with losing control over windows being deiconified (+cleanups).
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/evhandlers.c,v
retrieving revision 1.115
retrieving revision 1.116
diff -u -3 -r1.115 -r1.116
--- evhandlers.c 12 Jul 2003 08:52:14 -0000 1.115
+++ evhandlers.c 12 Jul 2003 09:21:38 -0000 1.116
@@ -1431,14 +1431,6 @@
ewin = FindItem(NULL, win, LIST_FINDBY_ID, LIST_TYPE_EWIN);
if (ewin)
{
- if (ewin->iconified > 1)
- {
- ewin->iconified = ewin->iconified - 1;
- EDBUG_RETURN_;
- }
- }
- if (ewin)
- {
if (ewin->pager)
{
if ((mode.mode == MODE_PAGER_DRAG) && (ewin->pager->hi_ewin))
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/icccm.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -3 -r1.37 -r1.38
--- icccm.c 12 Jul 2003 08:22:58 -0000 1.37
+++ icccm.c 12 Jul 2003 09:21:38 -0000 1.38
@@ -23,12 +23,14 @@
*/
#include "E.h"
-static Atom xa_WM_CHANGE_STATE = 0;
+static Atom E_XA_WM_STATE = 0;
+static Atom E_XA_WM_CHANGE_STATE = 0;
void
ICCCM_Init(void)
{
- xa_WM_CHANGE_STATE = XInternAtom(disp, "WM_CHANGE_STATE", False);
+ E_XA_WM_STATE = XInternAtom(disp, "WM_STATE", False);
+ E_XA_WM_CHANGE_STATE = XInternAtom(disp, "WM_CHANGE_STATE", False);
}
void
@@ -36,7 +38,7 @@
{
EWin *ewin;
- if (event->message_type == xa_WM_CHANGE_STATE)
+ if (event->message_type == E_XA_WM_CHANGE_STATE)
{
ewin = FindItem(NULL, event->window, LIST_FINDBY_ID, LIST_TYPE_EWIN);
if (ewin == NULL)
@@ -244,42 +246,30 @@
void
ICCCM_Iconify(EWin * ewin)
{
- static Atom a = 0;
- unsigned long c[2];
+ unsigned long c[2] = { IconicState, 0 };
EDBUG(6, "ICCCM_Iconify");
if (!ewin)
EDBUG_RETURN_;
- if (!a)
- a = XInternAtom(disp, "WM_STATE", False);
- c[0] = IconicState;
- c[1] = 0;
- XChangeProperty(disp, ewin->client.win, a, a, 32, PropModeReplace,
- (unsigned char *)c, 2);
+ XChangeProperty(disp, ewin->client.win, E_XA_WM_STATE, E_XA_WM_STATE,
+ 32, PropModeReplace, (unsigned char *)c, 2);
ewin->iconified = 3;
AddItem(ewin, "ICON", ewin->client.win, LIST_TYPE_ICONIFIEDS);
- EUnmapWindow(disp, ewin->client.win);
EDBUG_RETURN_;
}
void
ICCCM_DeIconify(EWin * ewin)
{
- static Atom a;
- unsigned long c[2];
+ unsigned long c[2] = { NormalState, 0 };
EDBUG(6, "ICCCM_DeIconify");
if (!ewin)
EDBUG_RETURN_;
- if (!a)
- a = XInternAtom(disp, "WM_STATE", False);
- c[0] = NormalState;
- c[1] = 0;
ewin->iconified = 0;
- XChangeProperty(disp, ewin->client.win, a, a, 32, PropModeReplace,
- (unsigned char *)c, 2);
+ 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_;
}
@@ -409,9 +399,8 @@
void
ICCCM_Adopt(EWin * ewin)
{
- static Atom a = 0;
Window win = ewin->client.win;
- unsigned long c[2];
+ unsigned long c[2] = { 0, 0 };
XWindowAttributes att;
EDBUG(6, "ICCCM_Adopt");
@@ -424,18 +413,9 @@
LeaveWindowMask | FocusChangeMask | ResizeRedirectMask |
StructureNotifyMask | ColormapChangeMask);
XShapeSelectInput(disp, win, ShapeNotifyMask);
- if (!a)
- a = XInternAtom(disp, "WM_STATE", False);
- if (ewin->client.start_iconified)
- {
- c[0] = IconicState;
- }
- else
- {
- c[0] = NormalState;
- }
- c[1] = 0;
- XChangeProperty(disp, win, a, a, 32, PropModeReplace, (unsigned char *)c, 2);
+ c[0] = (ewin->client.start_iconified) ? IconicState : NormalState;
+ XChangeProperty(disp, win, E_XA_WM_STATE, E_XA_WM_STATE, 32, PropModeReplace,
+ (unsigned char *)c, 2);
ewin->x = ewin->client.x;
ewin->y = ewin->client.y;
ewin->reqx = ewin->client.x;
@@ -450,23 +430,17 @@
void
ICCCM_Withdraw(EWin * ewin)
{
- static Atom a = 0;
- unsigned long c[2];
+ unsigned long c[2] = { WithdrawnState, 0 };
EDBUG(6, "ICCCM_Withdraw");
if (!ewin)
EDBUG_RETURN_;
- if (!a)
- a = XInternAtom(disp, "WM_STATE", False);
-
/* We have a choice of deleting the WM_STATE property
* or changing the value to Withdrawn. Since twm/fvwm does
* it that way, we change it to Withdrawn.
*/
- c[0] = WithdrawnState;
- c[1] = 0;
- XChangeProperty(disp, ewin->client.win, a, a, 32, PropModeReplace,
- (unsigned char *)c, 2);
+ XChangeProperty(disp, ewin->client.win, E_XA_WM_STATE, E_XA_WM_STATE,
+ 32, PropModeReplace, (unsigned char *)c, 2);
XRemoveFromSaveSet(disp, ewin->client.win);
EDBUG_RETURN_;
}
-------------------------------------------------------
This SF.Net email sponsored by: Parasoft
Error proof Web apps, automate testing & more.
Download & eval WebKing and get a free book.
www.parasoft.com/bulletproofapps1
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs