Commit feafbca9 authored by Thomas Lübking's avatar Thomas Lübking

Merge branch 'KDE/4.11'

parents cf6d6e05 05bc5bfc
......@@ -34,7 +34,7 @@ function isLoginWindow(w) {
var fadeInTime, fadeOutTime, fadeWindows;
function loadConfig() {
fadeInTime = animationTime(effect.readConfig("FadeInTime", 150));
fadeOutTime = animationTime(effect.readConfig("FadeOutTime", 150));
fadeOutTime = animationTime(effect.readConfig("FadeOutTime", 600));
fadeWindows = effect.readConfig("FadeWindows", true);
}
loadConfig();
......@@ -48,6 +48,6 @@ effects.windowAdded.connect(function(w) {
});
effects.windowClosed.connect(function(w) {
if (fadeWindows && isFadeWindow(w)) {
effect.animate(w, Effect.Opacity, fadeOutTime, 0.0);
effect.animate(w, Effect.Opacity, fadeOutTime, 0.0, "", QEasingCurve.OutQuart);
}
});
......@@ -2364,11 +2364,10 @@ bool Client::isFullScreenable(bool fullscreen_hack) const
return false;
if (fullscreen_hack)
return isNormalWindow();
if (rules()->checkStrictGeometry(false)) {
// the app wouldn't fit exactly fullscreen geometry due to its strict geometry requirements
if (rules()->checkStrictGeometry(true)) { // allow rule to ignore geometry constraints
QRect fsarea = workspace()->clientArea(FullScreenArea, this);
if (sizeForClientSize(fsarea.size(), SizemodeAny, true) != fsarea.size())
return false;
return false; // the app wouldn't fit exactly fullscreen geometry due to its strict geometry requirements
}
// don't check size constrains - some apps request fullscreen despite requesting fixed size
return !isSpecialWindow(); // also better disallow only weird types to go fullscreen
......@@ -2380,9 +2379,7 @@ bool Client::userCanSetFullScreen() const
return false;
if (!isFullScreenable(false))
return false;
// isMaximizable() returns false if fullscreen
TemporaryAssign< FullScreenMode > tmp(fullscreen_mode, FullScreenNone);
return isNormalWindow() && isMaximizable();
return isNormalWindow() || isDialog();
}
void Client::setFullScreen(bool set, bool user)
......
......@@ -450,7 +450,7 @@ void Workspace::restack(Client* c, Client* under)
// put in the stacking order below _all_ windows belonging to the active application
for (int i = 0; i < unconstrained_stacking_order.size(); ++i) {
Client *other = qobject_cast<Client*>(unconstrained_stacking_order.at(i));
if (other && Client::belongToSameApplication(under, other)) {
if (other && other->layer() == c->layer() && Client::belongToSameApplication(under, other)) {
under = (c == other) ? 0 : other;
break;
}
......@@ -468,7 +468,7 @@ void Workspace::restack(Client* c, Client* under)
void Workspace::restackClientUnderActive(Client* c)
{
if (!active_client || active_client == c) {
if (!active_client || active_client == c || active_client->layer() != c->layer()) {
raiseClient(c);
return;
}
......
......@@ -569,7 +569,7 @@ bool Client::manage(xcb_window_t w, bool isMapped)
}
} else if (allow) {
// also force if activation is allowed
if (!isOnCurrentDesktop()) {
if (!isOnCurrentDesktop() && options->focusPolicyIsReasonable()) {
VirtualDesktopManager::self()->setCurrent(desktop());
}
/*if (!isOnCurrentActivity()) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment