gi-gtk-hs 0.3.6.1 → 0.3.6.2
raw patch · 3 files changed
+23/−31 lines, 3 filesdep ~gi-gtkdep ~haskell-gi-base
Dependency ranges changed: gi-gtk, haskell-gi-base
Files
- gi-gtk-hs.cabal +3/−3
- src/Data/GI/Gtk/ModelView/CustomStore.hs +15/−27
- src/Data/GI/Gtk/ModelView/Types.hs +5/−1
gi-gtk-hs.cabal view
@@ -1,5 +1,5 @@ name: gi-gtk-hs-version: 0.3.6.1+version: 0.3.6.2 synopsis: A wrapper for gi-gtk, adding a few more idiomatic API parts on top description: A wrapper for gi-gtk, adding a few more idiomatic API parts on top homepage: https://github.com/haskell-gi/gi-gtk-hs@@ -33,11 +33,11 @@ transformers >=0.3.0.0 && <0.6, containers >=0.5.5.1 && <0.6, text >=1.2 && <1.3,- haskell-gi-base >=0.20 && <0.22,+ haskell-gi-base >=0.21.2 && <0.22, gi-glib >=2.0.6 && <2.1, gi-gobject >=2.0.6 && <2.1, gi-gdk >=3.0.6 && <3.1,- gi-gtk >=3.0.6 && <3.1,+ gi-gtk >=3.0.25 && <3.1, gi-gdkpixbuf >=2.0.6 && <2.1 hs-source-dirs: src
src/Data/GI/Gtk/ModelView/CustomStore.hs view
@@ -70,7 +70,7 @@ (ManagedPtr(..), GObject(..), GType, CGType(..), gtypeToCGType, gtypeInt, gtypeBoolean, gtypeString, gtypeInvalid) import Data.GI.Base.BasicConversions (gflagsToWord, withTextCString)-import Data.GI.Base.ManagedPtr (newObject, withManagedPtr)+import Data.GI.Base.ManagedPtr (newObject, withManagedPtr, newManagedPtr_) import Data.GI.Base.GValue (GValue(..)) import GI.GObject (Object) import GI.GdkPixbuf.Objects (Pixbuf(..))@@ -338,24 +338,12 @@ foreign export ccall "gtk2hs_store_get_flags_impl" treeModelIfaceGetFlags_static :: StablePtr (CustomStoreImplementation model row) -> IO CInt -tempManagedPtr :: Ptr a -> IO (ManagedPtr a)-tempManagedPtr p = do-#if MIN_VERSION_haskell_gi_base(0,20,3)- isDisowned <- newIORef Nothing- fPtr <- newForeignPtr_ p- return $ ManagedPtr fPtr isDisowned-#else- isOwned <- newIORef True- fPtr <- newForeignPtr_ p- return $ ManagedPtr fPtr isOwned-#endif- treeModelIfaceGetIter_static :: StablePtr (CustomStoreImplementation model row) -> Ptr TreeIter -> Ptr TreePath -> IO CInt treeModelIfaceGetIter_static storePtr iterPtr pathPtr = do- iterOut <- TreeIter <$> tempManagedPtr iterPtr -- Take care not to use this outside of this function+ iterOut <- TreeIter <$> newManagedPtr_ iterPtr -- Take care not to use this outside of this function store <- customStoreIface <$> deRefStablePtr storePtr isOwned' <- newIORef False- path <- treePathCopy . TreePath =<< tempManagedPtr pathPtr+ path <- treePathCopy . TreePath =<< newManagedPtr_ pathPtr treeModelIfaceGetIter store path >>= \case Nothing -> return (fromBool False) Just iter -> do treeIterOverwrite iterOut iter@@ -415,7 +403,7 @@ treeModelIfaceIterNext_static :: StablePtr (CustomStoreImplementation model row) -> Ptr TreeIter -> IO CInt treeModelIfaceIterNext_static storePtr iterPtr = do- iterOut <- TreeIter <$> tempManagedPtr iterPtr -- Take care not to use this outside of this function+ iterOut <- TreeIter <$> newManagedPtr_ iterPtr -- Take care not to use this outside of this function store <- customStoreIface <$> deRefStablePtr storePtr iter <- newBoxed TreeIter iterPtr treeModelIfaceIterNext store iter >>= \case@@ -429,7 +417,7 @@ treeModelIfaceIterChildren_static :: StablePtr (CustomStoreImplementation model row) -> Ptr TreeIter -> Ptr TreeIter -> IO CInt treeModelIfaceIterChildren_static storePtr iterPtr parentIterPtr = do- iterOut <- TreeIter <$> tempManagedPtr iterPtr -- Take care not to use this outside of this function+ iterOut <- TreeIter <$> newManagedPtr_ iterPtr -- Take care not to use this outside of this function store <- customStoreIface <$> deRefStablePtr storePtr parentIter <- maybeNull (newBoxed TreeIter) parentIterPtr treeModelIfaceIterChildren store parentIter >>= \case@@ -463,7 +451,7 @@ treeModelIfaceIterNthChild_static :: StablePtr (CustomStoreImplementation model row) -> Ptr TreeIter -> Ptr TreeIter -> CInt -> IO CInt treeModelIfaceIterNthChild_static storePtr iterPtr parentIterPtr n = do- iterOut <- TreeIter <$> tempManagedPtr iterPtr -- Take care not to use this outside of this function+ iterOut <- TreeIter <$> newManagedPtr_ iterPtr -- Take care not to use this outside of this function store <- customStoreIface <$> deRefStablePtr storePtr parentIter <- maybeNull (newBoxed TreeIter) parentIterPtr treeModelIfaceIterNthChild store parentIter (fromIntegral n) >>= \case@@ -477,7 +465,7 @@ treeModelIfaceIterParent_static :: StablePtr (CustomStoreImplementation model row) -> Ptr TreeIter -> Ptr TreeIter -> IO CInt treeModelIfaceIterParent_static storePtr iterPtr childIterPtr = do- iterOut <- TreeIter <$> tempManagedPtr iterPtr -- Take care not to use this outside of this function+ iterOut <- TreeIter <$> newManagedPtr_ iterPtr -- Take care not to use this outside of this function store <- customStoreIface <$> deRefStablePtr storePtr childIter <- newBoxed TreeIter childIterPtr iter <- treeModelIfaceIterParent store childIter@@ -513,7 +501,7 @@ customDragSourceRowDraggable_static mPtr storePtr pathPtr = do model <- newObject TreeModel mPtr store <- customTreeDragSourceIface <$> deRefStablePtr storePtr- path <- treePathCopy . TreePath =<< tempManagedPtr pathPtr+ path <- treePathCopy . TreePath =<< newManagedPtr_ pathPtr fromBool <$> customDragSourceRowDraggable store (unsafeTreeModelToGeneric model) path foreign export ccall "gtk2hs_store_row_draggable_impl"@@ -523,8 +511,8 @@ customDragSourceDragDataGet_static mPtr storePtr pathPtr selectionPtr = do model <- newObject TreeModel mPtr store <- customTreeDragSourceIface <$> deRefStablePtr storePtr- path <- treePathCopy . TreePath =<< tempManagedPtr pathPtr- selection <- selectionDataCopy . SelectionData =<< tempManagedPtr selectionPtr+ path <- treePathCopy . TreePath =<< newManagedPtr_ pathPtr+ selection <- selectionDataCopy . SelectionData =<< newManagedPtr_ selectionPtr fromBool <$> customDragSourceDragDataGet store (unsafeTreeModelToGeneric model) path selection foreign export ccall "gtk2hs_store_drag_data_get_impl"@@ -534,7 +522,7 @@ customDragSourceDragDataDelete_static mPtr storePtr pathPtr = do model <- newObject TreeModel mPtr store <- customTreeDragSourceIface <$> deRefStablePtr storePtr- path <- treePathCopy . TreePath =<< tempManagedPtr pathPtr+ path <- treePathCopy . TreePath =<< newManagedPtr_ pathPtr fromBool <$> customDragSourceDragDataDelete store (unsafeTreeModelToGeneric model) path foreign export ccall "gtk2hs_store_drag_data_delete_impl"@@ -544,8 +532,8 @@ customDragDestDragDataReceived_static mPtr storePtr pathPtr selectionPtr = do model <- newObject TreeModel mPtr store <- customTreeDragDestIface <$> deRefStablePtr storePtr- path <- treePathCopy . TreePath =<< tempManagedPtr pathPtr- selection <- selectionDataCopy . SelectionData =<< tempManagedPtr selectionPtr+ path <- treePathCopy . TreePath =<< newManagedPtr_ pathPtr+ selection <- selectionDataCopy . SelectionData =<< newManagedPtr_ selectionPtr fromBool <$> customDragDestDragDataReceived store (unsafeTreeModelToGeneric model) path selection foreign export ccall "gtk2hs_store_drag_data_received_impl"@@ -555,8 +543,8 @@ customDragDestRowDropPossible_static mPtr storePtr pathPtr selectionPtr = do model <- newObject TreeModel mPtr store <- customTreeDragDestIface <$> deRefStablePtr storePtr- path <- treePathCopy . TreePath =<< tempManagedPtr pathPtr- selection <- selectionDataCopy . SelectionData =<< tempManagedPtr selectionPtr+ path <- treePathCopy . TreePath =<< newManagedPtr_ pathPtr+ selection <- selectionDataCopy . SelectionData =<< newManagedPtr_ selectionPtr fromBool <$> customDragDestRowDropPossible store (unsafeTreeModelToGeneric model) path selection foreign export ccall "gtk2hs_store_row_drop_possible_impl"
src/Data/GI/Gtk/ModelView/Types.hs view
@@ -172,7 +172,11 @@ treePathGetIndices' :: MonadIO m => TreePath -> m [Int32] treePathGetIndices' path = treePathGetDepth path >>= \case 0 -> return []- _ -> treePathGetIndices path+ _ -> do+ indices <- treePathGetIndices path+ case indices of+ Just ixs -> return ixs+ Nothing -> return [] withTreePath :: MonadIO m => [Int32] -> (TreePath -> m a) -> m a withTreePath tp act = treePathNewFromIndices' tp >>= act