From 6efc2c6872660c5dfcfb216702254b1bd8eddb19 Mon Sep 17 00:00:00 2001 From: Kim Woelders Date: Sat, 7 Oct 2006 12:02:34 +0000 Subject: [PATCH] Add ipc/match bits to enable/disable fading of particular windows. SVN revision: 26392 --- src/eobj.h | 1 + src/ewin-ops.c | 1 + src/ewin-ops.h | 1 + src/ipc.c | 15 ++++++++++++--- src/windowmatch.c | 4 ++++ 5 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/eobj.h b/src/eobj.h index a748dc9a..a4138fd4 100644 --- a/src/eobj.h +++ b/src/eobj.h @@ -106,6 +106,7 @@ struct _eobj #if USE_COMPOSITE #define EoSetOpacity(eo, _o) EoObj(eo)->opacity = (_o) #define EoGetOpacity(eo) (EoObj(eo)->opacity) +#define EoGetFade(eo) (EoObj(eo)->fade) #define EoGetShadow(eo) (EoObj(eo)->shadow) #define EoGetNoRedirect(eo) (EoObj(eo)->noredir) #define EoGetSerial(eo) (EoObj(eo)->serial) diff --git a/src/ewin-ops.c b/src/ewin-ops.c index ab735297..94ea6664 100644 --- a/src/ewin-ops.c +++ b/src/ewin-ops.c @@ -87,6 +87,7 @@ static const WinOp winops[] = { {"no_user_size", 0, 1, 1, EWIN_OP_INH_USER_SIZE}, {"no_wm_focus", 0, 1, 1, EWIN_OP_INH_WM_FOCUS}, + {"fade", 0, 1, 1, EWIN_OP_FADE}, {"noredir", 4, 1, 1, EWIN_OP_NO_REDIRECT}, {NULL, 0, 0, 0, EWIN_OP_INVALID} /* Terminator */ diff --git a/src/ewin-ops.h b/src/ewin-ops.h index 6b70e529..ae195c2a 100644 --- a/src/ewin-ops.h +++ b/src/ewin-ops.h @@ -71,6 +71,7 @@ typedef enum EWIN_OP_INH_USER_SIZE, EWIN_OP_INH_WM_FOCUS, + EWIN_OP_FADE, EWIN_OP_SHADOW, EWIN_OP_NO_REDIRECT, } winop_e; diff --git a/src/ipc.c b/src/ipc.c index f0ca3cf5..fe4c19a7 100644 --- a/src/ipc.c +++ b/src/ipc.c @@ -882,6 +882,12 @@ IpcWinop(const WinOp * wop, EWin * ewin, const char *prm) break; #if USE_COMPOSITE + case EWIN_OP_FADE: + on = EoGetFade(ewin); + if (SetEwinBoolean(wop->name, &on, param1, 1)) + EoSetFade(ewin, on); + break; + case EWIN_OP_SHADOW: on = EoGetShadow(ewin); if (SetEwinBoolean(wop->name, &on, param1, 1)) @@ -1134,7 +1140,7 @@ EwinShowInfo(const EWin * ewin) "State %i Shown %i Visibility %i Active %i\n" "Member of groups %i\n" #if USE_COMPOSITE - "Opacity %3i(%x) Shadow %i NoRedirect %i\n" + "Opacity %3i(%x) Shadow %i Fade %i NoRedirect %i\n" #else "Opacity %3i\n" #endif @@ -1180,7 +1186,8 @@ EwinShowInfo(const EWin * ewin) ewin->state.visibility, ewin->state.active, ewin->num_groups, OpacityToPercent(ewin->ewmh.opacity) #if USE_COMPOSITE - , EoGetOpacity(ewin), EoGetShadow(ewin), EoGetNoRedirect(ewin) + , EoGetOpacity(ewin), EoGetShadow(ewin), EoGetFade(ewin), + EoGetNoRedirect(ewin) #endif ); } @@ -1409,6 +1416,9 @@ static const IpcItem IPCArray[] = { " win_op title \n" " win_op <windowid> <close/kill>\n" " win_op <windowid> <focus/iconify/shade/stick>\n" +#if USE_COMPOSITE + " win_op <windowid> <fade/shadow>\n" +#endif " win_op <windowid> desk <desktochangeto/next/prev>\n" " win_op <windowid> area <x> <y>\n" " win_op <windowid> <move/size> <x> <y>\n" @@ -1426,7 +1436,6 @@ static const IpcItem IPCArray[] = { " win_op <windowid> <no_app_focus/move/size>\n" " win_op <windowid> <no_user_close/move/size>\n" " win_op <windowid> <no_wm_focus>\n" - " win_op <windowid> noshadow\n" "<windowid> may be substituted with \"current\" to use the current window\n"}, { IPC_WinList, diff --git a/src/windowmatch.c b/src/windowmatch.c index 61c0bf99..85206f7e 100644 --- a/src/windowmatch.c +++ b/src/windowmatch.c @@ -767,6 +767,10 @@ WindowMatchEwinOpsAction(EWin * ewin, int op, const char *args) break; #if USE_COMPOSITE + case EWIN_OP_FADE: + WINOP_SET_BOOL(ewin->o.fade, args); + break; + case EWIN_OP_SHADOW: WINOP_SET_BOOL(ewin->o.shadow, args); break;