On Sun, Nov 14, 2021 at 04:51:26PM +0000, Thomas Adam wrote: > On Sun, Nov 14, 2021 at 04:50:23PM +0100, Dominik Vogt wrote: > > Current situation for me: At least 90% of all paging situations > > are accidents. > > Yeah, and it gets even worse if you happen to use paging with > 'DesktopConfiguration per-monitor' as well. > > > Maybe that feature ist just crap and we need a different mechanism > > to trigger paging. Like holding down Shift while moving etc. > > I'd like to see this. I know it's a departure from how we've always handled > paging, but I find myself doing things like: > > EdgeScroll 0 0 > > For all the reasons you've previously mentioned, Dominik, I like to be able to > sometimes flip pages using panframes but find it so utterly annoying I turn > that off, and then end up not using pages, but rather desks -- hence it's > equivalent to just me using a 'DesktopSize 1x1'. > > I say we should implement this change and see how it works in practise. If > enough people don't like it, I'm sure they'll let us know. :)
Good, so it's not just me. :-) What do you think about the attached patch? Pressing "Alt" during an interactive move already disables snapping. It's easy to make it enable paging without any delay too. I like it. You can say style * edgemovedelay (to disable paging during normal moves), then press Alt for a second to switch pages, then release Alt to go back to normal mode. Ciao Dominik ^_^ ^_^ -- Dominik Vogt
From 71351bc92e6dc2876dd448103d7653235f7786cd Mon Sep 17 00:00:00 2001 From: Dominik Vogt <dominik.v...@gmx.de> Date: Sun, 14 Nov 2021 23:56:12 +0100 Subject: [PATCH] Pressing Alt during "Move" enables immediate paging. --- fvwm/move_resize.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/fvwm/move_resize.c b/fvwm/move_resize.c index 4d49b63e..ede54fe5 100644 --- a/fvwm/move_resize.c +++ b/fvwm/move_resize.c @@ -2734,6 +2734,7 @@ Bool __move_loop( XEvent le; int x; int y; + int delay; UPDATE_FVWM_SCREEN(fw); @@ -2741,10 +2742,10 @@ Bool __move_loop( xl -= XOffset; yt -= YOffset; - + delay = (do_snap) ? fw->edge_delay_ms_move : 0; rc = HandlePaging( &le, dx, dy, &xl, &yt, &delta_x, &delta_y, - False, False, True, fw->edge_delay_ms_move); + False, False, True, delay); /* Fake an event to force window reposition */ if (delta_x) @@ -3070,15 +3071,17 @@ Bool __move_loop( if (paged == 0) { XEvent le; + int delay; + delay = (do_snap) ? + fw->edge_delay_ms_move : 0; xl = e.xmotion.x_root; yt = e.xmotion.y_root; fev_get_last_event(&le); HandlePaging( &le, dx, dy, &xl, &yt, &delta_x, &delta_y, False, - False, False, - fw->edge_delay_ms_move); + False, False, delay); if (delta_x) { x_virtual_offset = 0; -- 2.30.2