Skip to content

Multiple clicks sometimes required for UI buttons #1540

@scfarley

Description

@scfarley

What happens is that after I position the cursor over a button within a dialog box, I need to click a few times while moving the cursor over the button before the button receives the event.

I have noticed this in a few apps such as LibreOffice, KeepassXC, qt6ct and gtk4-demo.

My setup:

  • bspwm 0.9.12
  • FreeBSD 14
  • All windows are floating.

One way to reproduce:

  • Run qt6ct
  • Click the Fonts tab.
  • Click the ... to the right of General.
  • Move the cursor over either OK or Cancel button but NOT on top of the text or image.
  • While NOT moving the cursor, click multiple times with button1 of the mouse. The cursor may change if using a different Xcursor theme (i.e., Xcursor.theme: Vanilla-DMZ-AA).
  • Now, move the cursor a little and repeat the previous step. It should active. Sometimes, you need the cursor to go over the text or images within the button to make it work.

I believe the issue is a conflict between focus_follows_pointer and click_to_focus. If I disable focus_follows_pointer or set click_to_focus to none, it fixes the issue. Perhaps, some logic needs to happen under to cover where click_to_focus is ignored if focus_follows_pointer is set. For now, I will just set click_to_focus to none in my configuration. I also tested pointer_follows_focus, but it did not matter if it was enabled or not.

My new working config around the pointer:

bspc config click_to_focus          none
bspc config focus_follows_pointer   true
bspc config pointer_follows_monitor true

Scratch that workaround. This is better because it still allows me to still be able to click to raise a window.

bspc config ignore_ewmh_focus       true
bspc config focus_follows_pointer   true
bspc config pointer_follows_monitor true

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions