[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kde-workspace/KDE/4.11] kwin: allow FS mapping of geometry restricted windows
From:       Thomas_Lübking <thomas.luebking () gmail ! com>
Date:       2014-07-09 16:04:41
Message-ID: E1X4uML-0004yf-3R () scm ! kde ! org
[Download RAW message or body]

Git commit 43229afee9fac4303e3d280ea63f96f034b3ffb5 by Thomas Lübking.
Committed on 05/06/2014 at 18:23.
Pushed by luebking into branch 'KDE/4.11'.

allow FS mapping of geometry restricted windows

and copy isSpecialWindow() check as rulebook input
to setFullscreen()

Client::isFullScreenable() checks:
* fullscreen rule
* fullscreen_hack (-> for normal windows)
* geometry restrictions
* special window

Client::manage() for fullscreeining checks:
* fullscreen rule (with correct "initial" parameter)
* fullscreen_hack

-> this breaks the fullscreen rule for geometry restricted windows
and causes inconsistent behavior between client requests at runtime
(which do not test ::isFullScreenable()) and on mapping.

Otoh, the specialWindow() protection should apply generally - those
kind of windows should not be fullscreened since the user can not
exit this state via kwin for them - and there's hardly a good reason
for them to be fullscreen, esp. not to enter that state at runtime

REVIEW: 118442
BUG: 335617
FIXED-IN: 4.11.12

M  +1    -1    kwin/geometry.cpp
M  +1    -1    kwin/manage.cpp

http://commits.kde.org/kde-workspace/43229afee9fac4303e3d280ea63f96f034b3ffb5

diff --git a/kwin/geometry.cpp b/kwin/geometry.cpp
index ed0b97d..6934d26 100644
--- a/kwin/geometry.cpp
+++ b/kwin/geometry.cpp
@@ -2416,7 +2416,7 @@ void Client::setFullScreen(bool set, bool user)
         return;
     if (user && !userCanSetFullScreen())
         return;
-    set = rules()->checkFullScreen(set);
+    set = rules()->checkFullScreen(set && !isSpecialWindow());
     setShade(ShadeNone);
     bool was_fs = isFullScreen();
     if (was_fs)
diff --git a/kwin/manage.cpp b/kwin/manage.cpp
index 774a38e..99526b9 100644
--- a/kwin/manage.cpp
+++ b/kwin/manage.cpp
@@ -526,7 +526,7 @@ bool Client::manage(xcb_window_t w, bool isMapped)
             demandAttention();
         if (info->state() & NET::Modal)
             setModal(true);
-        if (fullscreen_mode != FullScreenHack && isFullScreenable())
+        if (fullscreen_mode != FullScreenHack)
             setFullScreen(rules()->checkFullScreen(info->state() & NET::FullScreen, !isMapped), false);
     }
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic