John Fredriksson
f573e32d0b
bar: Fix crash when unplugging HDMI
...
There is a double delete situation which causes a SIGSEGV to happen
during destruction of bar.
This was introduced by the group feature patch.
The same object pointer is stored in two different vectors of
unique_ptr<AModule> element. Replace with shared_ptr to handle
reference counting correctly and avoid double delete.
2021-12-05 10:55:07 +01:00
Alex
05f7727dae
Merge branch 'master' into swaybar-ipc
2021-12-01 11:48:03 +01:00
Nicolas Joyard
0c18e57937
add group feature
2021-11-25 12:01:17 +01:00
Aleksei Bavshin
7aaa3df701
feat(bar): add config flag to disable exclusive zone
2021-05-21 22:44:18 -07:00
Aleksei Bavshin
729553d3bc
feat(bar): add config flag for pointer event passthrough
2021-05-21 22:44:17 -07:00
Andreas Backx
0233e0eeec
Added waybar_output.identifier support.
...
Resolves #602 .
2020-12-25 20:54:38 +00:00
Aleksei Bavshin
9c566564e1
fix(bar): address some of RawSurfaceImpl resizing issues
2020-10-28 08:22:26 -07:00
Aleksei Bavshin
fc5906dbd4
feat(bar): change layer to `bottom` when hidden
...
Invisible bar on a `top` layer would still intercept pointer events and
stop them from reaching windows below. Always changing the layer to
to `bottom` along with making bar invisible would prevent that.
2020-10-28 08:18:49 -07:00
Aleksei Bavshin
591a417b7d
fix(bar): rework surface commit calls for RawSurfaceImpl
...
wayland log shows that some changes were committed twice and some
weren't committed until the next redraw.
2020-10-28 08:14:57 -07:00
Aleksei Bavshin
f97de599dd
refactor: header cleanup
...
Replace a couple of header includes with forward declarations.
2020-10-28 08:08:03 -07:00
Aleksei Bavshin
f01996ae99
fix(bar): CamelCase SurfaceImpl method names
2020-10-28 08:07:40 -07:00
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
23e5181cac
feat(swaybar-ipc): add swaybar IPC client
2020-10-19 19:34:48 -07:00
Aleksei Bavshin
52361ed360
refactor(bar): make setVisible switch between "default" and "invisible" modes
2021-11-21 11:00:57 -08:00
Aleksei Bavshin
6d2ba7a75b
feat(bar): store modes as a map of presets
...
This allows to apply the mode atomically and adds possibility of
defining custom modes (to be implemented).
2021-11-19 19:29:51 -08:00
Aleksei Bavshin
03a641ed83
feat(bar): support swaybar `mode` for configuring window
...
Use `mode` (`waybar::Bar::setMode`) as a shorthand to configure bar
visibility, layer, exclusive zones and input event handling in the same
way as `swaybar` does.
See `sway-bar(5)` for a description of available modes.
2021-09-15 22:35:50 +07: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
6e7f22ac3a
fix: cancel thread and fix window close
2020-05-27 09:10:38 +02: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
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
Alex
bb99e6cf5b
fix: check before destroy
2019-07-15 10:06:01 +02:00
Alex
340ec7be91
refactor: AModule
2019-06-15 14:57:52 +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
4688002f23
feat: margins
2019-05-09 15:10:13 +02: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
47142a61ae
feat: allow waybar to be positioned on left/right
2019-03-22 12:25:05 +01:00
hoellen
38fa7ceab1
add signalhandler for module update
2019-03-18 18:46:44 +01:00
Jonas
d708ce2be9
Add idle inhibitor module
2019-02-22 16:55:46 +01: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
Robinhuett
29a2ee1744
refactor: Replace all occurencec of gtkmm.h and only use the necessary headers
2019-01-08 21:05:44 +01:00
Alexis
691fb88057
refactor(modules): const bar
2018-12-01 00:10:41 +01:00
Alexis
0b1b0eb1a7
feat(tray): multiple hosts
2018-11-22 16:20:49 +01:00
Alex
49232eed8d
Clean ( #31 )
2018-08-20 14:50:45 +02:00
Alex
6705134034
Handle screens disconnection ( #29 )
2018-08-19 13:39:57 +02:00
Alex
6635548d3e
Style code ( #25 )
2018-08-16 14:29:41 +02:00
Alexis
8d5b61a9fd
refactor(bar): default width is 0
2018-08-11 10:25:21 +02:00
Alexis
424ebb3c9b
feat(workspace): only show workspaces which are on same output as bar
2018-08-11 00:32:59 +02:00
Alexis
c792871f6e
feat(bar): choose height from config file
2018-08-10 18:46:31 +02:00
Alexis
23f48cb8b7
refactor: prefer static methods
2018-08-09 20:22:01 +02:00
Alexis
39a0ae04a8
feat: basic config file
2018-08-09 12:05:48 +02:00