summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKimmo Hämäläinen <kimmo.hamalainen@nokia.com>2010-10-05 12:57:30 +0300
committerKimmo Hämäläinen <kimmo.hamalainen@nokia.com>2010-10-05 13:00:22 +0300
commit041a4cc2a0c04216269461897adbcc1137f60455 (patch)
treefb0df473355a6695d455b186555fbe4435ea6d9b
parent0b094b46850e28e673254b0852c58667eb7aa2d9 (diff)
Fixes: NB#196194 - MCOMPOSITOR titlebar misalignment causes Toast to be unusable
- disable unfinished/incomplete/untested/unmaintained decoratorless code
-rw-r--r--src/mcompositemanager.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/mcompositemanager.cpp b/src/mcompositemanager.cpp
index 555175b..7d8d967 100644
--- a/src/mcompositemanager.cpp
+++ b/src/mcompositemanager.cpp
@@ -1507,6 +1507,11 @@ void MCompositeManagerPrivate::mapRequestEvent(XMapRequestEvent *e)
}
pc->setBeingMapped(true);
+ const XWMHints &h = pc->getWMHints();
+ if ((h.flags & StateHint) && (h.initial_state == IconicState))
+ setWindowState(e->window, IconicState);
+ else
+ setWindowState(e->window, NormalState);
if (needDecoration(e->window, pc)) {
if (MDecoratorFrame::instance()->decoratorItem()) {
enableCompositing();
@@ -1515,6 +1520,8 @@ void MCompositeManagerPrivate::mapRequestEvent(XMapRequestEvent *e)
// checks won't disable compositing
MDecoratorFrame::instance()->decoratorItem()->setVisible(true);
} else {
+#if 0 /* FIXME/TODO: this does NOT work when mdecorator starts after the first
+ decorated window is shown. See NB#196194 */
// it will be non-toplevel, so mask needs to be set here
XSelectInput(dpy, e->window,
StructureNotifyMask | ColormapChangeMask |
@@ -1555,20 +1562,17 @@ void MCompositeManagerPrivate::mapRequestEvent(XMapRequestEvent *e)
XReparentWindow(QX11Info::display(), e->window,
frame->windowArea(), 0, 0);
- setWindowState(e->window, NormalState);
MapRequesterPrivate::instance()->requestMap(pc);
frame->show();
XSync(QX11Info::display(), False);
+#else
+ MapRequesterPrivate::instance()->requestMap(pc);
+ qWarning("%s: mdecorator hasn't started yet", __func__);
+#endif
}
- } else {
- const XWMHints &h = pc->getWMHints();
- if ((h.flags & StateHint) && (h.initial_state == IconicState))
- setWindowState(e->window, IconicState);
- else
- setWindowState(e->window, NormalState);
+ } else
MapRequesterPrivate::instance()->requestMap(pc);
- }
}
/* recursion is needed to handle transients that are transient for other