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

Reply via email to