bool idle_pending;
unsigned int new_width;
unsigned int new_height;
+ unsigned int saved_width;
+ unsigned int saved_height;
unsigned int resize_edges;
+ bool maximized;
struct wlt_shm_buffer buffer;
struct wl_callback *w_frame;
ev_eloop_register_idle_cb(wnd->disp->eloop, close_window, wnd);
}
+void wlt_window_toggle_maximize(struct wlt_window *wnd)
+{
+ if (!wnd)
+ return;
+
+ if (wnd->maximized) {
+ wl_shell_surface_set_toplevel(wnd->w_shell_surface);
+ wlt_window_set_size(wnd, wnd->saved_width, wnd->saved_height);
+ } else {
+ wnd->saved_width = wnd->buffer.width;
+ wnd->saved_height = wnd->buffer.height;
+ wl_shell_surface_set_maximized(wnd->w_shell_surface, NULL);
+ }
+
+ wnd->maximized = !wnd->maximized;
+}
+
struct ev_eloop *wlt_window_get_eloop(struct wlt_window *wnd)
{
if (!wnd)
void wlt_window_set_close_cb(struct wlt_window *wnd,
wlt_window_close_cb cb);
void wlt_window_close(struct wlt_window *wnd);
+void wlt_window_toggle_maximize(struct wlt_window *wnd);
struct ev_eloop *wlt_window_get_eloop(struct wlt_window *wnd);
void wlt_widget_destroy(struct wlt_widget *widget);