Commit graph

169 commits

Author SHA1 Message Date
Mads Kruse Johnsen
41d6f0bf28 Queue freeing of GCHandles instead of freeing them immidiately 2021-01-25 11:07:39 +01:00
Mads Kruse Johnsen
06b88bdbc5 Queue freeing of signals on the main-thread instead of on the Finalizer thread. 2021-01-25 11:07:39 +01:00
Mads Kruse Johnsen
470ce6cff7 Invoke Destroy in Dispose if the Widget IsToplevel and it is not already destroyed
If the Widget is a toplevel then we have not ref'ed the Object, so ref before destroying it, and let the freeing of the ToggleRef undo the ref.
2021-01-25 11:07:39 +01:00
Mads Kruse Johnsen
c3364fd338 Fix MessageDialog effectively creating an additional Dialog due to wrong base call 2021-01-25 11:07:39 +01:00
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
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
dd8f3f994e glib: Handle GValue containing GType 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
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
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
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
724df41249
Revert "Sign the DLL files" 2020-08-07 13:30:09 +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
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-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
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
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
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
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
9b52ca0713
Add Gtk.Source to Library.cs
todo - check with maintainers, is this correct.
2020-07-07 10:07:05 +10:00
Drew Holzworth
a0080977e9
Checkpoint progress : generate.sh is now working. 2020-07-07 09:43:47 +10:00
Drew Holzworth
b6b806ac80
Initial commit of sourceview files. 2020-07-02 15:09:23 +10:00
Harry
3b90cbf9f2
Merge pull request #139 from ermshiperete/sign
Sign the DLL files
2020-06-29 10:37:01 +02:00
lytico
79db23fd80 Gtk.Container.gtksharp_container_base_forall & CellRenderer.gtksharp_cellrenderer_base_get_size: check if obj is null 2020-05-28 22:54:23 +02:00
Dadoum
f8568ff821
Fix Container.ForAll
A SIGSEGV occurs without this change  (Invalid pointer: 0x00 fix)
2020-05-18 19:48:11 +02:00
Alex Dircksen
ed414df9f2 Handle NULL in GLib.Value -> GLib.Variant cast operator 2020-04-26 21:24:31 +02:00
Harry
40773f3c88
Merge pull request #156 from lytico/lytico_cellrenderer_getsize
Gtk.CellRenderer: implement OnGetSize
2020-04-22 20:16:45 +02:00
lytico
8bf40381a5 Gdk.Screen: SizeChanged, CompositedChanged, MonitorsChanged as signals 2020-04-21 22:49:49 +02:00
lytico
fb33b67d25 GtkSharp.CellRenderer.gtksharp_cellrenderer_base_get_size: adjust loop exit 2020-04-21 18:54:32 +02:00
lytico
38a43f7a7e GtkSharp.CellRenderer: implement https://github.com/mono/gtk-sharp/blob/master/gtk/glue/gtk/cellrenderer.c 2020-04-21 17:28:34 +02:00
Harry
7054da77af
Merge pull request #151 from lytico/lytico_overridechain
Fix overide chain
2020-04-16 21:49:54 +02:00
lytico
c6cfc9d58c AbiStructExtension.BaseOverride: introduce an Extension to find the first overriden method in a base-class, even if a overriden class doesn't override the base class & change to GapiCodegen to use this extension 2020-04-06 22:31:10 +02:00
lytico
10f9819446 GtkSharp.Container: implement https://github.com/mono/gtk-sharp/blob/master/gtk/glue/container.c 2020-04-06 21:55:17 +02:00
Harry
0fb659c2bf
Merge pull request #145 from awittaker/GtkApplication_string_array_fixes
Change Gtk.Application action/accel related calls to use string[]
2020-04-03 04:14:01 +02:00
awittaker
a0b3f306ea Change Gtk.Application action/accel related calls to use string[] 2020-03-30 14:49:49 +01:00
Harry
fa8f659429
Merge pull request #134 from awittaker/SetUris_Fix
Change Gtk.SelectionData Uris & SetUris to use string[]
2020-03-28 19:10:24 +01:00
awittaker
3b6b33a28d Change GtkWidget.ListActionPrefixes() to return string[] instead of string 2020-03-28 15:57:31 +00:00
awittaker
f927dd1ec1 Change Gtk.SelectionData Uris & SetUris to use string[] by null_term_array="1" 2020-03-28 15:51:08 +00:00
harry-cpp
7879029876 Automatically check the usr folder on macOS 2020-03-26 17:10:45 +01:00
Mikkel Kruse Johnsen
ed68eeadfd
Sign the DLL files 2020-03-02 16:46:24 +01:00
Harry
1a76bf56cb
Merge pull request #126 from awittaker/combobox.entry-fix
Combobox.entry fix invalid cast exception
2020-01-08 07:34:06 +01:00
awittaker
35f4c10a8e Fix 'ComboBoxText.Entry' hides inherited member 'ComboBox.Entry'. 2020-01-07 18:20:03 +00:00
awittaker
b070b77fe0 Prevent InvalidCastException in Combobox.Entry 2020-01-07 18:18:00 +00:00
cra0zy
dfc9980f58 Only download Gtk on Windows 2019-11-07 22:35:42 +01:00
cra0zy
a32bcb35c7 Better way of including Gtk libs 2019-11-07 21:32:32 +01:00
cra0zy
5a179531bb Fix hardcoded test location 2019-11-04 23:57:06 +01:00
cra0zy
4675d0fa82 Bundle Windows Gtk Libraries 2019-11-04 23:14:33 +01:00
cra0zy
e9f1f3628d Improve library loading code 2019-11-04 21:02:36 +01:00
Mikhail Kanygin
42a0e01775 Fixtures: added UnmanagedFunctionPointer to whole delegate calls collection to prevent stack incosistence exception for x86 apllications on windows. 2019-11-04 20:12:50 +01:00
cra0zy
377a1abfc4 Revert "Project files"
This reverts commit 32fdca5754.
2019-08-10 17:02:18 +02:00
Mads Kruse Johnsen
99960543b1 Null check 2019-08-10 15:58:34 +02:00
Mads Kruse Johnsen
2e1882d31e Attempt minimal changes to obtain proper disposing. 2019-08-10 15:58:34 +02:00
Mads Kruse Johnsen
32fdca5754 Project files 2019-08-10 15:58:34 +02:00
Mikkel Kruse Johnsen
9764260931 Free all internal signals, else the garbage collector is not able to free the object. 2019-01-08 11:39:25 +01:00
Harry
304eefde96
Merge pull request #67 from cra0zy/fixtreeiter
Fix TextView.GetIterAtPosition (fixes #58)
2018-11-25 15:54:06 +00:00
Harry
f0ec98948c
Merge pull request #68 from cra0zy/styleprop
Fix StyleContext.GetProperty (fixes #51)
2018-11-25 15:53:55 +00:00
cra0zy
e0f9a93b31 Fix StyleContext.GetProperty (fixes #51) 2018-11-25 16:52:38 +01:00
cra0zy
ef45d42dcf Fix TextView.GetIterAtPosition (fixes #58) 2018-11-25 16:29:06 +01:00
miegir
93deaa1219
fix type initialization error in VariantType
Move public static fields below function pointers on which they depend
2018-11-05 22:42:54 +03:00
cra0zy
34dbf5ee16 [Gtk] Fix clipboard store not accepting an array 2018-04-12 11:38:59 +02:00
cra0zy
3bfa6e7295 Add DeltaX and DeltaY to Gdk.EventScroll (fixes #37) 2018-04-05 23:25:46 +02:00
Pedro Larouca
aca698f178 [FIX] PangoSharp metadata (osx) 2018-03-31 02:01:38 +01:00
cra0zy
d04764433f [Pango] Fix getting FontFamily on Windows 2018-03-30 20:15:09 +02:00
Harry
569b62132e
Revert "Fix getting Pango fonts" 2018-03-30 16:28:50 +02:00
cra0zy
39f3bfdb23 Fix getting Pango fonts 2018-03-12 05:28:49 -07:00
cra0zy
a8c2f4dbcc Fix GetClipRectangle 2018-03-10 18:57:23 +01:00
cra0zy
a31c0ca3a0 Add RTLD_GLOBAL flag 2018-03-01 20:11:35 +01:00
Harry
553b59abb8
Revert "Fix a null reference exception" 2018-03-01 17:02:25 +01:00
cra0zy
186b1ce72b Fix a null reference exception 2018-03-01 15:04:08 +01:00
cra0zy
26ef5bad3e
Fix file permissions, how did this happen? 2018-02-26 23:03:31 +01:00
cra0zy
b93654e39d Disable not found function printing (closes #18) 2018-02-02 19:21:28 +01:00
cra0zy
441ed4b897 Improve OS detection (fixes #14) 2018-01-29 19:37:54 +01:00
MarchingCube
edd455ba02 [Cairo] Add missing ClipExtents (cairo_clip_extents) method. 2018-01-28 00:00:14 +01:00
MarchingCube
887adc0340 [Codegen] Fixed gtk_widget_get_clip call. 2018-01-27 23:14:43 +01:00
cra0zy
7952f969cf Remove unused info from GLib api file 2018-01-22 02:45:30 +01:00
cra0zy
6bc375eaf4 Rename EventArgs to SocketEventArgs to avoid name conflict with System 2018-01-22 00:19:45 +01:00
cra0zy
1e626abda2 Don't write found extensions 2018-01-19 01:56:31 +01:00
cra0zy
a224a9e161 Fix up more of the residual errors that came with the switch 2018-01-19 01:29:05 +01:00
cra0zy
411cdfd502 Safeload static functions as well 2018-01-18 22:54:45 +01:00
cra0zy
8b5cb38bcb Setup safer function loading so the bindings can be used on older versions of Gtk 2018-01-18 20:41:31 +01:00
cra0zy
af97186201 Reorganize the build system a bit 2018-01-18 20:41:31 +01:00
cra0zy
3f0810c93a Split out FuncLoader into multiple files 2018-01-18 20:41:31 +01:00