Commit Graph

71 Commits

Author SHA1 Message Date
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 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 1310815b6e alttab: Fix the top row 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 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 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 5271ffd35c Begin the big changes for 3.6
Lots of things will break, hopefully for the better (eventually)

This commit use new upstream APIs:

 * Many cairo paths have been replaced with gears.shape and gears.matrix

This commit add some features:

 * Improved border_color support, now available per state
 * bg_image support, now available per state
 * Mutualize the state setting, remove duplicated code

Regressions:

 * The arrow menu background border is off by a pixel
 * The layout position problem reported by @mindeunix is now worst.

The positioning algo is full of race conditions and cannot be fixed
without a full rewrite. This commit break more things than it solve
and the code is in the middle of a transition. This will be solved
by future commits addressing the code quality (after the refactoring).
2016-12-25 21:59:23 -05:00
Emmanuel Lepage Vallee 3167affe99 overlay: Re-write for the new widget system
**WARNING**: this break the API
menu.overlay -> menu.draw_overlay

The new "overlay" behave like underlay, but is on top

This commit also add underlay/overlay "align" option and document
the feature properly.
2016-12-25 21:59:23 -05:00
Emmanuel Lepage Vallee cf9bb87b36 Port to the new Awesome widget system
This commit fix most issues introduced by the new widget system. It
is not production ready and will require multiple commits to fix
individual issues.

The new widget system is better suited for modules like Radical than
the previous one. Over time, this breakage will probably end up being
a good thing. However, for now, expect multiple errors.

The changes:

 * The draw "wibox" argument is now a "context". "context.wibox" is
   the equivalent. This will allow passing the Radical structure to
   the draw method without storing it in the widgets.
 * "fit" now have a new required "context" argument for the DPI, this
   will allow removing the "default_height" variable Radical is using
   to scale the UI on HIDPI systems. This will allow size policies to
   be passed to the fit method
 * "draw" has been splitted into "draw", "draw_before_children",
   "draw_after_children" and "layout". This simplify the overlay
   system and will allow cleaner code
 * Drawing outside of the widget clip is no longer supported, this
   break multiple Radical item.style. This will allow better
   performance and less redraw once the new system issues have been
   fixed
