Commit Graph

1589 Commits

Author SHA1 Message Date
Uli Schlachter 3fbd16d9a3 wibox.layout.align: Correctly size second widget
In expand nodes "none" and "outside", the variable size_remains describes how
much space is available for the first/third widget. Everything else is used by
the second widget. Thus, fitting the second widget to anything involving
size_remains is wrong. Instead, this commit uses the correct value.

This also fixes a messed up argument order for horizontal align layouts.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-08-23 17:07:45 +02:00
Uli Schlachter 769d6acb64 Merge branch 'add-resize-option' of https://github.com/actionless/awesome 2015-08-23 17:05:30 +02:00
Uli Schlachter 564fae8934 Merge branch 'add_gears_matrix' 2015-08-23 15:36:55 +02:00
Uli Schlachter 56c22cde77 Merge branch 'widget_context' 2015-08-23 15:33:43 +02:00
Uli Schlachter cb34144bf8 Merge branch 'master' of https://github.com/kindlycat/awesome 2015-08-23 15:29:22 +02:00
Uli Schlachter 190beb3e8e Merge branch 'tooltips-replace-on-geometry-changes' of https://github.com/blueyed/awesome 2015-08-23 15:27:10 +02:00
Tim Roes 462055cb36 Add finish callback to awful.mouse.client.move 2015-08-22 14:50:42 +02:00
Daniel Hahler 05da320c28 tooltips: re-place them on width/height changes
If the dimensions of a tooltip change, e.g. after the text has been
changed, they are now placed again.
2015-08-14 15:41:43 +02:00
Daniel Hahler 66c4ff7f2c doc: awful.placement.no_offscreen 2015-08-14 14:28:17 +02:00
Daniel Hahler b600b143b6 tooltip: re-add `no_offscreen` back to `place`
The tooltip might be partly outside of the screen, and especially the
workarea, e.g. for tooltips on the tasklist.

Calling `awful.placement.no_offscreen` makes sure that it is fully
inside, and will even restrict it to the workarea, not only to the screen.

Closes https://github.com/awesomeWM/awesome/pull/409.
2015-08-14 14:28:06 +02:00
Daniel Hahler b33cffd851 doc: textbox:set_markup: link to Pango markup documentation 2015-08-13 16:13:22 +02:00
Grigory Mischenko d2407c3de1 Widget opacity: draw with alpha only if transparent 2015-08-13 12:26:43 +03:00
kindlycat 03663fe778 Add "opacity" property for widgets 2015-08-12 22:31:06 +00:00
Daniel Hahler f8ad2cd152 Merge pull request #320 from blueyed/widget-handle-non-int-geom
Drawin: handle non-integer margins / geometry

Closes https://github.com/awesomeWM/awesome/pull/320.
2015-08-12 16:38:33 +02:00
Daniel Hahler 57ec268b8e tasklist: handle transient_for with skip_taskbar clients
Ref: https://github.com/awesomeWM/awesome/issues/182
2015-08-12 14:31:16 +02:00
Daniel Hahler 1aa1c8052d Add client.get_transient_for_matching and .is_transient_for 2015-08-12 14:31:16 +02:00
Daniel Hahler 11473aa490 Use awful.util.round in beautiful.xresources.apply_dpi 2015-08-12 14:18:57 +02:00
Daniel Hahler fe235b7fb7 awful.wibox: round x/y/width/height wibox arguments
Ref: https://github.com/awesomeWM/awesome/pull/320#issuecomment-130212116
2015-08-12 14:14:14 +02:00
Daniel Hahler f5ed8848e7 Use awful.util.round in wibox.layout.flex 2015-08-12 14:10:10 +02:00
Daniel Hahler 977bd9a60e Add awful.util.round 2015-08-12 14:09:45 +02:00
Daniel Hahler 9cbab8fa08 Merge pull request #388 from blueyed/placement-next-to-mouse
Add placement.next_to_mouse, use it for tooltips.

