Make it possible to move windows across screens in desktop grid.

BUG: 213845

svn path=/trunk/KDE/kdebase/workspace/; revision=1051265
remotes/origin/Plasma/5.0
Martin Gräßlin 17 years ago
parent 84e7363aa0
commit 2ff73028a0
  1. 7
      effects.cpp
  2. 1
      effects.h
  3. 3
      effects/desktopgrid/desktopgrid.cpp
  4. 3
      lib/kwineffects.h

@ -458,6 +458,13 @@ void EffectsHandlerImpl::windowToDesktop( EffectWindow* w, int desktop )
Workspace::self()->sendClientToDesktop( cl, desktop, true );
}
void EffectsHandlerImpl::windowToScreen( EffectWindow* w, int screen )
{
Client* cl = dynamic_cast< Client* >( static_cast<EffectWindowImpl*>(w)->window());
if( cl && !cl->isDesktop() && !cl->isDock() && !cl->isTopMenu())
Workspace::self()->sendClientToScreen( cl, screen );
}
void EffectsHandlerImpl::setShowingDesktop( bool showing )
{
Workspace::self()->setShowingDesktop( showing );

@ -55,6 +55,7 @@ class EffectsHandlerImpl : public EffectsHandler
virtual EffectWindow* activeWindow() const;
virtual void moveWindow( EffectWindow* w, const QPoint& pos, bool snap = false, double snapAdjust = 1.0 );
virtual void windowToDesktop( EffectWindow* w, int desktop );
virtual void windowToScreen( EffectWindow* w, int screen );
virtual void setShowingDesktop( bool showing );
virtual int currentDesktop() const;

@ -451,6 +451,9 @@ void DesktopGridEffect::windowInputMouseEvent( Window, QEvent* e )
if( d != highlightedDesktop && !windowMove->isOnAllDesktops() )
{
effects->windowToDesktop( windowMove, d ); // Not true all desktop move
const int screen = effects->screenNumber( me->pos() );
if( screen != windowMove->screen() )
effects->windowToScreen( windowMove, screen );
}
effects->addRepaintFull();
}

@ -170,7 +170,7 @@ X-KDE-Library=kwin4_effect_cooleffect
#define KWIN_EFFECT_API_MAKE_VERSION( major, minor ) (( major ) << 8 | ( minor ))
#define KWIN_EFFECT_API_VERSION_MAJOR 0
#define KWIN_EFFECT_API_VERSION_MINOR 107
#define KWIN_EFFECT_API_VERSION_MINOR 108
#define KWIN_EFFECT_API_VERSION KWIN_EFFECT_API_MAKE_VERSION( \
KWIN_EFFECT_API_VERSION_MAJOR, KWIN_EFFECT_API_VERSION_MINOR )
@ -563,6 +563,7 @@ class KWIN_EXPORT EffectsHandler
virtual EffectWindow* activeWindow() const = 0 ;
virtual void moveWindow( EffectWindow* w, const QPoint& pos, bool snap = false, double snapAdjust = 1.0 ) = 0;
virtual void windowToDesktop( EffectWindow* w, int desktop ) = 0;
virtual void windowToScreen( EffectWindow* w, int desktop ) = 0;
virtual void setShowingDesktop( bool showing ) = 0;
// Desktops

Loading…
Cancel
Save