feat: double_cursor_fix

This commit is contained in:
galister
2024-02-21 21:48:37 +01:00
parent 3e3ee490e8
commit 54b38a0962
2 changed files with 8 additions and 2 deletions

View File

@@ -81,6 +81,9 @@ pub struct GeneralConfig {
#[serde(default = "def_false")] #[serde(default = "def_false")]
pub upright_screen_fix: bool, pub upright_screen_fix: bool,
#[serde(default = "def_false")]
pub double_cursor_fix: bool,
#[serde(default = "def_screens")] #[serde(default = "def_screens")]
pub show_screens: Vec<Arc<str>>, pub show_screens: Vec<Arc<str>>,

View File

@@ -286,13 +286,16 @@ impl ScreenRenderer {
pub fn new_pw( pub fn new_pw(
output: &WlxOutput, output: &WlxOutput,
token: Option<&str>, token: Option<&str>,
session: &AppSession,
) -> Option<( ) -> Option<(
ScreenRenderer, ScreenRenderer,
Option<String>, /* pipewire restore token */ Option<String>, /* pipewire restore token */
)> { )> {
let name = output.name.clone(); let name = output.name.clone();
let embed_mouse = !session.config.double_cursor_fix;
let select_screen_result = let select_screen_result =
futures::executor::block_on(pipewire_select_screen(token, true, true, true)).ok()?; futures::executor::block_on(pipewire_select_screen(token, embed_mouse, true, true))
.ok()?;
let capture = PipewireCapture::new(name, select_screen_result.node_id, 60); let capture = PipewireCapture::new(name, select_screen_result.node_id, 60);
@@ -540,7 +543,7 @@ where
); );
} }
if let Some((renderer, restore_token)) = ScreenRenderer::new_pw(output, token) { if let Some((renderer, restore_token)) = ScreenRenderer::new_pw(output, token, session) {
capture = Some(renderer); capture = Some(renderer);
if let Some(token) = restore_token { if let Some(token) = restore_token {