mirror of
https://git.sr.ht/~leon_plickat/wlopm
synced 2025-07-15 05:19:54 +02:00
Use wl_output.name instead of xdg_output.name
This commit is contained in:
40
wlopm.c
40
wlopm.c
@ -34,7 +34,6 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include "xdg-output-unstable-v1.h"
|
||||
#include "wlr-output-power-management-unstable-v1.h"
|
||||
|
||||
#define VERSION "0.0.1"
|
||||
@ -52,7 +51,6 @@ struct Output
|
||||
{
|
||||
struct wl_list link;
|
||||
struct wl_output *wl_output;
|
||||
struct zxdg_output_v1 *xdg_output;
|
||||
struct zwlr_output_power_v1 *wlr_output_power;
|
||||
enum zwlr_output_power_v1_mode mode;
|
||||
char *name;
|
||||
@ -90,7 +88,6 @@ struct wl_callback *sync_callback = NULL;
|
||||
struct wl_list outputs;
|
||||
struct wl_list operations;
|
||||
|
||||
struct zxdg_output_manager_v1 *xdg_output_manager = NULL;
|
||||
struct zwlr_output_power_manager_v1 *wlr_output_power_manager = NULL;
|
||||
|
||||
int ret = EXIT_SUCCESS;
|
||||
@ -116,7 +113,7 @@ static const struct zwlr_output_power_v1_listener wlr_output_power_listener = {
|
||||
.failed = wlr_output_power_handle_failed,
|
||||
};
|
||||
|
||||
static void xdg_output_handle_name (void *data, struct zxdg_output_v1 *xdg_output,
|
||||
static void wl_output_handle_name (void *data, struct wl_output *wl_output,
|
||||
const char *name)
|
||||
{
|
||||
struct Output *output = (struct Output *)data;
|
||||
@ -125,12 +122,13 @@ static void xdg_output_handle_name (void *data, struct zxdg_output_v1 *xdg_outpu
|
||||
output->name = strdup(name);
|
||||
}
|
||||
|
||||
static const struct zxdg_output_v1_listener xdg_output_listener = {
|
||||
.logical_size = noop,
|
||||
.name = xdg_output_handle_name,
|
||||
.logical_position = noop,
|
||||
.description = noop,
|
||||
.done = noop, /* Deprecated since version 3. */
|
||||
static const struct wl_output_listener wl_output_listener = {
|
||||
.name = wl_output_handle_name,
|
||||
.geometry = noop,
|
||||
.mode = noop,
|
||||
.scale = noop,
|
||||
.description = noop,
|
||||
.done = noop,
|
||||
};
|
||||
|
||||
static void registry_handle_global (void *data, struct wl_registry *registry,
|
||||
@ -147,16 +145,13 @@ static void registry_handle_global (void *data, struct wl_registry *registry,
|
||||
|
||||
output->wl_output = wl_registry_bind(registry, name,
|
||||
&wl_output_interface, version);
|
||||
output->xdg_output = NULL;
|
||||
wl_output_add_listener(output->wl_output, &wl_output_listener, output);
|
||||
output->wlr_output_power = NULL;
|
||||
output->name = NULL;
|
||||
output->global_name = name;
|
||||
|
||||
wl_list_insert(&outputs, &output->link);
|
||||
}
|
||||
else if ( strcmp(interface, zxdg_output_manager_v1_interface.name) == 0 )
|
||||
xdg_output_manager = wl_registry_bind(registry, name,
|
||||
&zxdg_output_manager_v1_interface, version);
|
||||
else if ( strcmp(interface, zwlr_output_power_manager_v1_interface.name) == 0 )
|
||||
wlr_output_power_manager = wl_registry_bind(registry, name,
|
||||
&zwlr_output_power_manager_v1_interface, version);
|
||||
@ -260,22 +255,9 @@ static void sync_handle_done (void *data, struct wl_callback *wl_callback, uint3
|
||||
return;
|
||||
}
|
||||
|
||||
if ( xdg_output_manager == NULL )
|
||||
{
|
||||
fputs("ERROR: Wayland server does not support xdg-output.\n", stderr);
|
||||
loop = false;
|
||||
ret = EXIT_FAILURE;
|
||||
return;
|
||||
}
|
||||
|
||||
struct Output *output;
|
||||
wl_list_for_each(output, &outputs, link)
|
||||
{
|
||||
output->xdg_output = zxdg_output_manager_v1_get_xdg_output(
|
||||
xdg_output_manager, output->wl_output);
|
||||
zxdg_output_v1_add_listener(output->xdg_output,
|
||||
&xdg_output_listener, output);
|
||||
|
||||
output->wlr_output_power = zwlr_output_power_manager_v1_get_output_power(
|
||||
wlr_output_power_manager, output->wl_output);
|
||||
zwlr_output_power_v1_add_listener(output->wlr_output_power,
|
||||
@ -370,8 +352,6 @@ static void destroy_all_outputs (void)
|
||||
{
|
||||
if ( output->wlr_output_power != NULL )
|
||||
zwlr_output_power_v1_destroy(output->wlr_output_power);
|
||||
if ( output->xdg_output != NULL )
|
||||
zxdg_output_v1_destroy(output->xdg_output);
|
||||
wl_output_destroy(output->wl_output);
|
||||
wl_list_remove(&output->link);
|
||||
free(output->name);
|
||||
@ -568,8 +548,6 @@ int main(int argc, char *argv[])
|
||||
wl_callback_destroy(sync_callback);
|
||||
if ( wlr_output_power_manager != NULL )
|
||||
zwlr_output_power_manager_v1_destroy(wlr_output_power_manager);
|
||||
if ( xdg_output_manager != NULL )
|
||||
zxdg_output_manager_v1_destroy(xdg_output_manager);
|
||||
if ( wl_registry != NULL )
|
||||
wl_registry_destroy(wl_registry);
|
||||
wl_display_disconnect(wl_display);
|
||||
|
Reference in New Issue
Block a user