summaryrefslogtreecommitdiff
path: root/src/nigui/private/gtk3/platform_impl.nim
diff options
context:
space:
mode:
Diffstat (limited to 'src/nigui/private/gtk3/platform_impl.nim')
-rwxr-xr-xsrc/nigui/private/gtk3/platform_impl.nim10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim
index 57766e2..c66dfba 100755
--- a/src/nigui/private/gtk3/platform_impl.nim
+++ b/src/nigui/private/gtk3/platform_impl.nim
@@ -22,6 +22,7 @@ var pLastMouseButtonDownControlY: int
var pClipboardPtr: pointer
var pClipboardText: string
+var pClipboardTextIsSet: bool
proc pRaiseGError(error: ptr GError) =
if error == nil:
@@ -288,14 +289,13 @@ proc processEvents(app: App) =
discard gtk_main_iteration()
proc pClipboardTextReceivedFunc(clipboard: pointer, text: cstring, data: pointer): bool {.cdecl.} =
- pClipboardText = $text
- if pClipboardText == nil:
- pClipboardText = ""
+ pClipboardText = $text # string needs to be copied
+ pClipboardTextIsSet = true
proc clipboardText(app: App): string =
- pClipboardText = nil
+ pClipboardTextIsSet = false
gtk_clipboard_request_text(pClipboardPtr, pClipboardTextReceivedFunc, nil)
- while pClipboardText == nil:
+ while not pClipboardTextIsSet:
discard gtk_main_iteration()
result = pClipboardText