| Home · All Namespaces · All Classes |
#include <homewindowmonitor.h>


Public Member Functions | |
| HomeWindowMonitor () | |
| virtual | ~HomeWindowMonitor () |
| virtual bool | isOwnWindow (WId wid) const |
| REIMPLEMENTATION | |
| virtual bool | handleXEvent (const XEvent &event) |
A window monitor implementation to be used with the home screen application.
Definition at line 31 of file homewindowmonitor.h.
| HomeWindowMonitor::HomeWindowMonitor | ( | ) |
Constructor.
Definition at line 25 of file homewindowmonitor.cpp.
:
nonFullscreenApplicationWindowTypes(QSet<Atom>() << WindowInfo::NotificationAtom <<
WindowInfo::DialogAtom <<
WindowInfo::MenuAtom),
netClientListStacking(X11Wrapper::XInternAtom(QX11Info::display(), "_NET_CLIENT_LIST_STACKING", False))
{
}
| HomeWindowMonitor::~HomeWindowMonitor | ( | ) | [virtual] |
| bool HomeWindowMonitor::handleXEvent | ( | const XEvent & | event | ) | [virtual] |
A handler method for X events. Return true if the event got handled and false if not.
| event | the X event |
true if the event got handled Implements XEventListener.
Definition at line 48 of file homewindowmonitor.cpp.
{
bool eventHandled = false;
if (event.type == PropertyNotify && event.xproperty.atom == netClientListStacking && event.xproperty.window == DefaultRootWindow(QX11Info::display())) {
int numWindowStackingOrderReceivers = receivers(SIGNAL(windowStackingOrderChanged(QList<WindowInfo>)));
int numFullscreenWindowReceivers = receivers(SIGNAL(fullscreenWindowOnTopOfOwnWindow()));
if (numWindowStackingOrderReceivers + numFullscreenWindowReceivers > 0) {
QList<Window> windowOrder = windowStackingOrder();
if (numWindowStackingOrderReceivers > 0) {
QList<WindowInfo> windowStackingList;
foreach (Window window, windowOrder) {
windowStackingList.append(WindowInfo(window));
}
emit windowStackingOrderChanged(windowStackingList);
}
if (numFullscreenWindowReceivers > 0) {
if (!windowOrder.isEmpty()) {
QListIterator<Window> iter(windowOrder);
iter.toBack();
while (iter.hasPrevious()) {
WindowInfo windowInfo(iter.previous());
if (windowInfo.types().toSet().intersect(nonFullscreenApplicationWindowTypes).isEmpty()) {
if (!isOwnWindow(windowInfo.window())) {
emit fullscreenWindowOnTopOfOwnWindow();
}
break;
}
}
}
}
}
eventHandled = true;
}
return eventHandled;
}

| bool HomeWindowMonitor::isOwnWindow | ( | WId | wid | ) | const [virtual] |
REIMPLEMENTATION
Definition at line 37 of file homewindowmonitor.cpp.
{
foreach (MWindow *window, MApplication::windows()) {
if (window->winId() == wid) {
return true;
}
}
return false;
}
| Copyright © 2010 Nokia Corporation | Generated on Thu Nov 4 2010 18:20:42 Doxygen 1.7.1 |
MeeGo Touch |