summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Grenville <pyxlcy@gmail.com>2014-11-30 15:39:07 +0800
committerSlávek Banko <slavek.banko@axis.cz>2015-01-24 16:19:43 +0100
commit7034296d83ef1a328f5e90ea65c0d77453b6a707 (patch)
tree5085598b107807aa21ef8e0fb6ceece0fa126788
parenta5535fa1eff0c2266d646accc6d19a9c8c0a6eb9 (diff)
downloadtdebase-7034296d83ef1a328f5e90ea65c0d77453b6a707.tar.gz
tdebase-7034296d83ef1a328f5e90ea65c0d77453b6a707.zip
Bug fix: --no-fading-openclose doesn't work when fading out
- Fix the bug that --no-fading-openclose doesn not work when fading out by writing w->fade_last as well in win_determine_fade(). - Write w->fade_last for applying w->fade_force, as well. (cherry picked from commit 2dff937b31aa3753dca28fdda741be5d1da25088)
-rw-r--r--twin/compton-tde/compton.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/twin/compton-tde/compton.c b/twin/compton-tde/compton.c
index ad310538b..30537b786 100644
--- a/twin/compton-tde/compton.c
+++ b/twin/compton-tde/compton.c
@@ -3009,32 +3009,32 @@ calc_dim(session_t *ps, win *w) {
*/
static void
win_determine_fade(session_t *ps, win *w) {
+ // To prevent it from being overwritten by last-paint value if the window is
+ // unmapped on next frame, write w->fade_last as well
if (UNSET != w->fade_force) {
#ifdef DEBUG_FADE
printf_dbgf("(%#010lx): fade forced\n", w->id);
#endif
- w->fade = w->fade_force;
+ w->fade_last = w->fade = w->fade_force;
}
else if (ps->o.no_fading_openclose && (w->in_openclose || w->destroyed)) {
#ifdef DEBUG_FADE
printf_dbgf("(): no_fading_openclose and in_openclose\n");
#endif
- w->fade = false;
+ w->fade_last = w->fade = false;
}
else if (ps->o.no_fading_opacitychange && (!w->in_openclose)) {
#ifdef DEBUG_FADE
printf_dbgf("(): no_fading_opacitychange and !in_openclose\n");
#endif
- w->fade = false;
+ w->fade_last = w->fade = false;
}
else if (ps->o.no_fading_destroyed_argb && w->destroyed
&& WMODE_ARGB == w->mode && w->client_win && w->client_win != w->id) {
#ifdef DEBUG_FADE
printf_dbgf("(): no_fading_destroyed_argb\n");
#endif
- w->fade = false;
- // Prevent it from being overwritten by last-paint value
- w->fade_last = false;
+ w->fade_last = w->fade = false;
}
// Ignore other possible causes of fading state changes after window
// gets unmapped