[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/3.5
From: Dirk Mueller <mueller () kde ! org>
Date: 2006-09-30 13:33:07
Message-ID: 1159623187.136158.32751.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 590563 by mueller:
make viewport a two-dimensional information
M +20 -11 kdebase/kicker/applets/minipager/pagerapplet.cpp
M +1 -1 kdebase/kicker/applets/minipager/pagerapplet.h
M +5 -3 kdebase/kicker/applets/minipager/pagerbutton.cpp
M +3 -1 kdebase/kicker/applets/minipager/pagerbutton.h
M +14 -8 kdelibs/kdecore/kwinmodule.cpp
M +12 -5 kdelibs/kdecore/kwinmodule.h
--- branches/KDE/3.5/kdebase/kicker/applets/minipager/pagerapplet.cpp #590562:590563
@@ -123,12 +123,14 @@
desktopLayoutX = -1;
desktopLayoutY = -1;
- m_useViewports = m_kwin->numberOfViewports(m_kwin->currentDesktop()) > 1;
+ QSize s(m_kwin->numberOfViewports(m_kwin->currentDesktop()));
+ m_useViewports = s.width() + s.height() > 1;
drawButtons();
connect( m_kwin, SIGNAL( currentDesktopChanged(int)), SLOT( slotSetDesktop(int) \
) );
- connect( m_kwin, SIGNAL( currentDesktopViewportChanged(int, int)), \
SLOT(slotSetDesktopViewport(int, int))); + connect( m_kwin, SIGNAL( \
currentDesktopViewportChanged(int, const QPoint&)), + \
SLOT(slotSetDesktopViewport(int, const QPoint&)));
connect( m_kwin, SIGNAL( numberOfDesktopsChanged(int)), SLOT( \
slotSetDesktopCount(int) ) );
connect( m_kwin, SIGNAL( activeWindowChanged(WId)), SLOT( \
slotActiveWindowChanged(WId) ) );
connect( m_kwin, SIGNAL( windowAdded(WId) ), this, SLOT( slotWindowAdded(WId) ) \
); @@ -211,16 +213,17 @@
}
}
-void KMiniPager::slotSetDesktopViewport(int desktop, int viewport)
+void KMiniPager::slotSetDesktopViewport(int desktop, const QPoint& viewport)
{
// ###
Q_UNUSED(desktop);
- slotSetDesktop(viewport);
+ QSize s(m_kwin->numberOfViewports(m_kwin->currentDesktop()));
+ slotSetDesktop((viewport.y()-1) * s.width() + viewport.x() );
}
void KMiniPager::slotButtonSelected( int desk )
{
- if (m_kwin->numberOfViewports(0) > 1)
+ if (m_kwin->numberOfViewports(0).width()+m_kwin->numberOfViewports(0).height() > \
1) {
QPoint p;
@@ -242,7 +245,8 @@
return width();
}
- int deskNum = m_kwin->numberOfDesktops() * m_kwin->numberOfViewports(0);
+ int deskNum = m_kwin->numberOfDesktops() * m_kwin->numberOfViewports(0).width()
+ * m_kwin->numberOfViewports(0).height();
int rowNum = m_settings->numberOfRows();
if (rowNum == 0)
@@ -297,7 +301,8 @@
return height();
}
- int deskNum = m_kwin->numberOfDesktops() * m_kwin->numberOfViewports(0);
+ int deskNum = m_kwin->numberOfDesktops() * m_kwin->numberOfViewports(0).width()
+ * m_kwin->numberOfViewports(0).height();
int rowNum = m_settings->numberOfRows(); // actually these are columns now... oh \
well. if (rowNum == 0)
{
@@ -429,7 +434,9 @@
void KMiniPager::wheelEvent( QWheelEvent* e )
{
int newDesk;
- int desktops = m_useViewports ? m_kwin->numberOfViewports(0) : \
KWin::numberOfDesktops(); + int desktops = KWin::numberOfDesktops();
+ if (m_kwin->numberOfViewports(0).width() + m_kwin->numberOfViewports(0).height() \
> 1 ) + desktops = m_kwin->numberOfViewports(0).width() * \
> m_kwin->numberOfViewports(0).height();
if (e->delta() < 0)
{
newDesk = m_curDesk % desktops + 1;
@@ -450,10 +457,12 @@
int count = 1;
for ( int i = 1; i <= deskNum; ++i )
{
- int viewportNum = m_kwin->numberOfViewports(i);
- for (int j = 1; j <= viewportNum; ++j)
+ QSize viewportNum = m_kwin->numberOfViewports(i);
+ for (int j = 1; j <= viewportNum.width() * viewportNum.height(); ++j)
{
- desk = new KMiniPagerButton( count, m_useViewports, this );
+ QSize s(m_kwin->numberOfViewports(m_kwin->currentDesktop()));
+ QPoint viewport( (j-1) % s.width(), (j-1) / s.width());
+ desk = new KMiniPagerButton( count, m_useViewports, viewport, this );
if ( m_settings->labelType() != PagerSettings::EnumLabelType::LabelName \
) {
QToolTip::add( desk, desk->desktopName() );
--- branches/KDE/3.5/kdebase/kicker/applets/minipager/pagerapplet.h #590562:590563
@@ -84,7 +84,7 @@
public slots:
void slotSetDesktop(int desktop);
- void slotSetDesktopViewport(int desktop, int viewport);
+ void slotSetDesktopViewport(int desktop, const QPoint& viewport);
void slotSetDesktopCount(int count);
void slotButtonSelected(int desk );
void slotActiveWindowChanged( WId win );
--- branches/KDE/3.5/kdebase/kicker/applets/minipager/pagerbutton.cpp #590562:590563
@@ -58,11 +58,13 @@
KSharedPixmap* KMiniPagerButton::s_commonSharedPixmap;
KPixmap* KMiniPagerButton::s_commonBgPixmap;
-KMiniPagerButton::KMiniPagerButton(int desk, bool useViewPorts, KMiniPager *parent, \
const char *name) +KMiniPagerButton::KMiniPagerButton(int desk, bool useViewPorts, \
const QPoint& viewport, + KMiniPager *parent, const char *name)
: QButton(parent, name, WRepaintNoErase),
m_pager(parent),
m_desktop(desk),
m_useViewports(useViewPorts),
+ m_viewport(viewport),
m_lineEdit(0),
m_sharedPixmap(0),
m_bgPixmap(0),
@@ -116,8 +118,8 @@
if (m_useViewports) {
QPoint windowSpot = info->frameGeometry().topLeft();
- windowSpot += QPoint((m_desktop - m_pager->kwin()->currentViewport(1)) *
- QApplication::desktop()->screenGeometry().width(), 0);
+ windowSpot += QPoint((m_desktop - m_pager->kwin()->currentViewport(0).x()) *
+ QApplication::desktop()->width(), 0);
if (!QApplication::desktop()->screenGeometry().contains(windowSpot))
return false;
--- branches/KDE/3.5/kdebase/kicker/applets/minipager/pagerbutton.h #590562:590563
@@ -39,7 +39,8 @@
{
Q_OBJECT
public:
- KMiniPagerButton(int desk, bool useViewports, KMiniPager *parent=0, const char \
*name=0); + KMiniPagerButton(int desk, bool useViewports, const QPoint& viewport,
+ KMiniPager *parent=0, const char *name=0);
~KMiniPagerButton();
int desktop() { return m_desktop; }
@@ -86,6 +87,7 @@
int m_desktop;
bool m_useViewports;
QString m_desktopName;
+ QPoint m_viewport;
QTimer m_updateCompressor;
QTimer m_dragSwitchTimer;
--- branches/KDE/3.5/kdelibs/kdecore/kwinmodule.cpp #590562:590563
@@ -109,8 +109,8 @@
void updateStackingOrder();
bool removeStrutWindow( WId );
- int numberOfViewports(int desktop) const;
- int currentViewport(int desktop) const;
+ QSize numberOfViewports(int desktop) const;
+ QPoint currentViewport(int desktop) const;
};
KWinModule::KWinModule( QObject* parent )
@@ -180,18 +180,20 @@
return d->systemTrayWindows;
}
-int KWinModulePrivate::numberOfViewports(int desktop) const
+QSize KWinModulePrivate::numberOfViewports(int desktop) const
{
NETSize netdesktop = desktopGeometry(desktop);
- return netdesktop.width / QApplication::desktop()->screenGeometry().width();
+ return QSize(netdesktop.width / QApplication::desktop()->width(),
+ netdesktop.height / QApplication::desktop()->height());
}
-int KWinModulePrivate::currentViewport(int desktop) const
+QPoint KWinModulePrivate::currentViewport(int desktop) const
{
NETPoint netviewport = desktopViewport(desktop);
- return 1+(netviewport.x / QApplication::desktop()->screenGeometry().width());
+ return QPoint(1+(netviewport.x / QApplication::desktop()->width()),
+ 1+(netviewport.y / QApplication::desktop()->height()));
}
bool KWinModulePrivate::x11Event( XEvent * ev )
@@ -215,6 +217,10 @@
emit (*mit)->currentDesktopViewportChanged(currentDesktop(),
currentViewport(currentDesktop()));
}
+ if ( m[ PROTOCOLS ] & DesktopGeometry ) {
+ for ( QPtrListIterator<KWinModule> mit( modules ); mit.current(); ++mit )
+ emit (*mit)->desktopGeometryChanged(currentDesktop());
+ }
if ( m[ PROTOCOLS ] & DesktopNames )
for ( QPtrListIterator<KWinModule> mit( modules ); mit.current(); ++mit )
emit (*mit)->desktopNamesChanged();
@@ -348,12 +354,12 @@
return d->numberOfDesktops();
}
-int KWinModule::numberOfViewports(int desktop) const
+QSize KWinModule::numberOfViewports(int desktop) const
{
return d->numberOfViewports(desktop);
}
-int KWinModule::currentViewport(int desktop) const
+QPoint KWinModule::currentViewport(int desktop) const
{
return d->currentViewport(desktop);
}
--- branches/KDE/3.5/kdelibs/kdecore/kwinmodule.h #590562:590563
@@ -152,18 +152,19 @@
int numberOfDesktops() const;
/**
- * Returns the number of viewports on the virtual desktop
+ * Returns the number of viewports in x and y direction
+ * on the virtual desktop.
* @return the number of virtual desktops
* @since 3.5.5
**/
- int numberOfViewports(int desktop) const;
+ QSize numberOfViewports(int desktop) const;
/**
- * Returns the number of viewports on the virtual desktop
+ * Returns the current viewport on the given virtual desktop
* @return the number of virtual desktops
* @since 3.5.5
**/
- int currentViewport(int desktop) const;
+ QPoint currentViewport(int desktop) const;
/**
* Returns the currently active window, or 0 if no window is active.
@@ -330,10 +331,16 @@
void showingDesktopChanged( bool showing );
/**
+ * The state of showing the desktop has changed.
+ * @since 3.5.5
+ */
+ void desktopGeometryChanged(int desktop);
+
+ /**
* The viewport position has changed
* @since 3.5
*/
- void currentDesktopViewportChanged(int desktop, int viewport);
+ void currentDesktopViewportChanged(int desktop, const QPoint& viewport);
protected:
virtual void connectNotify( const char* signal );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic