} ssd;
struct wlr_foreign_toplevel_handle_v1 *toplevel_handle;
+ struct wl_listener toplevel_handle_request_maximize;
struct wl_listener map;
struct wl_listener unmap;
#include "labwc.h"
+static void
+handle_toplevel_handle_request_maximize(struct wl_listener *listener, void *data)
+{
+ struct view *view = wl_container_of(listener, view,
+ toplevel_handle_request_maximize);
+ struct wlr_foreign_toplevel_handle_v1_maximized_event *event = data;
+ printf("max=%d\n", event->maximized);
+ view_maximize(view, event->maximized);
+}
+
void
foreign_toplevel_handle_create(struct view *view)
{
view_update_title(view);
wlr_foreign_toplevel_handle_v1_output_enter(view->toplevel_handle,
view_wlr_output(view));
+
+ view->toplevel_handle_request_maximize.notify =
+ handle_toplevel_handle_request_maximize;
+ wl_signal_add(&view->toplevel_handle->events.request_maximize,
+ &view->toplevel_handle_request_maximize);
}
return;
}
view->impl->maximize(view, maximize);
+ if (view->toplevel_handle) {
+ wlr_foreign_toplevel_handle_v1_set_maximized(view->toplevel_handle,
+ maximize);
+ }
if (maximize) {
view->unmaximized_geometry.x = view->x;
view->unmaximized_geometry.y = view->y;