Xfce Forum

Sub domains
 

You are not logged in.

#1 2024-11-02 05:15:48

colecf
Member
Registered: 2024-11-02
Posts: 2
LinuxChrome 128.0

Focus window but don't send click to application

Hi,

One of the features I miss from Mac OS is that when an inactive window is clicked, it's just focused/raised, but the click doesn't affect the underlying application at all. (buttons aren't pressed, the scrollbar won't scroll if clicking in its gutter, links in browsers aren't followed, etc) I find that without it, I have to treat inactive windows carefully to ensure I'm clicking on them to raise them, but not clicking on anything important.

Is this something that's possible to implement in XFCE? Or is it something that's controlled by X11/wayland? I briefly looked into xfmw4's code, and saw that button1Action calls clientSetFocus/clientRaise, but didn't see anything about passing the button event to the application.

I'd be interested in contributing this feature if it's feasible, or even just maintaining my own patches for my own use, but I don't have much of a clue on how to get started. Any pointers would be appreciated. It's a hard topic to google because I don't think there's good terminology for it. I also haven't seen this feature on Windows or any other Linux desktop environments, it's pretty exclusive to Mac OS as far as I can tell.

Thanks!

Last edited by colecf (2024-11-02 06:31:26)

Offline

#2 2024-11-02 10:08:23

eriefisher
Member
From: ON, Canada
Registered: 2008-10-25
Posts: 527
LinuxFirefox 132.0

Re: Focus window but don't send click to application

Two solutions.

1. Just click on empty space in a window. Which is about 95% of most windows.

2. ALT-TAB to cycle through open windows. Stop on the one you want.


Siduction
Debian Sid
Xfce 4.18

Offline

#3 2024-11-05 02:53:35

colecf
Member
Registered: 2024-11-02
Posts: 2
LinuxChrome 128.0

Re: Focus window but don't send click to application

I have learned that KDE plasma actually has this feature, so it should be possible to implement at the desktop environment level:

6CWPgkc.png

Added later 6 h 49 min 20 s:
I found a small patch to xfwm4 that appears to do what I want, I'll use it for a while and see if I can find any bugs:

diff --git a/src/events.c b/src/events.c
index 33d67ccf8..0ad711f98 100644
--- a/src/events.c
+++ b/src/events.c
@@ -1039,6 +1039,9 @@ handleButtonPress (DisplayInfo *display_info, XfwmEventButton *event)
             {
                 if (!(c->type & WINDOW_TYPE_DONT_FOCUS))
                 {
+                    if (clientGetFocus() != c) {
+                        replay = FALSE;
+                    }
                     clientSetFocus (screen_info, c, event->time, NO_FOCUS_FLAG);
                 }
                 if ((screen_info->params->raise_on_click) ||

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 8 queries executed - Memory usage: 524.59 KiB (Peak: 525.21 KiB) ]