Closes https://github.com/awesomeWM/awesome/pull/388.
2015-08-12 13:23:31 +02:00
Daniel Hahler 251673f8b2 tooltip: use new next_to_mouse placement
This should take care of not placing the tooltip outside of the screen
already, so the call to `awful.placement.no_offscreen` can be skipped.
2015-08-12 13:22:59 +02:00
Daniel Hahler 9803af1b1f Add awful.placement.next_to_mouse 2015-08-12 13:22:59 +02:00
Uli Schlachter 1ebc34b5e9 Widgets: Also add a context argument to :fit()
Together with the context argument to :draw(), this even allows widgets to have
DPI-dependant size.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-08-12 11:19:48 +02:00
Uli Schlachter 88b98789a0 Rename the first argument to :draw to "context"
Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-08-12 11:19:28 +02:00
Uli Schlachter 31b69dbe1a drawable: Use a context table as first argument to :draw()
This table contains the drawable, wibox and titlebar that we are drawing on, but
also includes the screen and the DPI of that screen. This allows widgets to
depend on the DPI in their rendering.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-08-12 11:17:48 +02:00
Uli Schlachter e5a9eef157 Widget drawing: Add a traceback on errors
Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-08-12 11:17:48 +02:00
Uli Schlachter d122b825ee gears.timer: Fix the traceback on errors
With the second argument being 2, the traceback will not include the error
handling function, but instead end at the actual place of the error.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-08-12 11:17:48 +02:00
Uli Schlachter 3685077291 rect_to_device_geometry: Use gears.matrix.transform_rectangle
Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-08-12 10:38:22 +02:00
Uli Schlachter 19b9bfc46e Move wibox.layout.rect_to_device_geometry to wibox.widget
Having two modules named "base" is confusing and "wibox.layout" doesn't contain
much useful stuff. This is a first step for removing wibox.layout by moving a
function which should only ever be used internally in awesome.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-08-12 10:38:22 +02:00
Uli Schlachter 16a1ef0f48 Add gears.matrix for working with cairo matrices
Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-08-12 10:38:22 +02:00
Uli Schlachter 74276b3a11 gears.timer: Add a note about GC'ing timers
Ref: https://github.com/awesomeWM/awesome/issues/216

Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-08-12 09:54:58 +02:00
Uli Schlachter 0367af2be9 gears.timer: Add simpler ways to start timers
This adds gears.timer.start(timeout, callback) that creates a timer object and
connects a callback to it, all in one go.

Additionally, this adds gears.timer.weak_start(timeout, callback). The weak
version still allows the callback function to be garbage collected and will then
stop the timer.

This was tested with the following code:

  require("gears.timer").start(0.3, function()
    print("ping")
    if collectgarbage("step", 500) then
      print("collection done")
      error("err")
    end
    return true end)
  require("gears.timer").weak_start(0.1, function()
    io.stdout:write(".")
    return true
  end)

After a full collection cycle, both timers are stopped. The first one is stopped
because of the error() that it generated. The second one is stopped because the
callback function was garbage collected.

Ref: https://github.com/awesomeWM/awesome/issues/216

Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-08-12 09:54:55 +02:00
Uli Schlachter a166f86864 Merge branch 'keyboardlayout_no_layout_entry' of https://github.com/psychon/awesome 2015-08-12 09:40:12 +02:00
actionless b47eabf4f0 feat(lib: awful: layout: suit: tile): add 'resize_jump_to_corner' 2015-08-12 00:12:15 +02:00
Daniel Hahler e47773933c Bump required lgi version to 0.7.1
Ref: https://github.com/pavouk/lgi/issues/41
Ref: https://github.com/awesomeWM/awesome/pull/392
2015-08-11 19:08:35 +02:00
Uli Schlachter 008cae50b2 awful.widget.keyboardlayout: Rename private members
I'm working on something that adds :layout functions to widgets. This clashes
with the keyboardlayout widget's use of an entry with this name. This change
adds an underscore as a prefix to the private data members of the
keyboardlayout.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-08-11 12:44:48 +02:00
Daniel Hahler 68b0fa243f Add "visible" property for widgets
Widgets with `visible = false` will not be drawn.

