Play raise/lower sounds only if any windows are actually raised/lowered.
This commit is contained in:
parent
4f866801f7
commit
8c4fab941b
|
@ -1475,28 +1475,30 @@ void
|
|||
EwinOpRaise(EWin * ewin, int source __UNUSED__)
|
||||
{
|
||||
EWin **gwins;
|
||||
int i, num;
|
||||
int i, num, changed;
|
||||
|
||||
SoundPlay(SOUND_RAISE);
|
||||
gwins = ListWinGroupMembersForEwin(ewin, GROUP_ACTION_STACKING,
|
||||
Mode.nogroup, &num);
|
||||
for (i = 0; i < num; i++)
|
||||
EwinRaise(gwins[i]);
|
||||
for (i = changed = 0; i < num; i++)
|
||||
changed += EwinRaise(gwins[i]);
|
||||
Efree(gwins);
|
||||
if (changed)
|
||||
SoundPlay(SOUND_RAISE);
|
||||
}
|
||||
|
||||
void
|
||||
EwinOpLower(EWin * ewin, int source __UNUSED__)
|
||||
{
|
||||
EWin **gwins;
|
||||
int i, num;
|
||||
int i, num, changed;
|
||||
|
||||
SoundPlay(SOUND_LOWER);
|
||||
gwins = ListWinGroupMembersForEwin(ewin, GROUP_ACTION_STACKING,
|
||||
Mode.nogroup, &num);
|
||||
for (i = 0; i < num; i++)
|
||||
EwinLower(gwins[i]);
|
||||
for (i = changed = 0; i < num; i++)
|
||||
changed += EwinLower(gwins[i]);
|
||||
Efree(gwins);
|
||||
if (changed)
|
||||
SoundPlay(SOUND_LOWER);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
24
src/ewins.c
24
src/ewins.c
|
@ -1435,15 +1435,15 @@ EwinReparent(EWin * ewin, Win parent)
|
|||
EwinWithdraw(ewin, parent);
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
EwinRaise(EWin * ewin)
|
||||
{
|
||||
static int call_depth = 0;
|
||||
EWin **lst;
|
||||
int i, num;
|
||||
int i, num, numt;
|
||||
|
||||
if (call_depth > 256)
|
||||
return;
|
||||
return 0;
|
||||
call_depth++;
|
||||
|
||||
num = EoRaise(ewin);
|
||||
|
@ -1455,8 +1455,8 @@ EwinRaise(EWin * ewin)
|
|||
if (num == 0) /* Quit if stacking is unchanged */
|
||||
goto done;
|
||||
|
||||
lst = EwinListTransients(ewin, &num, 1);
|
||||
for (i = 0; i < num; i++)
|
||||
lst = EwinListTransients(ewin, &numt, 1);
|
||||
for (i = 0; i < numt; i++)
|
||||
EwinRaise(lst[i]);
|
||||
Efree(lst);
|
||||
|
||||
|
@ -1468,17 +1468,19 @@ EwinRaise(EWin * ewin)
|
|||
|
||||
done:
|
||||
call_depth--;
|
||||
|
||||
return num;
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
EwinLower(EWin * ewin)
|
||||
{
|
||||
static int call_depth = 0;
|
||||
EWin **lst;
|
||||
int i, num;
|
||||
int i, num, numt;
|
||||
|
||||
if (call_depth > 256)
|
||||
return;
|
||||
return 0;
|
||||
call_depth++;
|
||||
|
||||
num = EoLower(ewin);
|
||||
|
@ -1490,8 +1492,8 @@ EwinLower(EWin * ewin)
|
|||
if (num == 0) /* Quit if stacking is unchanged */
|
||||
goto done;
|
||||
|
||||
lst = EwinListTransientFor(ewin, &num);
|
||||
for (i = 0; i < num; i++)
|
||||
lst = EwinListTransientFor(ewin, &numt);
|
||||
for (i = 0; i < numt; i++)
|
||||
EwinLower(lst[i]);
|
||||
Efree(lst);
|
||||
|
||||
|
@ -1503,6 +1505,8 @@ EwinLower(EWin * ewin)
|
|||
|
||||
done:
|
||||
call_depth--;
|
||||
|
||||
return num;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -357,8 +357,8 @@ int DrawEwinShapeNeedsGrab(int mode);
|
|||
Window EwinGetClientXwin(const EWin * ewin);
|
||||
|
||||
void EwinShapeSet(EWin * ewin);
|
||||
void EwinRaise(EWin * ewin);
|
||||
void EwinLower(EWin * ewin);
|
||||
int EwinRaise(EWin * ewin);
|
||||
int EwinLower(EWin * ewin);
|
||||
void EwinShow(EWin * ewin);
|
||||
void EwinHide(EWin * ewin);
|
||||
void EwinKill(EWin * ewin);
|
||||
|
|
Loading…
Reference in New Issue