Move func "settings_(get|set)_max_clients_in_master" to Rust
This commit is contained in:
parent
290a278919
commit
4fdc0d90e4
5 changed files with 29 additions and 20 deletions
|
@ -9,13 +9,6 @@ extern "C" fn constraints_master_area_factor(
|
||||||
constraints::master_area_factor(master_area_factor)
|
constraints::master_area_factor(master_area_factor)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
|
||||||
extern "C" fn constraints_max_clients_in_master(
|
|
||||||
max_clients_in_master: c_int,
|
|
||||||
) -> c_int {
|
|
||||||
constraints::max_clients_in_master(max_clients_in_master)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
extern "C" fn constraints_snap_distance(snap_distance: c_uint) -> c_uint {
|
extern "C" fn constraints_snap_distance(snap_distance: c_uint) -> c_uint {
|
||||||
constraints::snap_distance(snap_distance)
|
constraints::snap_distance(snap_distance)
|
||||||
|
|
|
@ -80,3 +80,20 @@ unsafe extern "C" fn settings_get_gap_size() -> c_int {
|
||||||
unsafe extern "C" fn settings_set_gap_size(value: c_int) {
|
unsafe extern "C" fn settings_set_gap_size(value: c_int) {
|
||||||
SETTINGS.unwrap().gap_size_set(value);
|
SETTINGS.unwrap().gap_size_set(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[no_mangle]
|
||||||
|
unsafe extern "C" fn settings_get_max_clients_in_master() -> c_int {
|
||||||
|
match SETTINGS.unwrap().max_clients_in_master() {
|
||||||
|
None => 0,
|
||||||
|
Some(value) => value,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[no_mangle]
|
||||||
|
unsafe extern "C" fn settings_set_max_clients_in_master(value: c_int) {
|
||||||
|
SETTINGS.unwrap().max_clients_in_master_set(if value == 0 {
|
||||||
|
None
|
||||||
|
} else {
|
||||||
|
Some(value)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
#define _CONSTRAINTS_H
|
#define _CONSTRAINTS_H
|
||||||
|
|
||||||
float constraints_master_area_factor(float master_area_factor);
|
float constraints_master_area_factor(float master_area_factor);
|
||||||
int constraints_max_clients_in_master(int max_clients_in_master);
|
|
||||||
unsigned int constraints_snap_distance(unsigned int snap_distance);
|
unsigned int constraints_snap_distance(unsigned int snap_distance);
|
||||||
|
|
||||||
#endif // _CONSTRAINTS_H
|
#endif // _CONSTRAINTS_H
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
static SettingsForSingleWindow border_for_single_window = SETTINGS_FOR_SINGLE_WINDOW_NOBODY_IS_FULLSCREEN;
|
static SettingsForSingleWindow border_for_single_window = SETTINGS_FOR_SINGLE_WINDOW_NOBODY_IS_FULLSCREEN;
|
||||||
static SettingsForSingleWindow gap_for_single_window = SETTINGS_FOR_SINGLE_WINDOW_NOBODY_IS_FULLSCREEN;
|
static SettingsForSingleWindow gap_for_single_window = SETTINGS_FOR_SINGLE_WINDOW_NOBODY_IS_FULLSCREEN;
|
||||||
static UnitKind master_area_factor_per_unit = UNIT_MONITOR;
|
static UnitKind master_area_factor_per_unit = UNIT_MONITOR;
|
||||||
static int max_clients_in_master = 0; // 0 for no maximum
|
|
||||||
static bool respect_resize_hints_in_floating_layout = false;
|
static bool respect_resize_hints_in_floating_layout = false;
|
||||||
static bool show_bar_by_default = true;
|
static bool show_bar_by_default = true;
|
||||||
static UnitKind show_bar_per_unit = UNIT_MONITOR;
|
static UnitKind show_bar_per_unit = UNIT_MONITOR;
|
||||||
|
@ -45,17 +44,6 @@ void settings_set_master_area_factor_per_unit(const UnitKind new_master_area_fac
|
||||||
// TODO: notify WM to rearrange clients
|
// TODO: notify WM to rearrange clients
|
||||||
}
|
}
|
||||||
|
|
||||||
int settings_get_max_clients_in_master()
|
|
||||||
{
|
|
||||||
return max_clients_in_master;
|
|
||||||
}
|
|
||||||
|
|
||||||
void settings_set_max_clients_in_master(const int new_max_clients_in_master)
|
|
||||||
{
|
|
||||||
max_clients_in_master = constraints_max_clients_in_master(new_max_clients_in_master);
|
|
||||||
// TODO: notify WM to rearrange clients
|
|
||||||
}
|
|
||||||
|
|
||||||
bool settings_get_respect_resize_hints_in_floating_layout()
|
bool settings_get_respect_resize_hints_in_floating_layout()
|
||||||
{
|
{
|
||||||
return respect_resize_hints_in_floating_layout;
|
return respect_resize_hints_in_floating_layout;
|
||||||
|
|
|
@ -11,6 +11,7 @@ pub struct Settings {
|
||||||
enable_swallowing: bool,
|
enable_swallowing: bool,
|
||||||
focus_on_wheel: bool,
|
focus_on_wheel: bool,
|
||||||
gap_size: c_int,
|
gap_size: c_int,
|
||||||
|
max_clients_in_master: Option<c_int>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for Settings {
|
impl Default for Settings {
|
||||||
|
@ -23,6 +24,7 @@ impl Default for Settings {
|
||||||
enable_swallowing: true,
|
enable_swallowing: true,
|
||||||
focus_on_wheel: true,
|
focus_on_wheel: true,
|
||||||
gap_size: 10,
|
gap_size: 10,
|
||||||
|
max_clients_in_master: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -87,4 +89,14 @@ impl Settings {
|
||||||
pub fn gap_size_set(&mut self, value: c_int) {
|
pub fn gap_size_set(&mut self, value: c_int) {
|
||||||
self.gap_size = constraints::gap_size(value);
|
self.gap_size = constraints::gap_size(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn max_clients_in_master(&self) -> Option<c_int> {
|
||||||
|
self.max_clients_in_master
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: notify WM to rearrange clients
|
||||||
|
pub fn max_clients_in_master_set(&mut self, value: Option<c_int>) {
|
||||||
|
self.max_clients_in_master =
|
||||||
|
value.map(|value| constraints::max_clients_in_master(value));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue