mirror of
https://github.com/rad4day/Waybar.git
synced 2023-12-21 10:22:59 +01:00
fix(client): try to fix #20
This commit is contained in:
parent
cee031d2fa
commit
d1d51b76aa
@ -21,11 +21,12 @@ namespace waybar {
|
|||||||
Gtk::Main gtk_main;
|
Gtk::Main gtk_main;
|
||||||
|
|
||||||
Glib::RefPtr<Gdk::Display> gdk_display;
|
Glib::RefPtr<Gdk::Display> gdk_display;
|
||||||
struct wl_display *wlDisplay;
|
struct wl_display *wlDisplay = nullptr;
|
||||||
struct wl_registry *registry;
|
struct wl_registry *registry = nullptr;
|
||||||
struct zwlr_layer_shell_v1 *layer_shell;
|
struct zwlr_layer_shell_v1 *layer_shell = nullptr;
|
||||||
struct zxdg_output_manager_v1 *xdg_output_manager;
|
struct zxdg_output_manager_v1 *xdg_output_manager = nullptr;
|
||||||
struct wl_seat *seat;
|
struct wl_seat *seat = nullptr;
|
||||||
|
struct wl_output *wlOutput = nullptr;
|
||||||
std::vector<std::unique_ptr<Bar>> bars;
|
std::vector<std::unique_ptr<Bar>> bars;
|
||||||
|
|
||||||
Client(int argc, char* argv[]);
|
Client(int argc, char* argv[]);
|
||||||
|
@ -46,10 +46,12 @@ void waybar::Client::_handle_global(void *data, struct wl_registry *registry,
|
|||||||
o->layer_shell = (zwlr_layer_shell_v1 *)wl_registry_bind(registry, name,
|
o->layer_shell = (zwlr_layer_shell_v1 *)wl_registry_bind(registry, name,
|
||||||
&zwlr_layer_shell_v1_interface, version);
|
&zwlr_layer_shell_v1_interface, version);
|
||||||
} else if (!strcmp(interface, wl_output_interface.name)) {
|
} else if (!strcmp(interface, wl_output_interface.name)) {
|
||||||
auto output = std::make_unique<struct wl_output *>();
|
o->wlOutput = (struct wl_output *)wl_registry_bind(registry, name,
|
||||||
*output = (struct wl_output *)wl_registry_bind(registry, name,
|
|
||||||
&wl_output_interface, version);
|
&wl_output_interface, version);
|
||||||
o->bars.emplace_back(std::make_unique<Bar>(*o, std::move(output)));
|
auto output = std::make_unique<struct wl_output *>();
|
||||||
|
*output = o->wlOutput;
|
||||||
|
if (o->xdg_output_manager)
|
||||||
|
o->bars.emplace_back(std::make_unique<Bar>(*o, std::move(output)));
|
||||||
} else if (!strcmp(interface, wl_seat_interface.name)) {
|
} else if (!strcmp(interface, wl_seat_interface.name)) {
|
||||||
o->seat = (struct wl_seat *)wl_registry_bind(registry, name,
|
o->seat = (struct wl_seat *)wl_registry_bind(registry, name,
|
||||||
&wl_seat_interface, version);
|
&wl_seat_interface, version);
|
||||||
@ -58,6 +60,11 @@ void waybar::Client::_handle_global(void *data, struct wl_registry *registry,
|
|||||||
o->xdg_output_manager =
|
o->xdg_output_manager =
|
||||||
(struct zxdg_output_manager_v1 *)wl_registry_bind(registry, name,
|
(struct zxdg_output_manager_v1 *)wl_registry_bind(registry, name,
|
||||||
&zxdg_output_manager_v1_interface, ZXDG_OUTPUT_V1_NAME_SINCE_VERSION);
|
&zxdg_output_manager_v1_interface, ZXDG_OUTPUT_V1_NAME_SINCE_VERSION);
|
||||||
|
if (o->wlOutput) {
|
||||||
|
auto output = std::make_unique<struct wl_output *>();
|
||||||
|
*output = o->wlOutput;
|
||||||
|
o->bars.emplace_back(std::make_unique<Bar>(*o, std::move(output)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user