Closes https://github.com/awesomeWM/awesome/pull/326.
2015-08-10 23:09:07 +02:00
actionless d5818d0e1a feat(lib: awful: layout: suit: floating): add 'resize_jump_to_corner' 2015-08-07 18:50:08 +02:00
Daniel Hahler b028a0ba1d xresources.apply_dpi: use "round" instead of "ceil"
Given an outcome of e.g. 1.01 its more sane to use 1 than 2, especially
for `border_width`.

This uses the method from `wibox.layout.flex`.

Closes https://github.com/awesomeWM/awesome/pull/389.
2015-08-04 20:48:17 +02:00
Daniel Hahler 9883d3484d titlebar: add tooltips for icon buttons
This uses the button name in the tooltip's text.
2015-08-02 15:36:54 +02:00
Daniel Hahler 14e63fbcd7 awful.tooltip: do not hide when entering its wibox
Because of `placement.under_mouse` (and without
`placement.no_offscreen` fixing it), this will cause the tooltip to hide
immediately again.

There is no need for hooking into this signal, but this adds a click
handler to close the tooltip when clicking into it.
2015-08-02 15:36:54 +02:00
Daniel Hahler a8d224ef5c doc: fix for set_markup 2015-08-02 15:36:54 +02:00
Daniel Hahler 6880835c26 tooltip: delay_show: stop timer, handle (non-)stopped timers
This splits the logic for `delay_show` out of `show`/`hide`, and handles
an already stopped timer.  The timer gets also stopped after the tooltip
has been displayed.

Ref: https://github.com/awesomeWM/awesome/issues/371.
2015-08-02 15:36:54 +02:00
Daniel Hahler 9bcd87c727 awful.tooltip: skip set_geometry if not visible
`set_geometry` will be called in `show`, and is not necessary when the
tooltip is not visible.
2015-08-02 15:36:54 +02:00
Daniel Hahler 0ea2bbb126 awful.menu: use beautiful.xresources.apply_dpi for margins 2015-08-01 17:47:51 +02:00
Daniel Hahler 5c78cf07fc naughty: use beautiful.xresources.apply_dpi for margin and border 2015-08-01 17:47:43 +02:00
Daniel Hahler 4a3589aad4 widget.common.list_update: improve margins (dpi / imagebox)
Use `beautiful.xresources.apply_dpi` for `common.list_update`'s textbox
margins, and add a left margin for the imagebox, too.

The latter is useful/nicer with the default behavior of an inverted
style for the focused tasklist entry.
2015-08-01 17:39:48 +02:00
Daniel Hahler 09dce08fd4 gears.debug: add support for limited depth
This is useful with big tables and might even be necessary to prevent
infinite recursion.

To prevent the latter, the default is 10.

This adds an indicator when `depth` is reached for tables.

    awesome# return require("gears").debug.dump_return(t4, "", 2)
       string " : table: 0x1580130
      1 : table: 0x16951d0
        1 : wibox.widget.base (table) […]
        2 : wibox.widget.base (table) […]
        3 : 4 (number)
        4 : 5 (number)
        5 : foo (string)
      2 : table: 0x16ac790
        1 : table: 0x16951d0 (table) […]
      3 : table: 0x16cc500
        1 : table: 0x16951d0 (table) […]
        2 : table: 0x16ac790 (table) […]"

    awesome# return require("gears").debug.dump_return(t4, "", 1)
       string " : table: 0x1580130
      1 : table: 0x16951d0 (table) […]
      2 : table: 0x16ac790 (table) […]
      3 : table: 0x16cc500 (table) […]"

Closes https://github.com/awesomeWM/awesome/pull/372.
2015-08-01 11:24:35 +02:00
Daniel Hahler 896ab0a286 Merge pull request #376 from blueyed/more-tostring
More tostring metamethods for drawable and wibox
2015-08-01 11:22:04 +02:00