diff --git a/kcmkwin/kwinoptions/windows.cpp b/kcmkwin/kwinoptions/windows.cpp
index a7c0f4fafe..d998259bff 100644
--- a/kcmkwin/kwinoptions/windows.cpp
+++ b/kcmkwin/kwinoptions/windows.cpp
@@ -594,16 +594,17 @@ KAdvancedConfig::KAdvancedConfig(bool _standAlone, KConfig *_config, const KComp
placementCombo = new KComboBox(this);
placementCombo->setEditable(false);
- placementCombo->addItem(i18n("Smart"), SMART_PLACEMENT);
- placementCombo->addItem(i18n("Maximizing"), MAXIMIZING_PLACEMENT);
- placementCombo->addItem(i18n("Cascade"), CASCADE_PLACEMENT);
- placementCombo->addItem(i18n("Random"), RANDOM_PLACEMENT);
- placementCombo->addItem(i18n("Centered"), CENTERED_PLACEMENT);
- placementCombo->addItem(i18n("Zero-Cornered"), ZEROCORNERED_PLACEMENT);
+ placementCombo->addItem(i18n("Smart"), "Smart");
+ placementCombo->addItem(i18n("Maximizing"), "Maximizing");
+ placementCombo->addItem(i18n("Cascade"), "Cascade");
+ placementCombo->addItem(i18n("Random"), "Random");
+ placementCombo->addItem(i18n("Centered"), "Centered");
+ placementCombo->addItem(i18n("Zero-Cornered"), "ZeroCornered");
+ placementCombo->addItem(i18n("Under Mouse"), "UnderMouse");
// CT: disabling is needed as long as functionality misses in kwin
//placementCombo->addItem(i18n("Interactive"), INTERACTIVE_PLACEMENT);
//placementCombo->addItem(i18n("Manual"), MANUAL_PLACEMENT);
- placementCombo->setCurrentIndex(SMART_PLACEMENT);
+ placementCombo->setCurrentIndex(0); // default to "Smart"
// FIXME, when more policies have been added to KWin
wtstr = i18n("The placement policy determines where a new window"
@@ -617,6 +618,7 @@ KAdvancedConfig::KAdvancedConfig(bool _standAlone, KConfig *_config, const KComp
"
Random will use a random position"
" Centered will place the window centered"
" Zero-Cornered will place the window in the top-left corner"
+ " Under Mouse will place the window under the pointer"
"") ;
placementCombo->setWhatsThis(wtstr);
@@ -781,21 +783,10 @@ void KAdvancedConfig::load(void)
// interactiveTrigger->setValue(0);
// iTLabel->setEnabled(false);
// interactiveTrigger->hide();
- if (key == "Random")
- setPlacement(RANDOM_PLACEMENT);
- else if (key == "Cascade")
- setPlacement(CASCADE_PLACEMENT); //CT 31jan98
- //CT 31mar98 manual placement
- else if (key == "manual")
- setPlacement(MANUAL_PLACEMENT);
- else if (key == "Centered")
- setPlacement(CENTERED_PLACEMENT);
- else if (key == "ZeroCornered")
- setPlacement(ZEROCORNERED_PLACEMENT);
- else if (key == "Maximizing")
- setPlacement(MAXIMIZING_PLACEMENT);
- else
- setPlacement(SMART_PLACEMENT);
+ int idx = placementCombo->findData(key);
+ if (idx < 0)
+ idx = placementCombo->findData("Smart");
+ placementCombo->setCurrentIndex(idx);
// }
setHideUtilityWindowsForInactive(cg.readEntry(KWIN_HIDE_UTILITY, true));
@@ -822,17 +813,7 @@ void KAdvancedConfig::save(void)
cg.writeEntry(KWIN_SHADEHOVER_INTERVAL, v);
// placement policy --- CT 31jan98 ---
- v = getPlacement();
- if (v == RANDOM_PLACEMENT)
- cg.writeEntry(KWIN_PLACEMENT, "Random");
- else if (v == CASCADE_PLACEMENT)
- cg.writeEntry(KWIN_PLACEMENT, "Cascade");
- else if (v == CENTERED_PLACEMENT)
- cg.writeEntry(KWIN_PLACEMENT, "Centered");
- else if (v == ZEROCORNERED_PLACEMENT)
- cg.writeEntry(KWIN_PLACEMENT, "ZeroCornered");
- else if (v == MAXIMIZING_PLACEMENT)
- cg.writeEntry(KWIN_PLACEMENT, "Maximizing");
+ cg.writeEntry(KWIN_PLACEMENT, placementCombo->itemData(placementCombo->currentIndex()).toString());
//CT 13mar98 manual and interactive placement
// else if (v == MANUAL_PLACEMENT)
// cg.writeEntry(KWIN_PLACEMENT, "Manual");
@@ -840,8 +821,6 @@ void KAdvancedConfig::save(void)
// QString tmpstr = QString("Interactive,%1").arg(interactiveTrigger->value());
// cg.writeEntry(KWIN_PLACEMENT, tmpstr);
// }
- else
- cg.writeEntry(KWIN_PLACEMENT, "Smart");
cg.writeEntry(KWIN_HIDE_UTILITY, hideUtilityWindowsForInactive->isChecked());
cg.writeEntry(KWIN_INACTIVE_SKIP_TASKBAR, inactiveTabsSkipTaskbar->isChecked());
@@ -867,7 +846,7 @@ void KAdvancedConfig::defaults()
{
setShadeHover(false);
setShadeHoverInterval(250);
- setPlacement(SMART_PLACEMENT);
+ placementCombo->setCurrentIndex(0); // default to Smart
setHideUtilityWindowsForInactive(true);
setTilingOn(false);
setTilingLayout(0);
@@ -878,17 +857,6 @@ void KAdvancedConfig::defaults()
emit KCModule::changed(true);
}
-// placement policy --- CT 31jan98 ---
-int KAdvancedConfig::getPlacement()
-{
- return placementCombo->currentIndex();
-}
-
-void KAdvancedConfig::setPlacement(int plac)
-{
- placementCombo->setCurrentIndex(plac);
-}
-
void KAdvancedConfig::setHideUtilityWindowsForInactive(bool s)
{
diff --git a/kcmkwin/kwinoptions/windows.h b/kcmkwin/kwinoptions/windows.h
index 3fadf2c94f..f0a9b849c5 100644
--- a/kcmkwin/kwinoptions/windows.h
+++ b/kcmkwin/kwinoptions/windows.h
@@ -45,15 +45,6 @@ class KIntNumInput;
#define TITLEBAR_PLAIN 0
#define TITLEBAR_SHADED 1
-#define SMART_PLACEMENT 0
-#define MAXIMIZING_PLACEMENT 1
-#define CASCADE_PLACEMENT 2
-#define RANDOM_PLACEMENT 3
-#define CENTERED_PLACEMENT 4
-#define ZEROCORNERED_PLACEMENT 5
-#define INTERACTIVE_PLACEMENT 6
-#define MANUAL_PLACEMENT 7
-
#define CLICK_TO_FOCUS 0
#define FOCUS_FOLLOWS_MOUSE 1
#define FOCUS_UNDER_MOUSE 2
@@ -218,9 +209,6 @@ private:
void setAutogroupInForeground(bool);
QCheckBox* autogroupInForeground;
- int getPlacement(void); //CT
- void setPlacement(int); //CT
-
KComboBox *placementCombo;
// ------------------------------
diff --git a/placement.cpp b/placement.cpp
index 0b9b2e59ab..f091d9d088 100644
--- a/placement.cpp
+++ b/placement.cpp
@@ -548,7 +548,7 @@ Placement::Policy Placement::policyFromString(const QString& policy, bool no_spe
return Centered;
else if (policy == "ZeroCornered")
return ZeroCornered;
- else if (policy == "UnderMouse" && !no_special)
+ else if (policy == "UnderMouse")
return UnderMouse;
else if (policy == "OnMainWindow" && !no_special)
return OnMainWindow;