(resending mail, seems the first try to send it failed - it never showed up in the mailing list) Hi Kim,
thanks for still maintaining e16! After not updating for ages - after all, e16 is pretty stable :) - I decided to update to the newest git version. Unfortunately, there is a regression for my use case: I am using multiple virtual desktops and switch between them using the mouse scroll wheel. Since I use several full-screen applications, I normally use this feature by moving the mouse cursor to the very top edge of the screen and then use the scroll wheel. However, this no longer works with newer e16 releases. I bisected and traced it to this commit: ------ commit dee8d4f36925f66f63925726b542289b18bef273 Author: Kim Woelders <[email protected]> Date: Fri Jul 22 06:33:52 2022 +0200 edge: Prevent pointer click and motion events propagating to root Avoids activating desk flips, root menus, and root window tooltips when clicking on or moving over the edge windows. ------ (And yes, did I mention that I haven't updated e16 for ages? :) ). If I revert this commit, all works again as expected. I can switch between desktops by going to the top edge of the screen and using the mouse wheel. I am not sure if this is a real regression, since the commit message makes it sound as if this is the intended behaviour. Anyway, I prepared a patch to make this configurable - see attachment. I have no clue about X programming or e16 code, all I did was moving the code from the above commit to a place where it's called on every change in the desktop settings menu. I also added a German translation to the de.po, but since I use English as my default language (German translation of computer stuff always sounds cringey to me) I can't comment on how good it is. Also, all changes were made by me, no AI used. So any mistakes and stupidities are mine. ;) Kind Regards and thanks for still maintaining the best version of the best window manager on this planet! Christian
From 74d8a4dfd1257243ca90303667e40c89fe96c461 Mon Sep 17 00:00:00 2001 From: Christian Klein <[email protected]> Date: Thu, 26 Mar 2026 09:27:24 +0100 Subject: [PATCH 1/2] edge: Make propagation pointer clicks and motion events to root window configurable. The behaviour was changed by commit dee8d4f36925f66f63925726b542289b18bef273. This commit makes the behaviour configurable in the "Virtual Desktop Settings". --- src/E.h | 1 + src/desktops.c | 8 ++++++++ src/edge.c | 9 +++++---- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/E.h b/src/E.h index 2c7fc454..29bdf604 100644 --- a/src/E.h +++ b/src/E.h @@ -161,6 +161,7 @@ typedef struct { int dragbar_length; int dragbar_ordering; char desks_wraparound; + char mute_desk_edge; char slidein; int slidespeed; int areas_nx; diff --git a/src/desktops.c b/src/desktops.c index 66ea567a..39932326 100644 --- a/src/desktops.c +++ b/src/desktops.c @@ -2731,6 +2731,7 @@ typedef struct { int edge_resist; DItem *area_text; char area_wraparound; + char mute_desk_edge; int prev_ax, prev_ay; Win awin; } AreaDlgData; @@ -2742,6 +2743,7 @@ _DlgApplyAreas(Dialog *d, int val __UNUSED__, void *data __UNUSED__) _DesksSetAreaSize(dd->area_x, dd->area_y); Conf.desks.areas_wraparound = dd->area_wraparound; + Conf.desks.mute_desk_edge = dd->mute_desk_edge; Conf.desks.edge_flip_mode = dd->edge_flip; if (dd->edge_resist < 1) dd->edge_resist = 1; @@ -2806,6 +2808,7 @@ _DlgFillAreas(Dialog *d, DItem *table, void *data __UNUSED__) DItem *di, *slider, *slider2, *table2, *radio; dd->area_wraparound = Conf.desks.areas_wraparound; + dd->mute_desk_edge = Conf.desks.mute_desk_edge; dd->edge_flip = Conf.desks.edge_flip_mode; dd->edge_resist = Conf.desks.edge_flip_resistance; @@ -2857,6 +2860,10 @@ _DlgFillAreas(Dialog *d, DItem *table, void *data __UNUSED__) DialogItemSetText(di, _("Wrap virtual desktops around")); DialogItemCheckButtonSetPtr(di, &dd->area_wraparound); + di = DialogAddItem(table, DITEM_CHECKBUTTON); + DialogItemSetText(di, _("Ignore events when mouse pointer is at the top of the desktop")); + DialogItemCheckButtonSetPtr(di, &dd->mute_desk_edge); + DialogAddItem(table, DITEM_SEPARATOR); di = DialogAddItem(table, DITEM_TEXT); @@ -3170,6 +3177,7 @@ static const CfgItem DesksCfgItems[] = { CFG_FUNC_INT(Conf.desks, areas_nx, 2, _AreasCfgFuncSizeX), CFG_FUNC_INT(Conf.desks, areas_ny, 1, _AreasCfgFuncSizeY), CFG_ITEM_BOOL(Conf.desks, areas_wraparound, 0), + CFG_ITEM_BOOL(Conf.desks, mute_desk_edge, 1), CFG_ITEM_INT(Conf.desks, edge_flip_mode, EDGE_FLIP_ON), CFG_ITEM_INT(Conf.desks, edge_flip_resistance, 25), diff --git a/src/edge.c b/src/edge.c index 5f62455f..8dec6b28 100644 --- a/src/edge.c +++ b/src/edge.c @@ -187,14 +187,10 @@ EdgeWindowCreate(int which, int x, int y, int w, int h) { static const char *const names[] = { "Edge-L", "Edge-R", "Edge-T", "Edge-B" }; - XSetWindowAttributes att; EObj *eo; eo = EobjWindowCreate(EOBJ_TYPE_EVENT, x, y, w, h, 0, names[which & 3]); ESelectInput(EobjGetWin(eo), EnterWindowMask | LeaveWindowMask); - att.do_not_propagate_mask = - ButtonPressMask | ButtonReleaseMask | PointerMotionMask; - EChangeWindowAttributes(EobjGetWin(eo), CWDontPropagate, &att); EventCallbackRegister(EobjGetWin(eo), EdgeHandleEvents, INT2PTR(which)); return eo; @@ -240,6 +236,11 @@ EdgeWindowShow(int which, int on) return; } + XSetWindowAttributes att; + att.do_not_propagate_mask = (Conf.desks.mute_desk_edge ? + ButtonPressMask | ButtonReleaseMask | PointerMotionMask : 0); + EChangeWindowAttributes(EobjGetWin(eo), CWDontPropagate, &att); + if (on) { EobjMoveResize(eo, x, y, w, h); -- 2.53.0
From cb5bb98d3354b860c298d6db89fc9d6f2464411c Mon Sep 17 00:00:00 2001 From: Christian Klein <[email protected]> Date: Thu, 26 Mar 2026 12:50:05 +0100 Subject: [PATCH 2/2] German translation update --- po/de.po | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/po/de.po b/po/de.po index 1444f6cf..312d5c75 100644 --- a/po/de.po +++ b/po/de.po @@ -635,6 +635,10 @@ msgstr "Desktop-Gleitgeschwindigkeit:" msgid "Wrap desktops around" msgstr "Virtuelle Desktops zyklisch durchlaufen" +#: src/desktops.c:2864 +msgid "Ignore events when mouse pointer is at the top of the desktop" +msgstr "Maus-Interaktionen am oberen Desktoprand ignorieren" + # src/settings.c:1858 #: src/desktops.c:2683 msgid "Display desktop dragbar" -- 2.53.0
_______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
