summaryrefslogtreecommitdiffstats
path: root/contrib/fltk/05-str2636-fltk-1.3.x-clipboard-osx.patch
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/fltk/05-str2636-fltk-1.3.x-clipboard-osx.patch')
-rw-r--r--contrib/fltk/05-str2636-fltk-1.3.x-clipboard-osx.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/contrib/fltk/05-str2636-fltk-1.3.x-clipboard-osx.patch b/contrib/fltk/05-str2636-fltk-1.3.x-clipboard-osx.patch
new file mode 100644
index 00000000..22e69396
--- /dev/null
+++ b/contrib/fltk/05-str2636-fltk-1.3.x-clipboard-osx.patch
@@ -0,0 +1,44 @@
+diff -bur fltk-1.3.0r9619.org/src/Fl_cocoa.mm fltk-1.3.0r9619/src/Fl_cocoa.mm
+--- fltk-1.3.0r9619.org/src/Fl_cocoa.mm 2012-06-18 19:24:30.971688769 +0200
++++ fltk-1.3.0r9619/src/Fl_cocoa.mm 2012-06-18 19:25:25.700310375 +0200
+@@ -1319,9 +1319,13 @@
+ }
+ @end
+
++static void clipboard_check(void);
++
+ @implementation FLApplication
+ + (void)sendEvent:(NSEvent *)theEvent
+ {
++ // update clipboard status
++ clipboard_check();
+ NSEventType type = [theEvent type];
+ if (type == NSLeftMouseDown) {
+ fl_lock_function();
+@@ -2790,6 +2794,26 @@
+ PasteboardCreate(kPasteboardClipboard, &myPasteboard);
+ }
+
++extern void fl_trigger_clipboard_notify(int source);
++
++void fl_clipboard_notify_change() {
++ // No need to do anything here...
++}
++
++static void clipboard_check(void)
++{
++ PasteboardSyncFlags flags;
++
++ allocatePasteboard();
++ flags = PasteboardSynchronize(myPasteboard);
++
++ if (!(flags & kPasteboardModified))
++ return;
++ if (flags & kPasteboardClientIsOwner)
++ return;
++
++ fl_trigger_clipboard_notify(1);
++}
+
+ /*
+ * create a selection