diff --git a/Cargo.lock b/Cargo.lock index b889ef87..e01986b6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -901,7 +901,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#ff6454248ff0f2ffe889798ef9610a1f8e5384e4" +source = "git+https://github.com/pop-os/libcosmic#01e5593741c7aa7eedf0692c6087ee3fb97feeb8" dependencies = [ "atomicwrites", "calloop 0.14.4", @@ -922,7 +922,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#ff6454248ff0f2ffe889798ef9610a1f8e5384e4" +source = "git+https://github.com/pop-os/libcosmic#01e5593741c7aa7eedf0692c6087ee3fb97feeb8" dependencies = [ "quote", "syn", @@ -1000,7 +1000,7 @@ dependencies = [ [[package]] name = "cosmic-text" version = "0.18.2" -source = "git+https://github.com/pop-os/cosmic-text.git#b6216ad123814c41c35943390727b4e7146cd143" +source = "git+https://github.com/pop-os/cosmic-text.git#ddad5fb7410e374612925415a13843ed38f14245" dependencies = [ "bitflags 2.11.0", "fontdb", @@ -1023,7 +1023,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#ff6454248ff0f2ffe889798ef9610a1f8e5384e4" +source = "git+https://github.com/pop-os/libcosmic#01e5593741c7aa7eedf0692c6087ee3fb97feeb8" dependencies = [ "almost", "configparser", @@ -2259,7 +2259,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#ff6454248ff0f2ffe889798ef9610a1f8e5384e4" +source = "git+https://github.com/pop-os/libcosmic#01e5593741c7aa7eedf0692c6087ee3fb97feeb8" dependencies = [ "dnd", "iced_core", @@ -2278,7 +2278,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#ff6454248ff0f2ffe889798ef9610a1f8e5384e4" +source = "git+https://github.com/pop-os/libcosmic#01e5593741c7aa7eedf0692c6087ee3fb97feeb8" dependencies = [ "bitflags 2.11.0", "bytes", @@ -2301,7 +2301,7 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#ff6454248ff0f2ffe889798ef9610a1f8e5384e4" +source = "git+https://github.com/pop-os/libcosmic#01e5593741c7aa7eedf0692c6087ee3fb97feeb8" dependencies = [ "iced_core", "iced_futures", @@ -2311,7 +2311,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#ff6454248ff0f2ffe889798ef9610a1f8e5384e4" +source = "git+https://github.com/pop-os/libcosmic#01e5593741c7aa7eedf0692c6087ee3fb97feeb8" dependencies = [ "futures", "iced_core", @@ -2324,7 +2324,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#ff6454248ff0f2ffe889798ef9610a1f8e5384e4" +source = "git+https://github.com/pop-os/libcosmic#01e5593741c7aa7eedf0692c6087ee3fb97feeb8" dependencies = [ "bitflags 2.11.0", "bytemuck", @@ -2345,7 +2345,7 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#ff6454248ff0f2ffe889798ef9610a1f8e5384e4" +source = "git+https://github.com/pop-os/libcosmic#01e5593741c7aa7eedf0692c6087ee3fb97feeb8" dependencies = [ "iced_graphics", "iced_runtime", @@ -2354,7 +2354,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#ff6454248ff0f2ffe889798ef9610a1f8e5384e4" +source = "git+https://github.com/pop-os/libcosmic#01e5593741c7aa7eedf0692c6087ee3fb97feeb8" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -2366,7 +2366,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#ff6454248ff0f2ffe889798ef9610a1f8e5384e4" +source = "git+https://github.com/pop-os/libcosmic#01e5593741c7aa7eedf0692c6087ee3fb97feeb8" dependencies = [ "bytes", "dnd", @@ -2380,7 +2380,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#ff6454248ff0f2ffe889798ef9610a1f8e5384e4" +source = "git+https://github.com/pop-os/libcosmic#01e5593741c7aa7eedf0692c6087ee3fb97feeb8" dependencies = [ "bytemuck", "cosmic-text", @@ -2397,7 +2397,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic#ff6454248ff0f2ffe889798ef9610a1f8e5384e4" +source = "git+https://github.com/pop-os/libcosmic#01e5593741c7aa7eedf0692c6087ee3fb97feeb8" dependencies = [ "as-raw-xcb-connection", "bitflags 2.11.0", @@ -2428,7 +2428,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic#ff6454248ff0f2ffe889798ef9610a1f8e5384e4" +source = "git+https://github.com/pop-os/libcosmic#01e5593741c7aa7eedf0692c6087ee3fb97feeb8" dependencies = [ "dnd", "iced_renderer", @@ -2898,7 +2898,7 @@ checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" [[package]] name = "libcosmic" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic#ff6454248ff0f2ffe889798ef9610a1f8e5384e4" +source = "git+https://github.com/pop-os/libcosmic#01e5593741c7aa7eedf0692c6087ee3fb97feeb8" dependencies = [ "apply", "auto_enums", diff --git a/src/shell/element/stack.rs b/src/shell/element/stack.rs index 5c0f6551..aeded063 100644 --- a/src/shell/element/stack.rs +++ b/src/shell/element/stack.rs @@ -1130,6 +1130,7 @@ impl Program for CosmicStackInternal { .to_i32_round(); cursor.y -= TAB_HEIGHT; let res = shell.menu_request( + false, &surface, &seat, serial, @@ -1172,6 +1173,7 @@ impl Program for CosmicStackInternal { .to_i32_round(); cursor.y -= TAB_HEIGHT; let res = shell.menu_request( + false, &surface, &seat, serial, diff --git a/src/shell/element/window.rs b/src/shell/element/window.rs index 3bfc6349..ed50bad2 100644 --- a/src/shell/element/window.rs +++ b/src/shell/element/window.rs @@ -773,6 +773,7 @@ impl Program for CosmicWindowInternal { cursor.y -= SSD_HEIGHT; let res = shell.menu_request( + false, &surface, &seat, serial, @@ -1031,6 +1032,13 @@ impl PointerTarget for CosmicWindow { let Some(surface) = self.wl_surface().map(Cow::into_owned) else { return; }; + + // Only start a resize if the left button was pressed + if event.state != smithay::backend::input::ButtonState::Pressed + || event.button != 0x110 + { + return; + } self.0.loop_handle().insert_idle(move |state| { let res = state.common.shell.write().resize_request( &surface, diff --git a/src/shell/mod.rs b/src/shell/mod.rs index 6ba300d1..5ca05e0a 100644 --- a/src/shell/mod.rs +++ b/src/shell/mod.rs @@ -3429,6 +3429,7 @@ impl Shell { pub fn menu_request( &self, + is_client_initiated: bool, surface: &WlSurface, seat: &Seat, serial: impl Into>, @@ -3439,7 +3440,7 @@ impl Shell { ) -> Option<(MenuGrab, Focus)> { let serial = serial.into(); let Some(GrabStartData::Pointer(start_data)) = - check_grab_preconditions(seat, serial, Some(surface)) + check_grab_preconditions(seat, serial, is_client_initiated.then_some(surface)) else { return None; // TODO: an application can send a menu request for a touch event }; diff --git a/src/wayland/handlers/xdg_shell/mod.rs b/src/wayland/handlers/xdg_shell/mod.rs index 0826db76..6559a751 100644 --- a/src/wayland/handlers/xdg_shell/mod.rs +++ b/src/wayland/handlers/xdg_shell/mod.rs @@ -368,6 +368,7 @@ impl XdgShellHandler for State { let shell = self.common.shell.read(); let res = shell.menu_request( + true, surface.wl_surface(), &seat, serial,