From fc6eb2eef3cddce77dec381f5949fde0c4441d47 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Thu, 16 Sep 1999 18:26:02 +0000 Subject: [PATCH] Thu Sep 16 12:04:54 PDT 1999 (Raster) added patch to fix some behavior of raiselower fixed pager starting up shaded problem fixed iconfiicaton of thing son other desktops problem SVN revision: 289 --- src/ChangeLog | 11 ++++++ src/E.h | 13 ++----- src/actions.c | 67 +++++++++++++++++++++++++++------- src/borders.c | 9 +++-- src/evhandlers.c | 3 ++ src/finders.c | 1 + src/iconify.c | 11 +++++- src/pager.c | 32 ++++++++++------ src/themes/configs/definitions | 9 +++++ 9 files changed, 115 insertions(+), 41 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 5e1dcfd8..f417a015 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1813,3 +1813,14 @@ Wed Sep 15 19:09:52 PDT 1999 (Mandrake) syncing kde code + +------------------------------------------------------------------------------- + +Thu Sep 16 12:04:54 PDT 1999 +(Raster) + +added patch to fix some behavior of raiselower + +fixed pager starting up shaded problem + +fixed iconfiicaton of thing son other desktops problem diff --git a/src/E.h b/src/E.h index 1d506a29..7ba4f513 100644 --- a/src/E.h +++ b/src/E.h @@ -442,8 +442,9 @@ int Esnprintf(va_alist); #define ACTION_LOWER_NG 94 #define ACTION_STICK_NG 95 #define ACTION_SHADE_NG 96 +#define ACTION_RAISE_LOWER_NG 97 /* false number excluding the above list */ -#define ACTION_NUMBEROF 97 +#define ACTION_NUMBEROF 98 #define MODE_NONE 0 #define MODE_MOVE 1 @@ -1971,7 +1972,6 @@ int doResizeH(void *params); int doResizeV(void *params); int doResizeEnd(void *params); int doMoveEnd(void *params); -int doMoveEndNoGroup(void *params); int doRaise(void *params); int doRaiseNoGroup(void *params); int doLower(void *params); @@ -2052,20 +2052,13 @@ int doConfigure(void *params); int doInsertKeys(void *params); int doCreateIconbox(void *params); int doRaiseLower(void *params); +int doRaiseLowerNoGroup(void *params); int doStartGroup(void *params); int doAddToGroup(void *params); int doRemoveFromGroup(void *params); int doBreakGroup(void *params); int doShowHideGroup(void *params); int doZoom(void *params); -int doSetWindowBorderNoGroup(void *params); -int doIconifyNoGoup(void *params); -int doKillNoGroup(void *params); -int doMoveNoGroup(void *params); -int doRaiseNoGroup(void *params); -int doLowerNoGroup(void *params); -int doStickNoGroup(void *params); -int doShadeNoGroup(void *params); int initFunctionArray(void); void GrabActionKey(Action * a); diff --git a/src/actions.c b/src/actions.c index 3812ddb0..b094a775 100644 --- a/src/actions.c +++ b/src/actions.c @@ -3378,12 +3378,29 @@ doCreateIconbox(void *params) EDBUG_RETURN(0); } +static int +FindEwinInList(EWin * ewin, EWin ** gwins, int num) +{ + int i; + + if (ewin && gwins) + { + for (i = 0; i < num; i++) + { + if (ewin == gwins[i]) + return 1; + } + } + + return 0; +} + int doRaiseLower(void *params) { EWin *ewin; EWin **gwins; - int i, num, j; + int i, num, j, raise = 0; EDBUG(6, "doRaiseLower"); if (InZoom()) @@ -3397,7 +3414,7 @@ doRaiseLower(void *params) if (!ewin) EDBUG_RETURN(0); - gwins = ListWinGroupMembersForEwin(ewin, ACTION_NONE, 0, &num); + gwins = ListWinGroupMembersForEwin(ewin, ACTION_RAISE_LOWER, mode.nogroup, &num); for (j = 0; j < num; j++) { ewin = gwins[j]; @@ -3405,28 +3422,49 @@ doRaiseLower(void *params) { for (i = 0; i < desks.desk[ewin->desktop].num - 1; i++) { - if (desks.desk[ewin->desktop].list[i]->layer == ewin->layer) + if (desks.desk[ewin->desktop].list[i]->layer == ewin->layer && + (desks.desk[ewin->desktop].list[i] == ewin || + !FindEwinInList(desks.desk[ewin->desktop].list[i], gwins, num))) { - if (desks.desk[ewin->desktop].list[i] == ewin) - { - AUDIO_PLAY("SOUND_LOWER"); - LowerEwin(ewin); - } - else - { - AUDIO_PLAY("SOUND_RAISE"); - RaiseEwin(ewin); - } - i = desks.desk[ewin->desktop].num; + if (desks.desk[ewin->desktop].list[i] != ewin) + raise = 1; + + j = num; + break; } } } } + + if (!raise) + { + AUDIO_PLAY("SOUND_LOWER"); + for (j = 0; j < num; j++) + LowerEwin(gwins[j]); + } + else + { + AUDIO_PLAY("SOUND_RAISE"); + for (j = 0; j < num; j++) + RaiseEwin(gwins[j]); + } + Efree(gwins); EDBUG_RETURN(0); } +int +doRaiseLowerNoGroup(void *params) +{ + int result; + + mode.nogroup = 1; + result = doRaiseLower(params); + mode.nogroup = 0; + return result; +} + int doShowHideGroup(void *params) { @@ -3681,6 +3719,7 @@ initFunctionArray(void) ActionFunctions[ACTION_LOWER_NG] = (int (*)(void *))(doLowerNoGroup); ActionFunctions[ACTION_STICK_NG] = (int (*)(void *))(doStickNoGroup); ActionFunctions[ACTION_SHADE_NG] = (int (*)(void *))(doShadeNoGroup); + ActionFunctions[ACTION_RAISE_LOWER_NG] = (int (*)(void *))(doRaiseLowerNoGroup); EDBUG_RETURN(0); } diff --git a/src/borders.c b/src/borders.c index 2a3aa244..3fd2ddf8 100644 --- a/src/borders.c +++ b/src/borders.c @@ -2582,6 +2582,7 @@ ShadeEwin(EWin * ewin) struct timeval timev1, timev2; int dsec, dusec; double tm; + char pq; EDBUG(4, "ShadeEwin"); @@ -2596,6 +2597,7 @@ ShadeEwin(EWin * ewin) EDBUG_RETURN_; if ((ewin->border) && (!strcmp(ewin->border->name, "BORDERLESS"))) EDBUG_RETURN_; + pq = queue_up; queue_up = 0; speed = mode.shadespeed; spd = 32; @@ -2826,7 +2828,7 @@ ShadeEwin(EWin * ewin) EShapeCombineShape(disp, ewin->win_container, ShapeBounding, 0, 0, ewin->client.win, ShapeBounding, ShapeSet); PropagateShapes(ewin->win); - queue_up = 1; + queue_up = pq; GNOME_SetHint(ewin); if (mode.mode == MODE_NONE) { @@ -2845,12 +2847,14 @@ UnShadeEwin(EWin * ewin) struct timeval timev1, timev2; int dsec, dusec; double tm; + char pq; EDBUG(4, "UnShadeEwin"); if (GetZoomEWin() == ewin) EDBUG_RETURN_; if (!ewin->shaded) EDBUG_RETURN_; + pq = queue_up; queue_up = 0; speed = mode.shadespeed; spd = 32; @@ -3102,12 +3106,11 @@ UnShadeEwin(EWin * ewin) break; } UngrabX(); - queue_up = 0; if (ewin->client.shaped) EShapeCombineShape(disp, ewin->win_container, ShapeBounding, 0, 0, ewin->client.win, ShapeBounding, ShapeSet); PropagateShapes(ewin->win); - queue_up = 1; + queue_up = pq; GNOME_SetHint(ewin); if (mode.mode == MODE_NONE) { diff --git a/src/evhandlers.c b/src/evhandlers.c index 988f4f59..8b98fbd4 100644 --- a/src/evhandlers.c +++ b/src/evhandlers.c @@ -2300,6 +2300,9 @@ HandleMouseUp(XEvent * ev) UpdateAppIcon(p->hi_ewin, ewin->ibox->icon_mode); } HideEwin(p->hi_ewin); + MoveEwin(p->hi_ewin, + pwin_px + ((desks.desk[p->hi_ewin->desktop].current_area_x) - p->hi_ewin->area_x) * root.w, + pwin_py + ((desks.desk[p->hi_ewin->desktop].current_area_y) - p->hi_ewin->area_y) * root.h); if (was_shaded != p->hi_ewin->shaded) InstantShadeEwin(p->hi_ewin); AddEwinToIconbox(ewin->ibox, p->hi_ewin); diff --git a/src/finders.c b/src/finders.c index e3d0b20a..8cbdf16e 100644 --- a/src/finders.c +++ b/src/finders.c @@ -292,6 +292,7 @@ ListWinGroupMembersForEwin(EWin * ewin, int action, char nogroup, int *num) break; case ACTION_RAISE: case ACTION_LOWER: + case ACTION_RAISE_LOWER: if (!ewin->groups[i]->cfg.raise) daddy_says_no_no = 1; break; diff --git a/src/iconify.c b/src/iconify.c index 9a700482..3f010e64 100644 --- a/src/iconify.c +++ b/src/iconify.c @@ -124,6 +124,9 @@ IconifyEwin(EWin * ewin) UpdateAppIcon(ewin, ib->icon_mode); } HideEwin(ewin); + MoveEwin(ewin, + ewin->x + ((desks.desk[ewin->desktop].current_area_x) - ewin->area_x) * root.w, + ewin->y + ((desks.desk[ewin->desktop].current_area_y) - ewin->area_y) * root.h); if (was_shaded != ewin->shaded) InstantShadeEwin(ewin); MakeIcon(ewin); @@ -340,7 +343,10 @@ ShowIconbox(Iconbox * ib) EWin *ewin = NULL; XClassHint *xch; XTextProperty xtp; + char pq; + pq = queue_up; + queue_up = 0; xtp.encoding = XA_STRING; xtp.format = 8; xtp.value = (unsigned char *)("Iconbox"); @@ -401,8 +407,6 @@ ShowIconbox(Iconbox * ib) if ((sn->use_shade) && (sn->shade)) InstantUnShadeEwin(ewin); ResizeEwin(ewin, sn->w, sn->h); - if ((sn->use_shade) && (sn->shade)) - InstantShadeEwin(ewin); if (sn->use_xy) MoveEwin(ewin, sn->x, sn->y); } @@ -411,10 +415,13 @@ ShowIconbox(Iconbox * ib) ConformEwinToDesktop(ewin); DesktopRemoveEwin(ewin); DesktopAddEwinToTop(ewin); + if ((sn) && (sn->use_shade) && (sn->shade)) + ShadeEwin(ewin); ShowEwin(ewin); RememberImportantInfoForEwin(ewin); } IconboxResize(ib, ib->ewin->client.w, ib->ewin->client.h); + queue_up = pq; } void diff --git a/src/pager.c b/src/pager.c index 638b98d1..fa1668c1 100644 --- a/src/pager.c +++ b/src/pager.c @@ -577,6 +577,7 @@ PagerShow(Pager * p) EWin *ewin = NULL; XClassHint *xch; char s[64]; + char pq; if (!mode.show_pagers) return; @@ -591,6 +592,8 @@ PagerShow(Pager * p) xch->res_class = "Enlightenment_Pager"; XSetClassHint(disp, p->win, xch); XFree(xch); + pq = queue_up; + queue_up = 0; if (p->border_name) ewin = AddInternalToFamily(p->win, 1, p->border_name); else @@ -626,27 +629,31 @@ PagerShow(Pager * p) { if ((sn->use_shade) && (sn->shade)) InstantUnShadeEwin(ewin); + p->w = 0; + p->h = 0; ResizeEwin(ewin, sn->w, sn->h); - if ((sn->use_shade) && (sn->shade)) - InstantShadeEwin(ewin); + PagerRedraw(p, 1); } } /* no snapshots ? first time ? make a row on the bottom left up */ else - MoveEwin(ewin, 0, - root.h - ((mode.numdesktops - p->desktop) * ewin->h)); + { + MoveEwin(ewin, 0, + root.h - ((mode.numdesktops - p->desktop) * ewin->h)); + /* force a redraw & resize */ + pw = p->w; + ph = p->h; + p->w = 0; + p->h = 0; + PagerResize(p, pw, ph); + PagerRedraw(p, 1); + } ConformEwinToDesktop(ewin); - DesktopAddEwinToTop(ewin); - /* force a redraw & resize */ - pw = p->w; - ph = p->h; - p->w = 0; - p->h = 0; - PagerResize(p, pw, ph); - PagerRedraw(p, 1); /* show the pager ewin */ DesktopRemoveEwin(ewin); DesktopAddEwinToTop(ewin); + if ((sn) && (sn->use_shade) && (sn->shade)) + ShadeEwin(ewin); ShowEwin(ewin); RememberImportantInfoForEwin(ewin); if (SNAP) @@ -655,6 +662,7 @@ PagerShow(Pager * p) if (mode.pager_scanspeed > 0) DoIn(s, 1 / ((double)mode.pager_scanspeed), PagerUpdateTimeout, 0, p); } + queue_up = pq; AddItem(p, "PAGER", p->win, LIST_TYPE_PAGER); } } diff --git a/src/themes/configs/definitions b/src/themes/configs/definitions index a31925eb..beac341d 100644 --- a/src/themes/configs/definitions +++ b/src/themes/configs/definitions @@ -315,6 +315,15 @@ #define __A_CREATE_ICONBOX 86 #define __A_RAISE_LOWER 87 #define __A_ZOOM 88 +#define __A_SET_WINDOW_BORDER_NG 89 +#define __A_ICONIFY_NG 90 +#define __A_KILL_NG 91 +#define __A_MOVE_NG 92 +#define __A_RAISE_NG 93 +#define __A_LOWER_NG 94 +#define __A_STICK_NG 95 +#define __A_SHADE_NG 96 +#define __A_RAISE_LOWER_NG 97 #define __MODIFIER_KEY 101 #define __TYPE 102