WindowMinimized becomes a signal
This commit is contained in:
parent
edd0950f96
commit
012222037e
10 changed files with 23 additions and 15 deletions
|
@ -898,8 +898,8 @@ void Client::minimize(bool avoid_animation)
|
|||
workspace()->updateMinimizedOfTransients(this);
|
||||
updateWindowRules();
|
||||
workspace()->updateFocusChains(this, Workspace::FocusChainMakeLast);
|
||||
if (effects && !avoid_animation) // TODO: Shouldn't it tell effects at least about the change?
|
||||
static_cast<EffectsHandlerImpl*>(effects)->windowMinimized(effectWindow());
|
||||
// TODO: merge signal with s_minimized
|
||||
emit clientMinimized(this, !avoid_animation);
|
||||
|
||||
// when tiling, request a rearrangement
|
||||
workspace()->notifyTilingWindowMinimizeToggled(this);
|
||||
|
|
1
client.h
1
client.h
|
@ -496,6 +496,7 @@ signals:
|
|||
void s_fullScreenSet(bool, bool);
|
||||
void clientClosed(KWin::Client*);
|
||||
void clientMaximizedStateChanged(KWin::Client*, KDecorationDefines::MaximizeMode);
|
||||
void clientMinimized(KWin::Client* client, bool animate);
|
||||
|
||||
// To make workspace-client calls, a few slots are also
|
||||
// required
|
||||
|
|
10
effects.cpp
10
effects.cpp
|
@ -106,6 +106,7 @@ EffectsHandlerImpl::EffectsHandlerImpl(CompositingType type)
|
|||
connect(c, SIGNAL(clientClosed(KWin::Client*)), this, SLOT(slotClientClosed(KWin::Client*)));
|
||||
connect(c, SIGNAL(clientMaximizedStateChanged(KWin::Client*,KDecorationDefines::MaximizeMode)), this, SLOT(slotClientMaximized(KWin::Client*,KDecorationDefines::MaximizeMode)));
|
||||
connect(c, SIGNAL(opacityChanged(KWin::Toplevel*,qreal)), this, SLOT(slotOpacityChanged(KWin::Toplevel*,qreal)));
|
||||
connect(c, SIGNAL(clientMinimized(KWin::Client*,bool)), this, SLOT(slotClientMinimized(KWin::Client*,bool)));
|
||||
}
|
||||
foreach (Unmanaged *u, ws->unmanagedList()) {
|
||||
connect(u, SIGNAL(unmanagedClosed(KWin::Unmanaged*)), this, SLOT(slotUnmanagedClosed(KWin::Unmanaged*)));
|
||||
|
@ -302,6 +303,7 @@ void EffectsHandlerImpl::slotClientAdded(Client *c)
|
|||
connect(c, SIGNAL(clientClosed(KWin::Client*)), this, SLOT(slotClientClosed(KWin::Client*)));
|
||||
connect(c, SIGNAL(clientMaximizedStateChanged(KWin::Client*,KDecorationDefines::MaximizeMode)), this, SLOT(slotClientMaximized(KWin::Client*,KDecorationDefines::MaximizeMode)));
|
||||
connect(c, SIGNAL(opacityChanged(KWin::Toplevel*,qreal)), this, SLOT(slotOpacityChanged(KWin::Toplevel*,qreal)));
|
||||
connect(c, SIGNAL(clientMinimized(KWin::Client*,bool)), this, SLOT(slotClientMinimized(KWin::Client*,bool)));
|
||||
emit windowAdded(c->effectWindow());
|
||||
}
|
||||
|
||||
|
@ -333,10 +335,12 @@ void EffectsHandlerImpl::slotClientActivated(KWin::Client *c)
|
|||
emit windowActivated(c ? c->effectWindow() : NULL);
|
||||
}
|
||||
|
||||
void EffectsHandlerImpl::windowMinimized(EffectWindow* c)
|
||||
void EffectsHandlerImpl::slotClientMinimized(Client *c, bool animate)
|
||||
{
|
||||
foreach (const EffectPair & ep, loaded_effects)
|
||||
ep.second->windowMinimized(c);
|
||||
// TODO: notify effects even if it should not animate?
|
||||
if (animate) {
|
||||
emit windowMinimized(c->effectWindow());
|
||||
}
|
||||
}
|
||||
|
||||
void EffectsHandlerImpl::windowUnminimized(EffectWindow* c)
|
||||
|
|
|
@ -159,7 +159,6 @@ public:
|
|||
// internal (used by kwin core or compositing code)
|
||||
void startPaint();
|
||||
void windowMoveResizeGeometryUpdate(EffectWindow* c, const QRect& geometry);
|
||||
void windowMinimized(EffectWindow* c);
|
||||
void windowUnminimized(EffectWindow* c);
|
||||
void clientGroupItemSwitched(EffectWindow* from, EffectWindow* to);
|
||||
void clientGroupItemAdded(EffectWindow* from, EffectWindow* to);
|
||||
|
@ -202,6 +201,7 @@ protected Q_SLOTS:
|
|||
void slotDeletedRemoved(KWin::Deleted *d);
|
||||
void slotClientMaximized(KWin::Client *c, KDecorationDefines::MaximizeMode maxMode);
|
||||
void slotOpacityChanged(KWin::Toplevel *t, qreal oldOpacity);
|
||||
void slotClientMinimized(KWin::Client *c, bool animate);
|
||||
|
||||
protected:
|
||||
KLibrary* findEffectLibrary(KService* service);
|
||||
|
|
|
@ -35,6 +35,7 @@ MagicLampEffect::MagicLampEffect()
|
|||
mActiveAnimations = 0;
|
||||
reconfigure(ReconfigureAll);
|
||||
connect(effects, SIGNAL(windowDeleted(EffectWindow*)), this, SLOT(slotWindowDeleted(EffectWindow*)));
|
||||
connect(effects, SIGNAL(windowMinimized(EffectWindow*)), this, SLOT(slotWindowMinimized(EffectWindow*)));
|
||||
}
|
||||
|
||||
bool MagicLampEffect::supported()
|
||||
|
@ -327,7 +328,7 @@ void MagicLampEffect::slotWindowDeleted(EffectWindow* w)
|
|||
mTimeLineWindows.remove(w);
|
||||
}
|
||||
|
||||
void MagicLampEffect::windowMinimized(EffectWindow* w)
|
||||
void MagicLampEffect::slotWindowMinimized(EffectWindow* w)
|
||||
{
|
||||
if (effects->activeFullScreenEffect())
|
||||
return;
|
||||
|
|
|
@ -39,13 +39,13 @@ public:
|
|||
virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data);
|
||||
virtual void postPaintScreen();
|
||||
|
||||
virtual void windowMinimized(EffectWindow* c);
|
||||
virtual void windowUnminimized(EffectWindow* c);
|
||||
|
||||
static bool supported();
|
||||
|
||||
public Q_SLOTS:
|
||||
void slotWindowDeleted(EffectWindow *w);
|
||||
void slotWindowMinimized(EffectWindow *w);
|
||||
|
||||
private:
|
||||
QHash< EffectWindow*, TimeLine > mTimeLineWindows;
|
||||
|
|
|
@ -29,6 +29,7 @@ MinimizeAnimationEffect::MinimizeAnimationEffect()
|
|||
{
|
||||
mActiveAnimations = 0;
|
||||
connect(effects, SIGNAL(windowDeleted(EffectWindow*)), this, SLOT(slotWindowDeleted(EffectWindow*)));
|
||||
connect(effects, SIGNAL(windowMinimized(EffectWindow*)), this, SLOT(slotWindowMinimized(EffectWindow*)));
|
||||
}
|
||||
|
||||
|
||||
|
@ -114,7 +115,7 @@ void MinimizeAnimationEffect::slotWindowDeleted(EffectWindow* w)
|
|||
mTimeLineWindows.remove(w);
|
||||
}
|
||||
|
||||
void MinimizeAnimationEffect::windowMinimized(EffectWindow* w)
|
||||
void MinimizeAnimationEffect::slotWindowMinimized(EffectWindow* w)
|
||||
{
|
||||
if (effects->activeFullScreenEffect())
|
||||
return;
|
||||
|
|
|
@ -43,11 +43,11 @@ public:
|
|||
virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data);
|
||||
virtual void postPaintScreen();
|
||||
|
||||
virtual void windowMinimized(EffectWindow* c);
|
||||
virtual void windowUnminimized(EffectWindow* c);
|
||||
|
||||
public Q_SLOTS:
|
||||
void slotWindowDeleted(EffectWindow *w);
|
||||
void slotWindowMinimized(EffectWindow *w);
|
||||
|
||||
private:
|
||||
QHash< EffectWindow*, TimeLine > mTimeLineWindows;
|
||||
|
|
|
@ -123,10 +123,6 @@ void Effect::windowMoveResizeGeometryUpdate(EffectWindow* , const QRect&)
|
|||
{
|
||||
}
|
||||
|
||||
void Effect::windowMinimized(EffectWindow*)
|
||||
{
|
||||
}
|
||||
|
||||
void Effect::windowUnminimized(EffectWindow*)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -442,7 +442,6 @@ public:
|
|||
|
||||
/** called when the geometry changed during moving/resizing. */
|
||||
virtual void windowMoveResizeGeometryUpdate(EffectWindow* c, const QRect& geometry);
|
||||
virtual void windowMinimized(EffectWindow* c);
|
||||
virtual void windowUnminimized(EffectWindow* c);
|
||||
virtual void clientGroupItemSwitched(EffectWindow* from, EffectWindow* to);
|
||||
virtual void clientGroupItemAdded(EffectWindow* from, EffectWindow* to); // from merged with to
|
||||
|
@ -881,6 +880,12 @@ Q_SIGNALS:
|
|||
* @since 4.7
|
||||
**/
|
||||
void windowOpacityChanged(EffectWindow *w, qreal oldOpacity, qreal newOpacity);
|
||||
/**
|
||||
* Signal emitted when a window got minimized.
|
||||
* @param w The window which was minimized
|
||||
* @since 4.7
|
||||
**/
|
||||
void windowMinimized(EffectWindow *w);
|
||||
|
||||
protected:
|
||||
QVector< EffectPair > loaded_effects;
|
||||
|
|
Loading…
Reference in a new issue