Commit message

Description of the change

Fix LP #881190 and a condition that could happen after: #918360 due to
a incorrect refcounting.

The transient for reader would report every window as a "transient" if it
matched the w->transientFor () definition on the window - at destruction time
this will be zero, so it will match every single window. That would cause
all windows to be unminimized.

However, it makes no sense to do the unminimize/minimize normally dance when
the window has been destroyed.

Additionaly, there was a cyclic reference in CompizMinimizedWindowHandler,
which would cause those objects to never be destroyed. A condition could
happen where CompizMinimizedWindowHandler could loop its own list and dereference
a CompWindow that was gone.

Unmerged revisions

Fix LP #881190 and a condition that could happen after: #918360 due to
a incorrect refcounting.

The transient for reader would report every window as a "transient" if it
matched the w->transientFor () definition on the window - at destruction time
this will be zero, so it will match every single window. That would cause
all windows to be unminimized.

However, it makes no sense to do the unminimize/minimize normally dance when
the window has been destroyed.

Additionaly, there was a cyclic reference in CompizMinimizedWindowHandler,
which would cause those objects to never be destroyed. A condition could
happen where CompizMinimizedWindowHandler could loop its own list and dereference
a CompWindow that was gone.