Hi, I happened to come across a problem with the insertText signal for Editable in Gtk.
I'm having problems getting the autotools to actually build, so I haven't exactly fixed it myself. In gtk/Graphics/UI/Gtk/Entry/Editable.chs.pp: > insertText :: EditableClass self => Signal self (String -> Int -> Int -> IO ()) > insertText = Signal (connect_STRING_INT_INT__NONE "insert-text") However, this is wrong. This doesn't match what the onInsertText/afterInsertText do, and what the callback is supposed to be. The C callback is supposed to be (GtkEditable *editable, gchar *new_text, gint new_text_length, gint *position, gpointer user_data) Where the position argument is an in and out argument which is kind of weird. onInsertText/afterInsertText handle this, but insertText does not. insertText will just treat a pointer as an int, and doesn't respect the out argument aspect at all. onInsertText: > onInsertText, afterInsertText :: EditableClass self => self > -> (String -> Int -> IO Int) > -> IO (ConnectId self) > onInsertText obj handler = > connect_PTR_INT_PTR__NONE "insert_text" False obj > (\strPtr strLen posPtr -> do > str <- if strLen<0 then peekUTFString strPtr > else peekUTFStringLen (strPtr, strLen) > pos <- peek (posPtr :: Ptr {#type gint#}) > pos' <- handler str (fromIntegral pos) > poke (posPtr :: Ptr {#type gint#}) (fromIntegral pos') > ) This should be something more like this, except I haven't actually tested it since I gave up on trying to get current darcs gtk2hs built and didn't have time to fight with it. > insertText :: EditableClass self => Signal self (String -> Int -> IO Int) > insertText = Signal $ > connect_PTR_INT_PTR__NONE "insert_text" > (\strPtr strLen posPtr -> do > str <- if strLen<0 then peekUTFString strPtr > else peekUTFStringLen (strPtr, strLen) > pos <- peek (posPtr :: Ptr {#type gint#}) > pos' <- handler str (fromIntegral pos) > poke (posPtr :: Ptr {#type gint#}) (fromIntegral pos') > ) - Matt Arsenault ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Gtk2hs-devel mailing list Gtk2hs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gtk2hs-devel