Commit graph

4046 commits

Author SHA1 Message Date
Mads Kruse Johnsen 7fb112727a Prevent double removal of timeout sources
See https://github.com/GLibSharp/GtkSharp/pull/49
2021-01-25 11:07:39 +01:00
Midhun Mohan cd47acba85 Cleanup of sourceproxy Dictionary and its usages 2021-01-24 19:55:17 +01:00
Midhun Mohan 6af04a1058 Changing timeout_add and idle_add to _full. 2021-01-24 19:55:17 +01:00
Sebastian Dröge 89cfd16c10 Ensure to sink floating references passed unowned to GetObject() and to not increase their reference count
The API contract between GObject-Introspection and bindings is that
functions returning transfer-none floating references pass a reference
to the bindings that should be taken ownership of by sinking it. Not
doing so is wrong and will lead to memory leaks or double frees.

Previously we would not distinguish this case and simply increment the
reference count. In addition we would then sink the floating reference
when the Object.Raw field is set later for InitiallyUnowned subclasses.

Remove that last part and instead check directly in Object.Raw.set if we
get a floating reference and if so simply sink it here and take
ownership of it. The general assumption of Object.Raw.set is that it
gets passed a reference that it should take ownership of.

So in summary:
1) GetObject() would only increase the reference count of unowned,
   non-floating references so that we own it. For unowned, floating
   references it assumes ownership of the reference.
2) Raw.set assumes ownership of the reference passed to it and if it
   happens to be a floating reference then it will first sink it.

Also warn if we get a floating, owned reference passed to GetObject() as
that case is not allowed by GObject-Introspection and would cause the
reference to be leaked.

This fixes a memory leak with functions returning unowned, floating
references and with functions returning owned, non-floating references
of InitiallyUnowned subclasses. And at the same time keeps constructors
for InitiallyUnowned subclasses working correctly without leaks.

See https://gitlab.freedesktop.org/gstreamer/gstreamer-sharp/issues/31
2021-01-24 19:55:17 +01:00
Sebastian Dröge 5b63473a1c Use correct GType for GLib.InitiallyUnowned
It's not the same type as GLib.Object but a subclass thereof.
2021-01-24 19:55:17 +01:00
Thibault Saunier 1b9fe6a8ed Revert "Attempt minimal changes to obtain proper disposing."
This reverts commit 2e1882d31e.
2021-01-24 19:55:17 +01:00
Thibault Saunier d0bb5efa3a generator: Trim type "const " the same way as "const-" as both are valid 2021-01-24 19:55:17 +01:00
Olivier Crête a7d3e85829 ValueArray: Create copy when receiving pointer
The "ref" operation of GValueArray is a copy, so we don't have a
choice.
2021-01-24 19:55:17 +01:00
Thibault Saunier 9002cefe44 generator: Add a way to force constructors to be names
In some cases (GstEvent) unnamed constructors make no sense
2021-01-24 19:55:17 +01:00
Thibault Saunier dd8f3f994e glib: Handle GValue containing GType 2021-01-24 19:55:17 +01:00
Thibault Saunier 57ea279ceb generator: Fix accessing EqualityName for GArray*s 2021-01-24 19:55:17 +01:00
Thibault Saunier 939111a348 Do not check padding ABI offset correctness
As it will break the test build as soon as the padding
starts actually being used.
2021-01-24 19:55:17 +01:00
Justin Kim c980ef4f90 Object: Fix string leakages 2021-01-24 19:55:17 +01:00
Cameron White 7d5190865e Add a simple demo for using Gdk.Seat to query the mouse position. 2021-01-08 22:47:47 +01:00
Cameron White 216cfd941e Set the correct parent class for Gdk.SeatDefault
This fixes issues with using the Gdk.Seat value returned by  `gdk_display_get_default_seat()`.

Fixes: #131
2021-01-08 22:47:47 +01:00
lytico a0f6a044d7
Merge pull request #208 from lytico/lytico_fix_MonoDevelop_Addin
MonoDevelop.GtkSharp.Addin.csproj: make CI happy
2021-01-08 22:05:30 +01:00
lytico 0c78c9e349 MonoDevelop.GtkSharp.Addin.csproj: adjust TargetFramework to net471 & adjust MonoDevelop.Addins to version 0.4.7 2021-01-08 21:45:28 +01:00
lytico cb1bdfae06 GtkScrollable: GetBorder border as out param 2020-12-08 10:09:05 +01:00
zii-dmg 66d46cbacb Manually marshal UTF-8 dialog title 2020-12-08 10:07:43 +01:00
Curtis Wensley b831ee8ca1 Don't add reference to PixbufHandle
Fixes #186
2020-12-08 10:06:26 +01:00
zii-dmg 7dbde29178 Fixed Container.ChildGetProperty
Properly marshal `gtk_container_class_find_child_property` with return type of pointer instead of struct. When marshal pointer to struct manually.
2020-10-08 15:58:20 +02:00
Harry bc3a55f71b
Merge pull request #187 from cameronwhite/fix-pango-crash
Fix crash when accessing Pango.FontFamily.Faces
2020-08-28 17:35:50 +02:00
Cameron White ca7ed79e77
Fix crash when accessing Pango.FontFamily.Faces
This is similar to the fix for FontFamily in #35, and adds metadata for the parent class.
Without this, I found that the conversion to GObject failed in GLib.Object.GetObject and the pointer was deleted, corrupting memory for the next call.

