From a016f39e97c8b98931a33abe178fa5895c315989 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Thu, 3 Feb 2022 21:03:10 +1100 Subject: [PATCH] [linux] Move SetPosition, Center, Fullscreen and UnFullscreen to main thread --- v2/internal/frontend/desktop/linux/window.go | 22 ++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/v2/internal/frontend/desktop/linux/window.go b/v2/internal/frontend/desktop/linux/window.go index b18b5b554..1a1f01004 100644 --- a/v2/internal/frontend/desktop/linux/window.go +++ b/v2/internal/frontend/desktop/linux/window.go @@ -426,6 +426,28 @@ void SetTitle(GtkWindow* window, char* title) { ExecuteOnMainThread(setTitle, (gpointer)args); } +typedef struct SetPositionArgs { + int x; + int y; + void* window; +} SetPositionArgs; + +void setPosition(gpointer data) { + SetPositionArgs* args = (SetPositionArgs*)data; + gtk_window_move((GtkWindow*)args->window, args->x, args->y); + free(args); +} + +void SetPosition(void* window, int x, int y) { + GdkRectangle monitorDimensions = getCurrentMonitorGeometry(window); + SetPositionArgs* args = malloc(sizeof(SetPositionArgs)); + args->window = window; + args->x = monitorDimensions.x + x; + args->y = monitorDimensions.y + y; + ExecuteOnMainThread(setPosition, (gpointer)args); +} + + */ import "C" import (