Commit Graph

246 Commits

Author SHA1 Message Date
Emmanuel Lepage Vallee a58ac33afb smart_wibox: Do not call set_position when the area reamin the same.
This is a band-aid on top of deeper issues when layout_changed is
wrongly called. This should prevent menus moving in random places
when the mouse is moved. Note that this commit wont stop them from
moving when their size really change.

This is harder to fix as all the "outside of the workarea" checks
still need to be performed and in many cases, such as async loaded
menus, the move itself is really necessary while in others it is
unwanted.
2016-12-25 21:59:55 -05:00
Emmanuel Lepage Vallee 3488622ac3 widgets: Add a slider widgets
Requires a recent Awesome version.
2016-12-25 21:59:55 -05:00
Emmanuel Lepage Vallee 1a02eb0b93 infoshape: Misc fixes 2016-12-25 21:59:55 -05:00
Emmanuel Lepage Vallee b0f5c663e6 common: Re-use icon_per_state 2016-12-25 21:59:55 -05:00
Emmanuel Lepage Vallee 26a6c05d5e dock: Do not use ontop for persistent docks 2016-12-25 21:59:55 -05:00
Emmanuel Lepage Vallee ddadf6bd3e grid: Fix some bugs 2016-12-25 21:59:55 -05:00
Emmanuel Lepage Vallee f61feaff46 dock: Use floor instead of ceil for the optimal size
In case of a "0" margin, this caused the dock to be taller than
the workarea.
2016-12-25 21:59:55 -05:00
Emmanuel Lepage Vallee 687e21dcdc dock: Track workarea changes 2016-12-25 21:59:55 -05:00
Emmanuel Lepage Vallee 0618a8d18c item.layout: Use the checkbox widget 2016-12-25 21:59:55 -05:00
Emmanuel Lepage Vallee 7600e4b888 widget: Rewrite the checkbox as a 'real' widget
It was previously an image used by imagebox. This doesn't
support multi DPI and was an artefact of Awesome 3.4.
2016-12-25 21:59:55 -05:00
Emmanuel Lepage Vallee 9be99465f2 grid: Use the 'real' grid layout 2016-12-25 21:59:50 -05:00
Emmanuel Lepage Vallee 30084a84d5 widgets: Add a grid layout [WIP]
In a quest to get rid of all fit/draw monkeypatching, this
commit add a proper grid layout. It is currently as good
as the old layout/grid.lua hack, but not "correct" used outside
of Radical menus (swap/insert/remove are also broken) and it
fail to handle many corner case.
2016-12-25 21:59:50 -05:00
Emmanuel Lepage Vallee b850b334ba layoutmenu: Fix a porting error 2016-12-25 21:59:50 -05:00
Emmanuel Lepage Vallee 2e9e7b1851 sub-menu: Fix horizontal item arrow 2016-12-25 21:59:50 -05:00
Emmanuel Lepage Vallee 1c34c56d0b base: Remove setup_drawable callback
As this was the last step in the base constructor, it could be
done in each menu type without the callback and extra code.

The only reason this existed was to allow menu "sub classes"
that override this function. However, since this was rewritten,
it was no longer used, so for the sake of simplicity, I remove
this feature.
2016-12-25 21:59:50 -05:00
Emmanuel Lepage Vallee 84f19c51a1 scroll: Fix scroll-up 2016-12-25 21:59:50 -05:00
Emmanuel Lepage Vallee 5c05c431e7 piechart: Drop cache mechanism and update indentation 2016-12-25 21:59:50 -05:00
Emmanuel Lepage Vallee dfa69714f5 piechart: Fix cache and update API 2016-12-25 21:59:50 -05:00
Emmanuel Lepage Vallee 1ca9bb2f26 fkey: Rewrite (with some more sanity) 2016-12-25 21:59:50 -05:00
Emmanuel Lepage Vallee eaa389bd5f widgets: Add text widget
Automatic text scaling to fill an area
2016-12-25 21:59:50 -05:00
Emmanuel Lepage Vallee 825ff024ef More bug fixes
This is a step forward to stabilize Radical again. Most of impl/ and widgets/
code is still a mess, but the other modules slowly start to be maintainable
again. The road is still long before the Radical code is good enough to go
into Awesome. It will get there, eventually.
2016-12-25 21:59:50 -05:00
Emmanuel Lepage Vallee f3124b761d quality: Fix more luacheck warnings
And remove unmaintained and broken files
2016-12-25 21:59:50 -05:00
Emmanuel Lepage Vallee 2d0a957506 quality: Begin to fix luacheck warnings 2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee 6244ed7c26 api: Update file to match new upstream Awesome APIs
Also has some bug fixes mixed in the patch.

