Commit Graph

80 Commits

Author SHA1 Message Date
Aleksei Bavshin
7735c80d0e
refactor(bar): Split GLS and raw layer-shell implementations
Extract two surface implementations from the bar class: GLSSurfaceImpl
and RawSurfaceImpl. This change allowed to remove _all_ surface type
conditionals and significantly simplify the Bar code.

The change also applies PImpl pattern to the Bar, allowing to remove
some headers and fields from `bar.hpp`.
2020-10-28 07:53:37 -07:00
Aleksei Bavshin
2b3d7be9cb
feat(bar): let gtk-layer-shell manage exclusive zone
Previous attempts to use auto exclusive zone from gtk-layer-shell failed
because gls was expecting real booleans (`TRUE`/`FALSE`) as set_anchor
arguments. With that being fixed, gtk_layer_auto_exclusive_zone_enable
makes gls handle everything related to the bar resizing.

The only remaining purpose of onConfigureGLS is to log warnings and bar
size changes; gtk-layer-shell code path no longer needs saved width_ or
height_ values.
2020-10-28 07:53:32 -07:00
Christoffer Noerbjerg
e9b2d275c8 added module group selectors for styling 2020-10-11 22:36:30 +02:00
Aleksei Bavshin
3663b9193d
refactor(bar): separate GTK event handlers for gtk-layer-shell
Cleanly separate resizing logic for gtk-layer-shell and manually managed
layer surface code.
2020-08-14 22:47:57 -07:00
Alex
e3fdd6d94a
fix: don't a warning for a width/height of 0 2020-07-12 11:57:47 +02:00
Alex
6e7f22ac3a fix: cancel thread and fix window close 2020-05-27 09:10:38 +02:00
Aleksei Bavshin
dd0144c3cd
fix(bar): set exclusive zone early for gtk-layer-shell
If the bar is using initial size from the config (i.e both width and
height are set and resize is not required), GtkWindow configure event
is is not emitted. Initialize exclusive zone earlier for that case.

Fixes #609
2020-03-04 06:56:25 -08:00
Aleksei Bavshin
dde700f2c9
feat: use gtk-layer-shell library for correct positioning of popups
To enable: use sway >= 1.2, compile waybar with `-Dgtk-layer-shell=enabled` meson option.
Original behavior could be restored at runtime by setting `"gtk-layer-shell": false` in waybar config.
2019-12-27 16:42:14 -08:00
Aleksei Bavshin
d1637d34cf
refactor: fetch outputs from Gtk::Display instead of wl_registry.
gtk-layer-shell wants Gdk::Monitor instead of wl_output;
change code to deal with Gdk objects and slightly simplify it.
Requires gtkmm 3.22.0+ (first release with Gdk::Monitor support).
2019-12-27 16:42:12 -08:00
HardDie
eb4c76f5e4 Toggle opacity 2019-11-28 20:28:28 +03:00
Aleksei Bavshin
529daedcec
fix: correct handling of margins on anchored axis 2019-09-01 01:08:15 -07:00
Aleksei Bavshin
089d1299c4
fix: correct calculation of exclusive zone 2019-09-01 01:08:07 -07:00
Jan Beich
712424f9a8 Unbreak build with fmtlib 6.0.0
In file included from ../src/factory.cpp:1:
In file included from ../include/factory.hpp:4:
../include/modules/clock.hpp:5:10: fatal error: 'fmt/time.h' file not found
 #include "fmt/time.h"
          ^~~~~~~~~~~~
In file included from ../src/bar.cpp:4:
In file included from ../include/factory.hpp:4:
In file included from ../include/modules/clock.hpp:3:
In file included from /usr/include/fmt/chrono.h:12:
/usr/include/fmt/locale.h:19:35: error: parameter type 'fmt::v5::internal::buffer' (aka 'basic_buffer<char>') is an abstract class
    const std::locale& loc, buffer<Char>& buf,
                                  ^
/usr/include/spdlog/fmt/bundled/core.h:238:16: note: unimplemented pure virtual method 'grow' in 'basic_buffer'
  virtual void grow(std::size_t capacity) = 0;
               ^
In file included from ../src/modules/sni/host.cpp:3:
/usr/include/fmt/ostream.h:22:9: error: expected member name or ';' after declaration specifiers
  buffer<Char>& buffer_;
  ~~~~~~^
/usr/include/fmt/ostream.h:25:19: error: expected ')'
  formatbuf(buffer<Char>& buf) : buffer_(buf) {}
                  ^
/usr/include/fmt/ostream.h:25:12: note: to match this '('
  formatbuf(buffer<Char>& buf) : buffer_(buf) {}
           ^
/usr/include/fmt/ostream.h:25:42: error: use of undeclared identifier 'buf'; did you mean 'prettify_handler::buf'?
  formatbuf(buffer<Char>& buf) : buffer_(buf) {}
                                         ^~~
                                         prettify_handler::buf
