Add '--release' flag for bindsym in the bar block

i3bar's handle_button is modified to also handle XCB_BUTTON_RELEASE
events. During these button release events, only custom commands are
checked to avoid sending multiple workspace ipc messages.

The way this patch is implemented will allow to assign a custom command
for both the press and release of the same button:
bar {
  ...
  bindsym buttonX exec command1
  bindsym --release buttonX exec command2
}

Fixes #3068.
This commit is contained in:
Orestis Floros
2017-12-08 02:23:15 +02:00
parent ee0c016091
commit 315ff17563
10 changed files with 104 additions and 18 deletions

View File

@ -501,12 +501,16 @@ state BAR_WHEEL_DOWN_CMD:
-> call cfg_bar_wheel_down_cmd($command); BAR
state BAR_BINDSYM:
release = '--release'
->
button = word
-> BAR_BINDSYM_COMMAND
state BAR_BINDSYM_COMMAND:
release = '--release'
->
command = string
-> call cfg_bar_bindsym($button, $command); BAR
-> call cfg_bar_bindsym($button, $release, $command); BAR
state BAR_POSITION:
position = 'top', 'bottom'