Fixes: #159
2020-08-27 20:38:56 -04:00
Harry cc3d359b33
Don't sign GtkSourceSharp and fix naming 2020-08-07 13:40:50 +02:00
Harry a761ddea85
Merge pull request #184 from GtkSharp/revert-139-sign
Revert "Sign the DLL files"
2020-08-07 13:31:04 +02:00
Harry 724df41249
Revert "Sign the DLL files" 2020-08-07 13:30:09 +02:00
Harry 92c2332bcf
Merge pull request #183 from cameronwhite/pixbuf-from-surface-lib
Fix runtime errors when calling the Gdk.Pixbuf constructors that take Gdk.Window or Cairo.Surface
2020-08-04 09:23:06 +02:00
Cameron White 90379c40c8 gdk_pixbuf_get_from_surface() is in libgdk, not libgdk_pixbuf
This needs to be explicitly specified since 3a67da38 relocated these methods into Gdk.Pixbuf, which is underneath an element that specified `library="Library.GdkPixbuf"`

This fixes runtime errors when calling this method (similar for gdk_pixbuf_get_from_window)
2020-08-03 20:28:02 -04:00
Harry efb8335e87
[README] Add GtkSourceSharp 2020-08-03 21:41:02 +02:00
Harry 3cac71dded
Bump Gtk dependency to 3.24.20 2020-08-03 21:06:15 +02:00
harry-cpp be0a863b50
Rename SourceView > GtkSourceSharp 2020-07-22 19:32:38 +02:00
Harry 759d62966a
Merge pull request #173 from hol430/sourceview
Added sourceview bindings
2020-07-22 19:05:40 +02:00
Harry cb38e52242
Merge pull request #179 from hol430/filechoosernative
Fixed FileChooserNative
2020-07-22 19:04:56 +02:00
harry-cpp 0b07ea0c52
Finishing touches 2020-07-22 18:49:13 +02:00
Drew Holzworth ce11581485
Fixed FileChooserNative (I hope)
Changed NativeDialog to inherit from GLib.Object, as it does in the C API.

FileChooserNative seems to inherit multiple base classes in the C API,
which isn't possible in C#, but this solution is to mimic multiple
inheritance via a proxy FileChooserAdapter.
2020-07-22 09:49:47 +10:00
Harry 42956bfc3e
Merge pull request #176 from cameronwhite/pixbuf-from-surface
Add Gdk.Pixbuf constructors for a source Gdk.Window or Cairo.Surface.
2020-07-21 23:04:47 +02:00
Harry dcd05c43e4
Merge pull request #175 from cameronwhite/cairo-path-extents
Implement Cairo.Context.PathExtents()
2020-07-21 23:03:27 +02:00
Cameron White 3a67da38aa Add Gdk.Pixbuf constructors for a source Gdk.Window or Cairo.Surface.
This exposes gdk_pixbuf_get_from_window and gdk_pixbuf_get_from_surface via Gdk.Pixbuf constructors. Previously they were in a hidden GdkPixbuf_ class.

Fixes: #174
2020-07-15 22:35:34 -04:00
Cameron White b33208f716 Implement Cairo.Context.PathExtents()
This exposes the cairo_path_extents() method, and is closely related to the existing StrokeExtents() method.
2020-07-15 16:46:14 -04:00
Drew Holzworth e6aed8d93d
Merge pull request #1 from Blquinn/source-buffer
Update SourceView to return SourceView.Buffer
2020-07-14 11:16:55 +10:00
Benjamin Quinn c3f768c537 Update SourceView to return SourceView.Buffer
Add syntax highlighting to sample application.
2020-07-13 21:11:17 -04:00
Drew Holzworth 6d3c0cf744
Changed sample project to show line numbers in sourceview
Just to make it a bit more obvious that the widget is a SourceView and
not a TextView.
2020-07-13 13:04:02 +10:00
Drew Holzworth 27125e5984
Hide a few of sourceview's internal datatypes 2020-07-13 12:47:45 +10:00
Drew Holzworth 5f27d9f903
Changed SourceView namespace to GtkSource. 2020-07-13 10:02:59 +10:00
Drew Holzworth 5ceb86423d
Fixed some more SourceView warnings from the code generator. 2020-07-08 09:04:28 +10:00
Drew Holzworth 43e78d943a
Fixed cake settings for sourceview
Need ref. to GioSharp.
2020-07-07 15:45:59 +10:00
Drew Holzworth dc1410b511
Let's see if we can integrate sourceview code generation into cake 2020-07-07 12:21:51 +10:00
Drew Holzworth 7eae2a3f6d
SourceView should access GtkSharp via project reference
(rather than nuget package reference.)
2020-07-07 10:17:47 +10:00
Drew Holzworth 865bd0dac4
Changed samples project to show code in sourceview. 2020-07-07 10:08:21 +10:00
Drew Holzworth 9b52ca0713
Add Gtk.Source to Library.cs
todo - check with maintainers, is this correct.
2020-07-07 10:07:05 +10:00