summaryrefslogtreecommitdiffstats
path: root/kicker/kicker/core
diff options
context:
space:
mode:
Diffstat (limited to 'kicker/kicker/core')
-rw-r--r--kicker/kicker/core/container_extension.cpp19
-rw-r--r--kicker/kicker/core/extensionSettings.kcfg5
2 files changed, 21 insertions, 3 deletions
diff --git a/kicker/kicker/core/container_extension.cpp b/kicker/kicker/core/container_extension.cpp
index 80ceb6e13..1b7857774 100644
--- a/kicker/kicker/core/container_extension.cpp
+++ b/kicker/kicker/core/container_extension.cpp
@@ -476,6 +476,12 @@ void ExtensionContainer::removeSessionConfigFile()
void ExtensionContainer::moveMe()
{
int screen = xineramaScreen();
+ if (screen == -3)
+ {
+ // we aren't on any screen? um. ok.
+ return;
+ }
+
if (screen < 0)
{
screen = kapp->desktop()->screenNumber(this);
@@ -1980,7 +1986,7 @@ int ExtensionContainer::xineramaScreen() const
// sanitize at runtime only, since many Xinerama users
// turn it on and off and don't want kicker to lose their configs
- /* -2 means all screens, -1 primary screens, the rest are valid screen numbers */
+ /* -3 means no screens, -2 means all screens, -1 primary screens, the rest are valid screen numbers */
if (XineramaAllScreens <= m_settings.xineramaScreen() &&
m_settings.xineramaScreen() < TQApplication::desktop()->numScreens())
{
@@ -1988,8 +1994,15 @@ int ExtensionContainer::xineramaScreen() const
}
else
{
- /* force invalid screen locations onto the primary screen */
- return TQApplication::desktop()->primaryScreen();
+ if (m_settings.xineramaHideSwitch())
+ {
+ return -3;
+ }
+ else
+ {
+ /* force invalid screen locations onto the primary screen */
+ return TQApplication::desktop()->primaryScreen();
+ }
}
}
diff --git a/kicker/kicker/core/extensionSettings.kcfg b/kicker/kicker/core/extensionSettings.kcfg
index 466f30ce7..12bf9e37c 100644
--- a/kicker/kicker/core/extensionSettings.kcfg
+++ b/kicker/kicker/core/extensionSettings.kcfg
@@ -60,6 +60,11 @@
<default>false</default>
</entry>
+<entry name="XineramaHideSwitch" type="Bool" >
+ <label>Auto hide when Xinerama screen is not available</label>
+ <default>true</default>
+ </entry>
+
<entry name="AutoHideDelay" type="Int" >
<label>Delay before auto hide</label>
<default>3</default>