The Radical placement API is now fully upstreamed.
2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee 7506a8f49d base: Fix scroll, filter and embedded menus 2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee ffd1e8003a base: Fix item filtering 2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee 1310815b6e alttab: Fix the top row 2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee 9649f04314 Fix the fkey widget 2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee aeb9aeb1b8 impl: Adapt to new upstream API changes
* The screen API was broken
 * Many awful.tag, client and screen methods were deprecated
2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee e18f664de0 placement: Add more methods 2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee b3fa0b9a23 placement: Fix more regressions from the re-write 2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee cbc5e6919f placement: Re-introduce many placements features lost during the re-write
The menu can be attached to a widget or the mouse again, and more

This commit also fix some tasklist/taglist issues and introduce minor
features like item.shape.
2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee ac402846a3 infoshapes: Fix borders 2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee b167117958 bar: Support border color
Apparently this never worked as documented
2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee 21f735600c dock: Fix a race condition
The size wasn't always right
2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee b65ddbed0e cleanup: Remove duplicated logic 2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee 0be013f1f7 filter: Rewrite the filter widget 2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee 9ea34d4003 cleanup: Mutualize some code and fix embed menus 2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee 2af6ad83e2 item.layout.centerred: Fix regressions 2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee b528ec9730 box: Fit position 2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee d43e1170d1 context: Fix some regressions 2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee f48ede52f9 cleanup: Port scrolling to Awesome 3.6 visible widget API
It still doesn't work, but at least there is no logic duplication
with Awesome anymore.
2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee a1abd2f57a cleanup: Remove overlay/underlay hacks, re-implement as widgets container
There is a new widget called `infoshapes`. It support all the features
from the underlay system, but is a lot less intrusive. This allow to
make some code simpler.

This is another step in getting rid of all the hacks.
2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee f239ee9a24 Rewrite the view layer
Radical is a model-view framework. There is a common API to
set data, then view modules to display it. Those modules have
been rewritten on top of new APIs.

Not all features are yet re-integrated, most are. Future commits
will address the various regressions and missing features. This
time, the code should be maintainable. The whole separation of
concerns analysis has been re-done. Allowing code de-duplication
and generalization.

The API remain the same, only `set_menu` has changed a little to
allow merging the 2 sub-menu code paths.
2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee 1711d28dcd Add new helper modules.
This commit begin to merge the Radical "view" rewrite.

Those module API replace previously hardcoded positioning
logic. Some code may eventually be upstreamed once mature
enough.
2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee dafac374fa Fix compatibility with LGI 0.9
Also add a 1px padding for checkboxes
2016-12-25 21:59:37 -05:00
Emmanuel Lepage Vallee 760bc05da4 refactor: Port radical.layout.horizontal to the declarative syntax
These commits dont make the code any smaller or more readable by
themselves. However, they are one step along many to refactor the
code to become more readable and simpler.

Eventual addition will extend the declarative syntax and merge it
with Radical own syntax (this will break the API a little due to
naming conflitcs).

I will also split the theme details from the declarative syntax and
use a separate "chain of responsability" meta-object to handle it.
2016-12-25 21:59:23 -05:00
Emmanuel Lepage Vallee e1447e90b5 refactor: Port radical.item.layout.centerred to the declarative syntax 2016-12-25 21:59:23 -05:00
Emmanuel Lepage Vallee aee39eba87 refactor: Port radical.item.layout.icon to the declarative syntax 2016-12-25 21:59:23 -05:00
Emmanuel Lepage Vallee 01e961dd11 refactor: Port radical.item.layout.horizontal to the declarative syntax 2016-12-25 21:59:23 -05:00