We use lua_class_t pointer as key in the registry to store metatable we
will compare.
lauxlib uses a string, which sucks, because it forces to do a
pushliteral() each time you want to get a metatable from the registry,
which is slower.
Signed-off-by: Julien Danjou <julien@danjou.info>
Basically, we get the size we want the systray to be drawn at upon drawing
the tray, thus removing the query to the xcb_get_geometry function. As all
windows embedded in the systray are squares, their size is equal to their
height, so we simply force the size to be wibox_height * n x wibox_height,
where n is the number of embedded windows, instead of deriving it from the
largest embedded window (which, for example in the case of wicd, would be
200x200, way too much for one window on a regular wibox).
Signed-off-by: Gregor Best <farhaven@googlemail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
This commit adds a function called extents() to widgets. In the case of
a systray, it takes the systray's screen as its argument to correctly
calculate the width. By default, 1 is assumed. For all other widgets,
the argument can be ommitted.
The function doesn't return the geometry as drawn, instead it returns
the geometry the widget _wants_ to be drawn at, for example an imagebox
always has (image width, image height) as the return values even if it's
drawn with a smaller width and height on a smaller wibox.
Signed-off-by: Gregor Best <farhaven@googlemail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
In each widget's *_geometry function, two warnings were generated, e.g.:
warning: ‘geometry.y’ is used uninitialized in this function
warning: ‘geometry.x’ is used uninitialized in this function
Found by gogonkt with GCC 4.2.4 on gentoo.
Signed-off-by: Uli Schlachter <psychon@znc.in>
resizing graph widgets (by setting the width parameter) was failing to
update the caches draw_to and draw_from. I have attached a 2-line patch
remedying this. The bug wasn't caught earlier because the default size,
80, is bigger than what people typically use.
Signed-off-by: Julien Danjou <julien@danjou.info>
Pretty much every single source file needs this struct, so it makes sense to
define it in a common header instead of in every single .c file.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
- background images of textbox widgets can now be aligned vertically
to the bottom and middle aswell as the top
Signed-off-by: Julien Danjou <julien@danjou.info>
The computer is smart, and the compiler also.
Should fix:
widgets/progressbar.c:451: warning: array subscript has type `char'
Signed-off-by: Julien Danjou <julien@danjou.info>