[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/plasma/desktop/applets/pager
From: Chani Armitage <chanika () gmail ! com>
Date: 2010-11-11 15:00:16
Message-ID: 20101111150016.C388EAC89E () svn ! kde ! org
[Download RAW message or body]
SVN commit 1195583 by chani:
only show current activity's windows
M +2 -0 CMakeLists.txt
M +29 -4 pager.cpp
M +3 -1 pager.h
--- trunk/KDE/kdebase/workspace/plasma/desktop/applets/pager/CMakeLists.txt \
#1195582:1195583 @@ -2,6 +2,7 @@
include_directories(
${KDEBASE_WORKSPACE_SOURCE_DIR}/libs/kephal)
+include_directories(${KDEBASE_WORKSPACE_SOURCE_DIR}/libs/kworkspace)
set(pager_SRCS
pager.cpp)
@@ -9,6 +10,7 @@
kde4_add_ui_files(pager_SRCS pagerConfig.ui )
kde4_add_plugin(plasma_applet_pager ${pager_SRCS})
target_link_libraries(plasma_applet_pager ${KDE4_KIO_LIBS} ${KDE4_PLASMA_LIBS} \
${KDE4_KCMUTILS_LIBRARY} kephal taskmanager) \
+target_link_libraries(plasma_applet_pager kworkspace)
install(TARGETS plasma_applet_pager DESTINATION ${PLUGIN_INSTALL_DIR})
install(FILES plasma-pager-default.desktop DESTINATION ${SERVICES_INSTALL_DIR})
--- trunk/KDE/kdebase/workspace/plasma/desktop/applets/pager/pager.cpp \
#1195582:1195583 @@ -49,6 +49,7 @@
#include <Plasma/Animator>
#include <kephal/screens.h>
+#include <kactivityconsumer.h>
#include <taskmanager/task.h>
@@ -150,7 +151,7 @@
connect(KWindowSystem::self(), SIGNAL(numberOfDesktopsChanged(int)), this, \
SLOT(numberOfDesktopsChanged(int)));
connect(KWindowSystem::self(), SIGNAL(desktopNamesChanged()), this, \
SLOT(desktopNamesChanged()));
connect(KWindowSystem::self(), SIGNAL(stackingOrderChanged()), this, \
SLOT(stackingOrderChanged()));
- connect(KWindowSystem::self(), SIGNAL(windowChanged(WId,unsigned int)), this, \
SLOT(windowChanged(WId,unsigned int))); + connect(KWindowSystem::self(), \
SIGNAL(windowChanged(WId,unsigned long*)), this, SLOT(windowChanged(WId,unsigned \
long*)));
connect(KWindowSystem::self(), SIGNAL(showingDesktopChanged(bool)), this, \
SLOT(showingDesktopChanged(bool)));
connect(Kephal::Screens::self(), SIGNAL(screenAdded(Kephal::Screen *)), \
SLOT(desktopsSizeChanged()));
connect(Kephal::Screens::self(), SIGNAL(screenRemoved(int)), \
SLOT(desktopsSizeChanged())); @@ -168,6 +169,10 @@
recalculateGridSizes(m_rows);
m_currentDesktop = KWindowSystem::currentDesktop();
+
+ KActivityConsumer *act = new KActivityConsumer(this);
+ connect(act, SIGNAL(currentActivityChanged(QString)), this, \
SLOT(currentActivityChanged(QString))); + m_currentActivity = \
act->currentActivity(); }
void Pager::configChanged()
@@ -574,6 +579,17 @@
continue;
}
+ //check activity
+ unsigned long properties[] = { 0, NET::WM2Activities };
+ NETWinInfo netInfo(QX11Info::display(), window, QX11Info::appRootWindow(), \
properties, 2); + QString result(netInfo.activities());
+ if (!result.isEmpty()) {
+ QStringList activities = result.split(',');
+ if (!activities.contains(m_currentActivity)) {
+ continue;
+ }
+ }
+
for (int i = 0; i < m_desktopCount; i++) {
if (!info.isOnDesktop(i+1)) {
continue;
@@ -663,6 +679,15 @@
}
}
+void Pager::currentActivityChanged(const QString &activity)
+{
+ m_currentActivity = activity;
+
+ if (!m_timer->isActive()) {
+ m_timer->start(FAST_UPDATE_DELAY);
+ }
+}
+
void Pager::windowAdded(WId id)
{
Q_UNUSED(id)
@@ -725,12 +750,12 @@
}
}
-void Pager::windowChanged(WId id, unsigned int properties)
+void Pager::windowChanged(WId id, unsigned long* dirty)
{
Q_UNUSED(id)
- if (properties & NET::WMGeometry ||
- properties & NET::WMDesktop) {
+ if (dirty[NETWinInfo::PROTOCOLS] & (NET::WMGeometry | NET::WMDesktop) ||
+ dirty[NETWinInfo::PROTOCOLS2] & NET::WM2Activities) {
if (!m_timer->isActive()) {
m_timer->start(UPDATE_DELAY);
}
--- trunk/KDE/kdebase/workspace/plasma/desktop/applets/pager/pager.h #1195582:1195583
@@ -95,6 +95,7 @@
void configAccepted();
void currentDesktopChanged(int desktop);
+ void currentActivityChanged(const QString &activity);
void desktopsSizeChanged();
void windowAdded(WId id);
void windowRemoved(WId id);
@@ -102,7 +103,7 @@
void numberOfDesktopsChanged(int num);
void desktopNamesChanged();
void stackingOrderChanged();
- void windowChanged(WId id, unsigned int properties);
+ void windowChanged(WId id, unsigned long *dirty);
void showingDesktopChanged(bool showing);
#ifdef Q_WS_X11
void slotAddDesktop();
@@ -145,6 +146,7 @@
int m_columns;
int m_desktopCount;
int m_currentDesktop;
+ QString m_currentActivity;
bool m_desktopDown;
qreal m_widthScaleFactor;
qreal m_heightScaleFactor;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic