Mouse: enable Revert only if settings changed.

* If changing the settings and manually reverting to the previous
values, the Revert button would stay enabled.
* Fixes #11783.

Signed-off-by: Adrien Destugues <[email protected]>
This commit is contained in:
Janus
2015-01-26 11:11:36 +01:00
committed by Adrien Destugues
parent 95ef50445f
commit 7b915ffb48
3 changed files with 27 additions and 9 deletions
+17
View File
@@ -241,6 +241,23 @@ MouseSettings::Revert()
} }
// Checks if the settings are different then the original settings
bool
MouseSettings::IsRevertable()
{
return fSettings.click_speed != fOriginalSettings.click_speed
|| fSettings.accel.speed != fOriginalSettings.accel.speed
|| fSettings.type != fOriginalSettings.type
|| fSettings.accel.accel_factor != fOriginalSettings.accel.accel_factor
|| fMode != fOriginalMode
|| fFocusFollowsMouseMode != fOriginalFocusFollowsMouseMode
|| fAcceptFirstClick != fOriginalAcceptFirstClick
|| fSettings.map.button[0] != fOriginalSettings.map.button[0]
|| fSettings.map.button[1] != fOriginalSettings.map.button[1]
|| fSettings.map.button[2] != fOriginalSettings.map.button[2];
}
void void
MouseSettings::SetWindowPosition(BPoint corner) MouseSettings::SetWindowPosition(BPoint corner)
{ {
+1
View File
@@ -27,6 +27,7 @@ public:
~MouseSettings(); ~MouseSettings();
void Revert(); void Revert();
bool IsRevertable();
void Defaults(); void Defaults();
bool IsDefaultable(); bool IsDefaultable();
void Dump(); void Dump();
+9 -9
View File
@@ -109,7 +109,7 @@ MouseWindow::MessageReceived(BMessage* message)
fSettingsView->UpdateFromSettings(); fSettingsView->UpdateFromSettings();
fDefaultsButton->SetEnabled(false); fDefaultsButton->SetEnabled(false);
fRevertButton->SetEnabled(true); fRevertButton->SetEnabled(fSettings.IsRevertable());
break; break;
} }
@@ -130,7 +130,7 @@ MouseWindow::MessageReceived(BMessage* message)
fSettings.SetMouseType(++type); fSettings.SetMouseType(++type);
fSettingsView->SetMouseType(type); fSettingsView->SetMouseType(type);
fDefaultsButton->SetEnabled(fSettings.IsDefaultable()); fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
fRevertButton->SetEnabled(true); fRevertButton->SetEnabled(fSettings.IsRevertable());
} }
break; break;
} }
@@ -141,7 +141,7 @@ MouseWindow::MessageReceived(BMessage* message)
if (message->FindInt32("mode", &mode) == B_OK) { if (message->FindInt32("mode", &mode) == B_OK) {
fSettings.SetMouseMode((mode_mouse)mode); fSettings.SetMouseMode((mode_mouse)mode);
fDefaultsButton->SetEnabled(fSettings.IsDefaultable()); fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
fRevertButton->SetEnabled(true); fRevertButton->SetEnabled(fSettings.IsRevertable());
fSettingsView->fFocusFollowsMouseMenu->SetEnabled( fSettingsView->fFocusFollowsMouseMenu->SetEnabled(
mode == B_FOCUS_FOLLOWS_MOUSE); mode == B_FOCUS_FOLLOWS_MOUSE);
fSettingsView->fAcceptFirstClickBox->SetEnabled( fSettingsView->fAcceptFirstClickBox->SetEnabled(
@@ -158,7 +158,7 @@ MouseWindow::MessageReceived(BMessage* message)
fSettings.SetFocusFollowsMouseMode( fSettings.SetFocusFollowsMouseMode(
(mode_focus_follows_mouse)mode); (mode_focus_follows_mouse)mode);
fDefaultsButton->SetEnabled(fSettings.IsDefaultable()); fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
fRevertButton->SetEnabled(true); fRevertButton->SetEnabled(fSettings.IsRevertable());
} }
break; break;
} }
@@ -176,7 +176,7 @@ MouseWindow::MessageReceived(BMessage* message)
== B_CONTROL_ON; == B_CONTROL_ON;
fSettings.SetAcceptFirstClick(acceptFirstClick); fSettings.SetAcceptFirstClick(acceptFirstClick);
fDefaultsButton->SetEnabled(fSettings.IsDefaultable()); fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
fRevertButton->SetEnabled(true); fRevertButton->SetEnabled(fSettings.IsRevertable());
} }
break; break;
} }
@@ -188,7 +188,7 @@ MouseWindow::MessageReceived(BMessage* message)
// slow = 1000000, fast = 0 // slow = 1000000, fast = 0
fSettings.SetClickSpeed(value * 1000); fSettings.SetClickSpeed(value * 1000);
fDefaultsButton->SetEnabled(fSettings.IsDefaultable()); fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
fRevertButton->SetEnabled(true); fRevertButton->SetEnabled(fSettings.IsRevertable());
} }
break; break;
} }
@@ -201,7 +201,7 @@ MouseWindow::MessageReceived(BMessage* message)
fSettings.SetMouseSpeed((int32)pow(2, fSettings.SetMouseSpeed((int32)pow(2,
value * 6.0 / 1000) * 8192); value * 6.0 / 1000) * 8192);
fDefaultsButton->SetEnabled(fSettings.IsDefaultable()); fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
fRevertButton->SetEnabled(true); fRevertButton->SetEnabled(fSettings.IsRevertable());
} }
break; break;
} }
@@ -214,7 +214,7 @@ MouseWindow::MessageReceived(BMessage* message)
fSettings.SetAccelerationFactor((int32)pow( fSettings.SetAccelerationFactor((int32)pow(
value * 4.0 / 1000, 2) * 16384); value * 4.0 / 1000, 2) * 16384);
fDefaultsButton->SetEnabled(fSettings.IsDefaultable()); fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
fRevertButton->SetEnabled(true); fRevertButton->SetEnabled(fSettings.IsRevertable());
} }
break; break;
} }
@@ -237,7 +237,7 @@ MouseWindow::MessageReceived(BMessage* message)
fSettings.SetMapping(button, mapping); fSettings.SetMapping(button, mapping);
fDefaultsButton->SetEnabled(fSettings.IsDefaultable()); fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
fRevertButton->SetEnabled(true); fRevertButton->SetEnabled(fSettings.IsRevertable());
fSettingsView->MouseMapUpdated(); fSettingsView->MouseMapUpdated();
} }
break; break;