From 3f7ba8b26435392116df3c9fe66ef11536e30c59 Mon Sep 17 00:00:00 2001 From: RH12503 Date: Sat, 27 Mar 2021 12:56:25 +0800 Subject: [PATCH] fixed Linux maximum width/height on window maximize --- lib/renderer/webview/webview.h | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/renderer/webview/webview.h b/lib/renderer/webview/webview.h index da041b0d3..8ffedff7b 100644 --- a/lib/renderer/webview/webview.h +++ b/lib/renderer/webview/webview.h @@ -298,7 +298,21 @@ struct webview_priv JSStringRelease(js); g_free(s); } - + + static void webview_size_allocate_cb(GtkWindow *window, + GdkRectangle *allocation, gpointer arg) + { + struct webview *w = (struct webview *)arg; + if (allocation->width > w->priv.max_width || allocation->height > w->priv.max_height) { + if (gtk_window_is_maximized(window)) { + gint x,y; + gtk_window_get_position(window,&x,&y); + gtk_window_unmaximize(window); + gtk_window_move(window, x, y); + } + } + } + static void webview_load_changed_cb(WebKitWebView *webview, WebKitLoadEvent event, gpointer arg) { @@ -349,6 +363,9 @@ struct webview_priv w->priv.max_height = -1; gtk_window_set_title(GTK_WINDOW(w->priv.window), w->title); + + g_signal_connect(G_OBJECT(w->priv.window), "size-allocate", + G_CALLBACK(webview_size_allocate_cb), w); if (w->resizable) {