Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package niri for openSUSE:Factory checked in at 2024-11-13 15:29:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/niri (Old) and /work/SRC/openSUSE:Factory/.niri.new.2017 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "niri" Wed Nov 13 15:29:43 2024 rev:8 rq:1223917 version:0.1.10.1 Changes: -------- --- /work/SRC/openSUSE:Factory/niri/niri.changes 2024-11-11 13:44:06.656760204 +0100 +++ /work/SRC/openSUSE:Factory/.niri.new.2017/niri.changes 2024-11-13 15:30:11.274040700 +0100 @@ -1,0 +2,11 @@ +Wed Nov 13 11:04:01 UTC 2024 - Muhammad Akbar Yanuar Mantari <mantari...@pm.me> + +- Update to version 0.1.10.1: + * Fixed scrolling not working when the mouse {} or touchpad {} + section is omitted from the config file. + * Made the mouse cursor show up on scroll which makes scrolling + work when the cursor was hidden. + * Fixed a crash when holding Space in the screenshot UI. + * Bound touch-dragging with held Mod to interactive window move. + +------------------------------------------------------------------- Old: ---- niri-0.1.10.tar.gz New: ---- niri-0.1.10.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ niri.spec ++++++ --- /var/tmp/diff_new_pack.SDDWo8/_old 2024-11-13 15:30:11.870065618 +0100 +++ /var/tmp/diff_new_pack.SDDWo8/_new 2024-11-13 15:30:11.874065785 +0100 @@ -18,13 +18,13 @@ %bcond_without test Name: niri -Version: 0.1.10 +Version: 0.1.10.1 Release: 0 Summary: Scrollable-tiling Wayland compositor License: GPL-3.0-or-later URL: https://github.com/YaLTeR/niri Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz -Source1: %{url}/releases/download/v%{version}/niri-%{version}-vendored-dependencies.tar.xz +Source1: %{url}/releases/download/v0.1.10/niri-0.1.10-vendored-dependencies.tar.xz Source2: cargo_config BuildRequires: cargo-packaging BuildRequires: clang ++++++ niri-0.1.10.tar.gz -> niri-0.1.10.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/niri-0.1.10/Cargo.lock new/niri-0.1.10.1/Cargo.lock --- old/niri-0.1.10/Cargo.lock 2024-11-09 15:57:52.000000000 +0100 +++ new/niri-0.1.10.1/Cargo.lock 2024-11-13 08:39:54.000000000 +0100 @@ -2390,7 +2390,7 @@ [[package]] name = "niri" -version = "0.1.10" +version = "0.1.10-1" dependencies = [ "anyhow", "approx 0.5.1", @@ -2444,7 +2444,7 @@ [[package]] name = "niri-config" -version = "0.1.10" +version = "0.1.10-1" dependencies = [ "bitflags 2.6.0", "csscolorparser", @@ -2461,7 +2461,7 @@ [[package]] name = "niri-ipc" -version = "0.1.10" +version = "0.1.10-1" dependencies = [ "clap", "schemars", @@ -2471,7 +2471,7 @@ [[package]] name = "niri-visual-tests" -version = "0.1.10" +version = "0.1.10-1" dependencies = [ "anyhow", "gtk4", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/niri-0.1.10/Cargo.toml new/niri-0.1.10.1/Cargo.toml --- old/niri-0.1.10/Cargo.toml 2024-11-09 15:57:52.000000000 +0100 +++ new/niri-0.1.10.1/Cargo.toml 2024-11-13 08:39:54.000000000 +0100 @@ -2,7 +2,7 @@ members = ["niri-visual-tests"] [workspace.package] -version = "0.1.10" +version = "0.1.10-1" description = "A scrollable-tiling Wayland compositor" authors = ["Ivan Molodetskikh <yalt...@gmail.com>"] license = "GPL-3.0-or-later" @@ -64,8 +64,8 @@ libc = "0.2.162" libdisplay-info = "0.1.0" log = { version = "0.4.22", features = ["max_level_trace", "release_max_level_debug"] } -niri-config = { version = "0.1.10", path = "niri-config" } -niri-ipc = { version = "0.1.10", path = "niri-ipc", features = ["clap"] } +niri-config = { version = "0.1.10-1", path = "niri-config" } +niri-ipc = { version = "0.1.10-1", path = "niri-ipc", features = ["clap"] } notify-rust = { version = "~4.10.0", optional = true } ordered-float = "4.5.0" pango = { version = "0.20.4", features = ["v1_44"] } @@ -139,7 +139,7 @@ debug = false [package.metadata.generate-rpm] -version = "0.1.10" +version = "0.1.10.1" assets = [ { source = "target/release/niri", dest = "/usr/bin/", mode = "755" }, { source = "resources/niri-session", dest = "/usr/bin/", mode = "755" }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/niri-0.1.10/niri-config/Cargo.toml new/niri-0.1.10.1/niri-config/Cargo.toml --- old/niri-0.1.10/niri-config/Cargo.toml 2024-11-09 15:57:52.000000000 +0100 +++ new/niri-0.1.10.1/niri-config/Cargo.toml 2024-11-13 08:39:54.000000000 +0100 @@ -12,7 +12,7 @@ csscolorparser = "0.7.0" knuffel = "3.2.0" miette = "5.10.0" -niri-ipc = { version = "0.1.10", path = "../niri-ipc" } +niri-ipc = { version = "0.1.10-1", path = "../niri-ipc" } regex = "1.11.1" smithay = { workspace = true, features = ["backend_libinput"] } tracing.workspace = true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/niri-0.1.10/niri-config/src/lib.rs new/niri-0.1.10.1/niri-config/src/lib.rs --- old/niri-0.1.10/niri-config/src/lib.rs 2024-11-09 15:57:52.000000000 +0100 +++ new/niri-0.1.10.1/niri-config/src/lib.rs 2024-11-13 08:39:54.000000000 +0100 @@ -188,8 +188,8 @@ pub disabled_on_external_mouse: bool, #[knuffel(child)] pub middle_emulation: bool, - #[knuffel(child, unwrap(argument), default = FloatOrInt(1.0))] - pub scroll_factor: FloatOrInt<0, 100>, + #[knuffel(child, unwrap(argument))] + pub scroll_factor: Option<FloatOrInt<0, 100>>, } #[derive(knuffel::Decode, Debug, Default, PartialEq)] @@ -210,8 +210,8 @@ pub left_handed: bool, #[knuffel(child)] pub middle_emulation: bool, - #[knuffel(child, unwrap(argument), default = FloatOrInt(1.0))] - pub scroll_factor: FloatOrInt<0, 100>, + #[knuffel(child, unwrap(argument))] + pub scroll_factor: Option<FloatOrInt<0, 100>>, } #[derive(knuffel::Decode, Debug, Default, PartialEq)] @@ -3183,7 +3183,7 @@ left_handed: false, disabled_on_external_mouse: true, middle_emulation: false, - scroll_factor: FloatOrInt(0.9), + scroll_factor: Some(FloatOrInt(0.9)), }, mouse: Mouse { off: false, @@ -3194,7 +3194,7 @@ scroll_button: Some(273), left_handed: false, middle_emulation: true, - scroll_factor: FloatOrInt(0.2), + scroll_factor: Some(FloatOrInt(0.2)), }, trackpoint: Trackpoint { off: true, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/niri-0.1.10/niri-visual-tests/Cargo.toml new/niri-0.1.10.1/niri-visual-tests/Cargo.toml --- old/niri-0.1.10/niri-visual-tests/Cargo.toml 2024-11-09 15:57:52.000000000 +0100 +++ new/niri-0.1.10.1/niri-visual-tests/Cargo.toml 2024-11-13 08:39:54.000000000 +0100 @@ -11,8 +11,8 @@ adw = { version = "0.7.1", package = "libadwaita", features = ["v1_4"] } anyhow.workspace = true gtk = { version = "0.9.3", package = "gtk4", features = ["v4_12"] } -niri = { version = "0.1.10", path = ".." } -niri-config = { version = "0.1.10", path = "../niri-config" } +niri = { version = "0.1.10-1", path = ".." } +niri-config = { version = "0.1.10-1", path = "../niri-config" } smithay.workspace = true tracing.workspace = true tracing-subscriber.workspace = true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/niri-0.1.10/src/input/mod.rs new/niri-0.1.10.1/src/input/mod.rs --- old/niri-0.1.10/src/input/mod.rs 2024-11-09 15:57:52.000000000 +0100 +++ new/niri-0.1.10.1/src/input/mod.rs 2024-11-13 08:39:54.000000000 +0100 @@ -31,6 +31,7 @@ use smithay::utils::{Logical, Point, Rectangle, Transform, SERIAL_COUNTER}; use smithay::wayland::pointer_constraints::{with_pointer_constraint, PointerConstraint}; use smithay::wayland::tablet_manager::{TabletDescriptor, TabletSeatTrait}; +use touch_move_grab::TouchMoveGrab; use self::move_grab::MoveGrab; use self::resize_grab::ResizeGrab; @@ -540,6 +541,10 @@ } } Action::ConfirmScreenshot => { + if !self.niri.screenshot_ui.is_open() { + return; + } + self.backend.with_primary_renderer(|renderer| { match self.niri.screenshot_ui.capture(renderer) { Ok((size, pixels)) => { @@ -560,6 +565,10 @@ self.niri.queue_redraw_all(); } Action::CancelScreenshot => { + if !self.niri.screenshot_ui.is_open() { + return; + } + self.niri.screenshot_ui.close(); self.niri .cursor_manager @@ -1743,6 +1752,12 @@ fn on_pointer_axis<I: InputBackend>(&mut self, event: I::PointerAxisEvent) { let source = event.source(); + // We received an event for the regular pointer, so show it now. This is also needed for + // update_pointer_contents() below to return the real contents, necessary for the pointer + // axis event to reach the window. + self.niri.pointer_hidden = false; + self.niri.tablet_cursor_location = None; + let horizontal_amount_v120 = event.amount_v120(Axis::Horizontal); let vertical_amount_v120 = event.amount_v120(Axis::Vertical); @@ -1882,10 +1897,11 @@ } let scroll_factor = match source { - AxisSource::Wheel => self.niri.config.borrow().input.mouse.scroll_factor.0, - AxisSource::Finger => self.niri.config.borrow().input.touchpad.scroll_factor.0, - _ => 1.0, + AxisSource::Wheel => self.niri.config.borrow().input.mouse.scroll_factor, + AxisSource::Finger => self.niri.config.borrow().input.touchpad.scroll_factor, + _ => None, }; + let scroll_factor = scroll_factor.map(|x| x.0).unwrap_or(1.); let horizontal_amount = horizontal_amount.unwrap_or_else(|| { // Winit backend, discrete scrolling. @@ -2352,12 +2368,40 @@ return; }; + let serial = SERIAL_COUNTER.next_serial(); + let under = self.niri.contents_under(touch_location); if !handle.is_grabbed() { if let Some(window) = under.window { self.niri.layout.activate_window(&window); + // Check if we need to start an interactive move. + let mods = self.niri.seat.get_keyboard().unwrap().modifier_state(); + let mod_down = match self.backend.mod_key() { + CompositorMod::Super => mods.logo, + CompositorMod::Alt => mods.alt, + }; + if mod_down { + let (output, pos_within_output) = + self.niri.output_under(touch_location).unwrap(); + let output = output.clone(); + + if self.niri.layout.interactive_move_begin( + window.clone(), + &output, + pos_within_output, + ) { + let start_data = TouchGrabStartData { + focus: None, + slot: evt.slot(), + location: touch_location, + }; + let grab = TouchMoveGrab::new(start_data, window.clone()); + handle.set_grab(self, grab, serial); + } + } + // FIXME: granular. self.niri.queue_redraw_all(); } else if let Some(output) = under.output { @@ -2369,7 +2413,6 @@ self.niri.focus_layer_surface_if_on_demand(under.layer); }; - let serial = SERIAL_COUNTER.next_serial(); handle.down( self, under.surface,