2016-12-25 21:59:23 -05:00
Emmanuel Lepage Vallee 698ca53762 Fix nil dereference 2015-03-13 00:15:21 -04:00
Emmanuel Lepage Vallee e65ae86d1d alttab: Prevent toggle from other screens 2015-03-08 18:37:32 -04:00
Emmanuel Lepage Vallee 1257ac228e Add a color namespace helper method
This will allow implementations to use their own colors without
redefining them by hand
2014-12-30 17:28:01 -05:00
Emmanuel Lepage Vallee 7b071fb7d1 Add an helper function to generate a layout switcher item 2014-12-29 23:28:45 -05:00
Emmanuel Lepage Vallee 80bdbcca68 Add 'add_items' and 'add_widgets' methods 2014-12-28 22:23:59 -05:00
Emmanuel Lepage Vallee 5768d4729c Improve tag/tasklist theming options 2014-12-24 00:53:09 -05:00
Emmanuel Lepage Vallee 8fe10a1a9d Use betters maths for the Radial menu
The old version is terrible... How much did I drink when I made
that... Well, it was when I was unexperienced with cairo, but...
Anyway, the new maths will eventually allow to use hinting
and Pango with good results. There is also less magic constants.
2014-12-18 16:13:10 -05:00
Emmanuel Lepage Vallee 79dcd66b7b Add a basic tag switching menu 2014-11-30 23:25:40 -05:00
Emmanuel Lepage Vallee 03090fa2ec Add a bunch of skining options 2014-11-14 23:46:06 -05:00
Emmanuel Lepage Vallee 1a7630e437 Add default_item_margins and default_margins 2014-10-17 23:52:26 -04:00
Emmanuel Lepage Vallee 9d8bcc3882 Clean the arrow layout code
It was my first cairo code ever, I got better ;)
2014-10-11 03:11:20 -04:00
Emmanuel Lepage Vallee 26814e77ee Display a screenshot after 1.5 second when hovering the tasklist 2014-10-05 18:04:03 -04:00
Emmanuel Lepage Vallee 114cbd23be Add a client screenshot atomic menu 2014-10-05 18:03:19 -04:00
Emmanuel Lepage Vallee 9a78433e1e Fix Alttab module when used without my config 2014-08-09 23:45:03 -04:00
Emmanuel Lepage Vallee 7e4b6ef81e Highlight the client border when hovering in mod4+tab 2014-08-08 02:00:49 -04:00
Emmanuel Lepage Vallee 1662a013dc Bug fixes 2014-07-27 19:20:04 -04:00
Emmanuel Lepage Vallee 72e9fea65b Fix multiple minor bugs/regressions 2014-05-31 23:45:46 -04:00
Emmanuel Lepage Vallee d090699596 Fix some alt+tab bugs 2014-04-30 23:44:36 -04:00
Emmanuel Lepage Vallee 40e41d508d Fix an awesome crash when using the tasklist 2014-04-19 21:38:28 -04:00
Emmanuel Lepage Vallee 63085be479 Fix scrolling on the tasklist 2014-04-18 23:33:13 -04:00
Emmanuel Lepage Vallee d9a82c87a4 Support multiple tags at once in the tasklist 2014-04-15 22:55:23 -04:00
Emmanuel Lepage Vallee 8da00cbd65 Add new notification item layout, improve extensions 2014-04-08 23:38:31 -04:00
Emmanuel Lepage Vallee e1656169a2 Add partial support for taglist extensions (issue #25) 2014-04-01 23:42:02 -04:00
Emmanuel Lepage Vallee 0b7e043156 Groundwork necessary to add random widgets to the tasklist (issue #23) 2014-03-29 22:56:09 -04:00
Emmanuel Lepage Vallee 03578bc71e Add highlighting to altTab 2014-03-28 02:13:12 -04:00
Emmanuel Lepage Vallee f461d0316a Implement tag menu highlight (issue #22) 2014-03-28 01:25:09 -04:00
Emmanuel Lepage Vallee 5efc2d89e0 Fix arrow menu, improve tag/task menu 2014-03-26 23:21:42 -04:00
Emmanuel Lepage Vallee ef7e46f865 Improve dynamic menu speed 2014-03-26 16:18:59 -04:00
Emmanuel Lepage Vallee 700714eb1e Fix a bee04c14bc regression 2014-03-26 00:21:42 -04:00
Emmanuel Lepage Vallee ca8801aa11 Move the signals menu to its own file (issue #21) 2014-03-24 00:58:19 -04:00
Emmanuel Lepage Vallee 61099cef80 Add a basic tag menu 2014-03-24 00:37:49 -04:00
Emmanuel Lepage Vallee 801d2ca2b4 Move the tag menu to a new file (issue #21) 2014-03-23 23:34:44 -04:00
Emmanuel Lepage Vallee bee04c14bc Fix issue #11, break API, may cause regressions 2014-03-22 17:35:43 -04:00
Emmanuel Lepage Vallee d8e220a7bb Fix bugs with sub menu, embed menu and scrolling 2014-03-21 23:20:50 -04:00
Emmanuel Lepage Vallee dbf1865055 Add a more reliable (but hacky) tag tracking system 2014-03-20 22:50:06 -04:00
Emmanuel Lepage Vallee 02865234a1 tasklist: Support multiple screens 2014-03-19 23:13:55 -04:00
Emmanuel Lepage Vallee 76ea448b2d Add and document more beautiful values for [tag,task]lists 2014-03-15 01:22:09 -04:00
Emmanuel Lepage Vallee 162483dade Fix multiple taglist issue 2014-03-14 23:51:26 -04:00
Emmanuel Lepage Vallee 231eef25bc Add global underlay support 2014-03-12 00:31:50 -04:00