厉害了:在客户端属性→按钮中消耗鼠标滚轮事件

在 Awesome 3.5.6 中,我已经配置了 mod 键 + 鼠标滚轮向前 / 向后来提升和降低焦点窗口,如下所示:

clientbuttons = awful.util.table.join(
  awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
  awful.button({ modkey }, 1, awful.mouse.client.move),
  awful.button({ modkey }, 3, awful.mouse.client.resize),
  awful.button({ modkey }, 4, function(c) c:raise() end),
  awful.button({ modkey }, 5, function(c) c:lower() end))

-- ...

awful.rules.rules = {
  -- 所有客户端都将符合此规则。
  { rule = { },
    properties = { border_width = beautiful.border_width,
                   border_color = beautiful.border_normal,
                   focus = awful.client.focus.filter,
                   raise = true,
                   keys = clientkeys,
                   buttons = clientbuttons } },
  -- ...

这很好用,但问题是 mod+button4 事件通过到达客户端。例如,在 Chrome 的情况下,浏览器窗口在升起或降低后滚动。

我的问题: 我应该如何让 Awesome 消耗鼠标事件并不传到客户端? 我尝试从 function(c) 返回 "true" 或 "false"(在其他情况下指示事件吞噬),但没有用。

点赞
用户1672598
用户1672598

有一个press(按下)和release(松开)回调函数。如果两个都设置了,那么事件不应该传播。如果它们仍然传播,用4.0测试一下。如果问题仍然没有解决,请报告一个bug。

https://awesomewm.org/apidoc/classes/awful.button.html

2017-01-20 11:21:16