Looks like I have hit a bug with awful.tooltip.

Tooltip creation:


    gmailwidget = wibox.widget.textbox()
    gmailwidget_t = awful.tooltip({ objects = { gmailwidget, mailicon
}, timer_function = function () return 'meh' end})


Now when I point my mouse at `gmailwidget` or `mailicon`, I get the
following backtrace:

W: awesome: luaA_dofunction:108: error while running function
stack traceback:
        [C]: ?
        /usr/local/share/awesome/lib/awful/placement.lua:113: in function
'no_offscreen'
        /usr/local/share/awesome/lib/awful/tooltip.lua:74: in function 'place'
        /usr/local/share/awesome/lib/awful/tooltip.lua:85: in function 
'set_geometry'
        /usr/local/share/awesome/lib/awful/tooltip.lua:213: in function
'timer_function'
        /usr/local/share/awesome/lib/awful/tooltip.lua:107: in function 'show'
        /usr/local/share/awesome/lib/awful/tooltip.lua:196: in function 'func'
        /usr/local/share/awesome/lib/gears/object.lua:71: in function 
'emit_signal'
        /usr/local/share/awesome/lib/wibox/init.lua:177: in function 
'emit_difference'
        /usr/local/share/awesome/lib/wibox/init.lua:202: in function 'func'
        /usr/local/share/awesome/lib/gears/object.lua:71: in function 
'emit_signal'
        /usr/local/share/awesome/lib/wibox/init.lua:214: in function
</usr/local/share/awesome/lib/wibox/init.lua:213>
error: /usr/local/share/awesome/lib/awful/placement.lua:113: bad
argument #2 to '?' (number expected, got nil)

So I looked into placement.lua, line 113, which is:

    local screen_geometry = capi.screen[c.screen].workarea

There is only one argument in there, `c.screen`. So I put a print
statement there:

    print(' **** in placement.no_offscreen *** ')
    print(c.screen)
    print(' **** ')

Compiled and re-installed awesome. And, lo:

...
 **** in placement.no_offscreen ***
nil
 ****
...

WTF! `c.screen` is nil.

So I went looking in tooltip.lua to see how tooltip is created and the
screen is set. Looks like the following line in the function `show`:

        self.wibox.screen = mouse.screen

I added some print statements there:

    print(' **** in tooltip.show **** ')
    print(mouse.screen)
    print(self.wibox.screen)
    self.wibox.screen = mouse.screen
    print(self.wibox.screen)
    print(' **** ')

Compiled and re-installed awesome. And the output this time is pretty weird:

...
 **** in tooltip.show ****
1
nil
nil
 ****
...

How would you explain that?

-- 
Anurag Priyam

-- 
To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.

Reply via email to