/usr/include/spdlog/fmt/bundled/format-inl.h:551:11: note: 'prettify_handler::buf' declared here
  buffer &buf;
          ^
2019-08-29 01:38:54 +00:00
James Edwards-Jones
ae88d6bc3c feat(bar): individual bars can be named for CSS
Allows CSS to select individual waybars when multiple are configured
2019-07-04 02:15:56 +01:00
James Edwards-Jones
4f3c38c542 feat(bar): add CSS class for window position 2019-07-04 02:15:50 +01:00
Alex
a6980fca7f feat: ellipsize modules 2019-06-28 14:16:09 +02:00
Alex
71a9a75aad refactor: remove fix workaround 2019-06-16 15:14:31 +02:00
razic
46e5dd93d4
adds the wl output name as a css class
now you can have a custom styling for each bar
2019-06-08 11:04:34 -07:00
Alex
070619fa34 revert: restore idle fix 2019-05-26 20:09:05 +02:00
Alex
2a9fa1a4b9 refactor(bar): onRealize, onMap 2019-05-25 17:50:45 +02:00
Lucas Lazare
51be97f9aa Adding spdlog 2019-05-18 19:44:45 -04:00
Alex
aa385e28b6 refactor: execute update on idle 2019-05-18 15:32:40 +02:00
Alex
9234be8544 revert: re-add rountrip before widgets setup 2019-05-17 14:45:02 +02:00
Alex
9d3255fe9f fix: remove redundant roundtrip 2019-05-17 14:41:12 +02:00
Alex
4688002f23 feat: margins 2019-05-09 15:10:13 +02:00
Alex
5bf0ca85ac refactor: try/catch around json parse 2019-05-09 10:30:54 +02:00
Eric Engestrom
4d4562aade fix s/hidded/hidden/ typo 2019-05-01 12:40:12 +01:00
Alex
79a5e9ecee feat: multiple bar with same process 2019-04-25 13:25:06 +02:00
Alex
9504b7ac03 fix(Bar): typo 2019-04-24 12:42:16 +02:00
Alex
311c34ecbc feat(Bar): handle widget size changes 2019-04-24 12:37:24 +02:00
Alex
171ecd53aa refactor(Bar): roundtrip before setup widgets 2019-04-19 11:56:40 +02:00
Alex
6ed8f94dab refactor: format code 2019-04-18 17:52:00 +02:00
Alex
807ef32357 refactor: format && better output management 2019-04-18 17:47:40 +02:00
Alex
9564adb5b4 refactor(Bar): avoid reinterpret_cast 2019-04-17 19:33:49 +02:00
Alex
ecc5f48dd7 feat: partially hide waybar on toggle 2019-04-15 11:11:16 +02:00
Alex
dda0cc793e fix: check vertical after parsing multiple outputs 2019-03-25 21:02:00 +01:00
Alex
47142a61ae feat: allow waybar to be positioned on left/right 2019-03-22 12:25:05 +01:00
hoellen
1f924c9c06
Merge branch 'master' into feat-rtsignal 2019-03-18 19:04:11 +01:00
hoellen
38fa7ceab1 add signalhandler for module update 2019-03-18 18:46:44 +01:00
Alex
22cddc5e26 refactor(workspaces): scroll output aware 2019-03-18 14:44:07 +01:00
Alex
2995da845d fix: config per output 2019-03-10 10:34:56 +01:00
Lucas Lazare
d0f56b7bdd Improving mouse buttons support
Adding support for middle, backward, and forward mouse buttons click events, adds config keys : "on-click-middle", "on-click-forward" and "on-click-backward"
Adding the key "format-alt-click" to choose what mouse clicks toggles the alternative format, when present. Possible values (in config): "click-right", "click-left", "click-middle", "click-forward", "click-backward". Other values have the same effect than "click-left". Previous behaviour was to toggle it whenever any click was registered and any click that was not handled by "on-click-right" or "on-click-left" occurred
2019-03-02 14:07:12 -05:00
Alex
01cec9fcb7 fix(bar): multi screens 2019-02-04 22:09:01 +01:00
Alex
0ddcf26a45 feat: output configuration 2019-02-01 21:45:59 +01:00
Alexis
399f61df98 refactor: proper modules destruction 2019-01-13 22:22:22 +01:00
Alexis
a17220054d feat(client): pefix module name on update error 2018-11-24 11:20:03 +01:00
Alexis
4cc48b3cfd fix(client): catch error on update 2018-11-24 11:13:52 +01:00
Victor Berger
2f6abfda59 Don't call layer_surface.set_size on configure 2018-11-03 13:16:13 +01:00
Alexis
7bca5fd6bd feat(Bar): add a warning about minimum height 2018-11-02 12:35:26 +01:00
Alex Maese
4b68840212 Fix #54 2018-11-01 16:00:38 -05:00