mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-30 14:22:07 +00:00
fix win size bug on linux.
This commit is contained in:
@@ -504,6 +504,12 @@ std::deque<wxDialog*> dialogStack;
|
|||||||
|
|
||||||
void fit_in_display(wxTopLevelWindow& window, wxSize desired_size)
|
void fit_in_display(wxTopLevelWindow& window, wxSize desired_size)
|
||||||
{
|
{
|
||||||
|
// GTK requires width >= -1 and height > 0 for gtk_window_resize/set_size_request
|
||||||
|
if (desired_size.GetWidth() < WINDOW_MIN_WIDTH)
|
||||||
|
desired_size.SetWidth(WINDOW_MIN_WIDTH);
|
||||||
|
if (desired_size.GetHeight() < WINDOW_MIN_HEIGHT)
|
||||||
|
desired_size.SetHeight(WINDOW_MIN_HEIGHT);
|
||||||
|
|
||||||
const auto display_size = wxDisplay(window.GetParent()).GetClientArea();
|
const auto display_size = wxDisplay(window.GetParent()).GetClientArea();
|
||||||
if (desired_size.GetWidth() > display_size.GetWidth()) {
|
if (desired_size.GetWidth() > display_size.GetWidth()) {
|
||||||
desired_size.SetWidth(display_size.GetWidth() * 4 / 5);
|
desired_size.SetWidth(display_size.GetWidth() * 4 / 5);
|
||||||
|
|||||||
@@ -17,6 +17,11 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "sentry_wrapper/SentryWrapper.hpp"
|
#include "sentry_wrapper/SentryWrapper.hpp"
|
||||||
|
|
||||||
|
#if defined(__linux__)
|
||||||
|
#include <mutex>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __WIN32__
|
#ifdef __WIN32__
|
||||||
#include <WebView2.h>
|
#include <WebView2.h>
|
||||||
#include <Shellapi.h>
|
#include <Shellapi.h>
|
||||||
@@ -278,12 +283,11 @@ wxWebView* WebView::CreateWebView(wxWindow * parent, wxString const & url)
|
|||||||
// Handlers must be registered before Create(). Linux (WebKit2): scheme is process-global, register once to avoid "Cannot register URI scheme ... more than once".
|
// Handlers must be registered before Create(). Linux (WebKit2): scheme is process-global, register once to avoid "Cannot register URI scheme ... more than once".
|
||||||
// macOS (WKWebView): scheme is per-view, each WebView needs its own handlers.
|
// macOS (WKWebView): scheme is per-view, each WebView needs its own handlers.
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
static bool s_wxfs_memory_handlers_registered = false;
|
static std::once_flag s_wxfs_memory_handlers_once;
|
||||||
if (!s_wxfs_memory_handlers_registered) {
|
std::call_once(s_wxfs_memory_handlers_once, [webView]() {
|
||||||
webView->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewArchiveHandler("wxfs")));
|
webView->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewArchiveHandler("wxfs")));
|
||||||
webView->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewFSHandler("memory")));
|
webView->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewFSHandler("memory")));
|
||||||
s_wxfs_memory_handlers_registered = true;
|
});
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
webView->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewArchiveHandler("wxfs")));
|
webView->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewArchiveHandler("wxfs")));
|
||||||
webView->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewFSHandler("memory")));
|
webView->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewFSHandler("memory")));
|
||||||
|
|||||||
Reference in New Issue
Block a user