summaryrefslogtreecommitdiffstats
path: root/kicker
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-01-09 16:39:31 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-01-09 16:39:31 -0600
commite88baf8334b8ff7ce92e555cbaffee949672d4b8 (patch)
treecaac57be5b2bb29eef81ffb58341829e2571ebb3 /kicker
parent477e956a04dfb244814f274e98a8d6f4beb84f3f (diff)
downloadtdebase-e88baf8334b8ff7ce92e555cbaffee949672d4b8.tar.gz
tdebase-e88baf8334b8ff7ce92e555cbaffee949672d4b8.zip
Automatically deactivate disconnected display devices
Notify user on display add/remove/change Add advanced display configuration option to krandr menu Add option to autohide kicker panels on inactive Xinerama screens and enable by default Update hwmanager treeview on device change
Diffstat (limited to 'kicker')
-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>