From: Christoph B. <ic...@ch...> - 2010-05-04 08:47:04
|
Hi Axel, > Hi Christoph, > > I might have misunderstood the semantics of clipboardRequestText. I > assumed that it blocks until the passed-in function was called. As a > consequence, I free the function pointer of the passed-in function > immediately after the C call to clipboard_request_text returns. It > seems that on my platform (MacOS) the primary clipboard does not work > as expected. Could you (a) confirm that the following program crashes > and (b) try to use clipboardRequestContents since this function frees > the reception function after it has been executed. > > Cheers, > Axel > > import Graphics.UI.Gtk > import Data.Char > main = do > initGUI > putStrLn "1" > clipboard <- clipboardGet selectionPrimary > putStrLn "2" > clipboardRequestText clipboard > (\ mbS -> do > putStrLn "3" > case mbS of > Nothing -> return () > Just s -> clipboardSetText clipboard (map toUpper s)) (a) the program doesn't crash. I had to append a "mainGUI" to make it crash. (b) I use now clipboardRequestContents clipboard targetString $ do mbS <- selectionDataGetText case mbS of Nothing -> selectionDataSetText "ABC" >> return () Just s -> selectionDataSetText (translate s) >> return () I guess, getting the text works, but selectionDataSetText fails. Unfortunatly SelectionDataM is not an instace of MonadIO. So neither I can insert a liftIO . putStrLn nor I can call clipboarSetText. Regards, Christoph |