Use WeakOutput instead of Option<WeakOutput>
This commit is contained in:
parent
1b96256622
commit
8d7f491830
1 changed files with 7 additions and 9 deletions
|
|
@ -58,7 +58,7 @@ impl OutputPowerState {
|
||||||
let mut output_powers = mem::take(&mut state.output_power_state().output_powers);
|
let mut output_powers = mem::take(&mut state.output_power_state().output_powers);
|
||||||
for (output_power, old_mode) in output_powers.iter_mut() {
|
for (output_power, old_mode) in output_powers.iter_mut() {
|
||||||
let data = output_power.data::<OutputPowerData>().unwrap();
|
let data = output_power.data::<OutputPowerData>().unwrap();
|
||||||
if let Some(output) = data.output.as_ref().and_then(|o| o.upgrade()) {
|
if let Some(output) = data.output.upgrade() {
|
||||||
if let Some(on) = state.get_dpms(&output) {
|
if let Some(on) = state.get_dpms(&output) {
|
||||||
let mode = output_power_mode(on);
|
let mode = output_power_mode(on);
|
||||||
if mode != *old_mode {
|
if mode != *old_mode {
|
||||||
|
|
@ -77,7 +77,7 @@ pub struct OutputPowerManagerGlobalData {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct OutputPowerData {
|
pub struct OutputPowerData {
|
||||||
output: Option<WeakOutput>,
|
output: WeakOutput,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<D> GlobalDispatch<ZwlrOutputPowerManagerV1, OutputPowerManagerGlobalData, D>
|
impl<D> GlobalDispatch<ZwlrOutputPowerManagerV1, OutputPowerManagerGlobalData, D>
|
||||||
|
|
@ -126,7 +126,7 @@ where
|
||||||
let output_power = data_init.init(
|
let output_power = data_init.init(
|
||||||
id,
|
id,
|
||||||
OutputPowerData {
|
OutputPowerData {
|
||||||
output: output.as_ref().map(|o| o.downgrade()),
|
output: output.as_ref().map(|o| o.downgrade()).unwrap_or_default(),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
if let Some(on) = output.as_ref().and_then(|o| state.get_dpms(o)) {
|
if let Some(on) = output.as_ref().and_then(|o| state.get_dpms(o)) {
|
||||||
|
|
@ -161,7 +161,7 @@ where
|
||||||
) {
|
) {
|
||||||
match request {
|
match request {
|
||||||
zwlr_output_power_v1::Request::SetMode { mode } => {
|
zwlr_output_power_v1::Request::SetMode { mode } => {
|
||||||
if let Some(output) = data.output.as_ref().and_then(|o| o.upgrade()) {
|
if let Some(output) = data.output.upgrade() {
|
||||||
let on = match mode {
|
let on = match mode {
|
||||||
WEnum::Value(zwlr_output_power_v1::Mode::On) => true,
|
WEnum::Value(zwlr_output_power_v1::Mode::On) => true,
|
||||||
WEnum::Value(zwlr_output_power_v1::Mode::Off) => false,
|
WEnum::Value(zwlr_output_power_v1::Mode::Off) => false,
|
||||||
|
|
@ -176,11 +176,9 @@ where
|
||||||
state.output_power_state().output_powers.iter_mut()
|
state.output_power_state().output_powers.iter_mut()
|
||||||
{
|
{
|
||||||
let data = output_power.data::<OutputPowerData>().unwrap();
|
let data = output_power.data::<OutputPowerData>().unwrap();
|
||||||
if let Some(o) = data.output.as_ref() {
|
if data.output == output && mode != *old_mode {
|
||||||
if o == &output && mode != *old_mode {
|
output_power.mode(mode);
|
||||||
output_power.mode(mode);
|
*old_mode = mode;
|
||||||
*old_mode = mode;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue