gtk4.git
4 years agoMerge branch 'matthiasc/for-main' into 'main'
Matthias Clasen [Wed, 15 Dec 2021 00:06:11 +0000 (00:06 +0000)]
Merge branch 'matthiasc/for-main' into 'main'

inspector: Use a listview in the recorder

See merge request GNOME/gtk!4255

4 years agoa11y: return -1 if parent is NULL
Christian Hergert [Fri, 19 Nov 2021 19:59:29 +0000 (11:59 -0800)]
a11y: return -1 if parent is NULL

4 years agoinspector: Use a listview in the recorder
Matthias Clasen [Tue, 14 Dec 2021 20:08:12 +0000 (15:08 -0500)]
inspector: Use a listview in the recorder

Its the awesome new list widget, lets use it!

4 years agoMerge branch 'ebassi/issue-4543' into 'main'
Matthias Clasen [Tue, 14 Dec 2021 18:09:01 +0000 (18:09 +0000)]
Merge branch 'ebassi/issue-4543' into 'main'

Add a boxed GType for GtkBitsetIter

Closes #4543

See merge request GNOME/gtk!4253

4 years agoAdd a boxed GType for GtkBitsetIter
Emmanuele Bassi [Tue, 14 Dec 2021 15:51:13 +0000 (15:51 +0000)]
Add a boxed GType for GtkBitsetIter

This way language bindings have a chance at managing the memory of
GtkBitset iterators.

Fixes: #4543
4 years agoUpdate Portuguese translation
Hugo Carvalho [Tue, 14 Dec 2021 14:20:25 +0000 (14:20 +0000)]
Update Portuguese translation

4 years agoUpdate Portuguese translation
Hugo Carvalho [Tue, 14 Dec 2021 14:03:49 +0000 (14:03 +0000)]
Update Portuguese translation

4 years agoUpdate Ukrainian translation
Yuri Chornoivan [Tue, 14 Dec 2021 13:21:33 +0000 (13:21 +0000)]
Update Ukrainian translation

4 years agoUpdated Lithuanian translation
Aurimas Černius [Tue, 14 Dec 2021 11:41:59 +0000 (13:41 +0200)]
Updated Lithuanian translation

4 years agoMerge branch 'optimize-precompile' into 'main'
Matthias Clasen [Tue, 14 Dec 2021 06:34:49 +0000 (06:34 +0000)]
Merge branch 'optimize-precompile' into 'main'

builder: Use a string chunk for precompile

See merge request GNOME/gtk!4233

4 years agobuilder: Drop empty text chunks when precompiling
Matthias Clasen [Tue, 14 Dec 2021 06:06:05 +0000 (01:06 -0500)]
builder: Drop empty text chunks when precompiling

These don't add any value either.

4 years agobuilder: Drop irrelevant whitespace in precompile
Matthias Clasen [Tue, 14 Dec 2021 05:12:37 +0000 (00:12 -0500)]
builder: Drop irrelevant whitespace in precompile

Drop text nodes that won't contribute to the end result.
This gets rid of a lot of text nodes in the replay.

4 years agoMerge branch 'matthiasc/for-main' into 'main'
Matthias Clasen [Tue, 14 Dec 2021 04:58:06 +0000 (04:58 +0000)]
Merge branch 'matthiasc/for-main' into 'main'

builder: Use GMarkup properly

See merge request GNOME/gtk!4250

4 years agobuilder: Use g_slice_free_chain() for strings in precompile
Garrett Regier [Thu, 23 Sep 2021 22:26:56 +0000 (15:26 -0700)]
builder: Use g_slice_free_chain() for strings in precompile

4 years agobuilder: Remove root special case from precompile
Garrett Regier [Thu, 23 Sep 2021 22:21:53 +0000 (15:21 -0700)]
builder: Remove root special case from precompile

4 years agobuilder: Avoid g_hash_table_get_values() in precompile
Garrett Regier [Wed, 22 Sep 2021 01:01:54 +0000 (18:01 -0700)]
builder: Avoid g_hash_table_get_values() in precompile

Embed the GList link in the RecordDataString.

4 years agobuilder: Use a flexible array for attributes in precompile
Garrett Regier [Tue, 21 Sep 2021 22:26:45 +0000 (15:26 -0700)]
builder: Use a flexible array for attributes in precompile

4 years agobuilder: Reduce memory usage in precompile
Garrett Regier [Tue, 21 Sep 2021 22:13:34 +0000 (15:13 -0700)]
builder: Reduce memory usage in precompile

Split the Element and Text nodes into separate structures.

4 years agobuilder: Use a GQueue in precompile
Garrett Regier [Tue, 21 Sep 2021 21:36:40 +0000 (14:36 -0700)]
builder: Use a GQueue in precompile

This avoids g_list_last() and
embeds the GList link in the RecordDataTree.

4 years agobuilder: Use a reasonable default string size in precompile
Garrett Regier [Tue, 21 Sep 2021 21:26:24 +0000 (14:26 -0700)]
builder: Use a reasonable default string size in precompile

4 years agobuilder: Embed text length in precompile
Garrett Regier [Tue, 21 Sep 2021 21:23:34 +0000 (14:23 -0700)]
builder: Embed text length in precompile

4 years agobuilder: Combine attribute name and value allocations
Garrett Regier [Tue, 21 Sep 2021 21:07:06 +0000 (14:07 -0700)]
builder: Combine attribute name and value allocations

4 years agobuilder: Use a string chunk for precompile
Garrett Regier [Tue, 21 Sep 2021 20:57:08 +0000 (13:57 -0700)]
builder: Use a string chunk for precompile

Also use an explicit length and avoid g_strndup().

4 years agobuilder: Avoid double string lookup in precompile
Garrett Regier [Tue, 21 Sep 2021 06:39:35 +0000 (23:39 -0700)]
builder: Avoid double string lookup in precompile

4 years agobuilder: Use GMarkup properly
Matthias Clasen [Tue, 14 Dec 2021 04:35:25 +0000 (23:35 -0500)]
builder: Use GMarkup properly

We must call end_parse to ensure we get errors
for incomplete documents.

4 years agoMerge branch 'matthiasc/for-main' into 'main'
Matthias Clasen [Tue, 14 Dec 2021 00:31:49 +0000 (00:31 +0000)]
Merge branch 'matthiasc/for-main' into 'main'

tiff loader: Catch more errors

See merge request GNOME/gtk!4248

4 years agotiff loader: Catch more errors
Matthias Clasen [Mon, 13 Dec 2021 22:51:24 +0000 (17:51 -0500)]
tiff loader: Catch more errors

tiff_open_read may fail, and we should not crash
in that case but return an error.

4 years agoMerge branch 'builder-tool-fixes' into 'main'
Matthias Clasen [Mon, 13 Dec 2021 21:29:48 +0000 (21:29 +0000)]
Merge branch 'builder-tool-fixes' into 'main'

builderparser: Be more robust

See merge request GNOME/gtk!4247

4 years agobuildertool: Be more robust
Matthias Clasen [Mon, 13 Dec 2021 20:08:35 +0000 (15:08 -0500)]
buildertool: Be more robust

Don't pass a NULL string to gtk_builder_value_from_string.

4 years agobuilderparser: Be more robust
Matthias Clasen [Mon, 13 Dec 2021 19:44:40 +0000 (14:44 -0500)]
builderparser: Be more robust

If a document contains no useful content,
just say so instead of crashing.

4 years agoMerge branch 'builder-tool-fixes' into 'main'
Matthias Clasen [Mon, 13 Dec 2021 19:54:56 +0000 (19:54 +0000)]
Merge branch 'builder-tool-fixes' into 'main'

buildertool: Fix a possible crash

See merge request GNOME/gtk!4246

4 years agobuildertool: Be more robust
Matthias Clasen [Mon, 13 Dec 2021 19:19:12 +0000 (14:19 -0500)]
buildertool: Be more robust

A lot of crashes in simplify can be avoided
if get_class_name does not return NULL.

4 years agobuildertool: Fix a possible crash
Matthias Clasen [Mon, 13 Dec 2021 18:52:50 +0000 (13:52 -0500)]
buildertool: Fix a possible crash

We need to call g_markup_parse_context_end_parse
to catch incomplete documents that we might not
handle well later.

4 years agoUpdate Ukrainian translation
Yuri Chornoivan [Mon, 13 Dec 2021 13:16:42 +0000 (13:16 +0000)]
Update Ukrainian translation

4 years agoMerge branch 'wip/baedert/for-master' into 'main'
Matthias Clasen [Mon, 13 Dec 2021 12:55:04 +0000 (12:55 +0000)]
Merge branch 'wip/baedert/for-master' into 'main'

gl: Imply that node_supports_transforms() means 2D transforms

Closes #4501

See merge request GNOME/gtk!4232

4 years agoMerge branch 'fix-x11-drag-icons' into 'main'
Matthias Clasen [Mon, 13 Dec 2021 03:39:48 +0000 (03:39 +0000)]
Merge branch 'fix-x11-drag-icons' into 'main'

colorswatch: Make drag source optional

See merge request GNOME/gtk!4244

4 years agocolorbutton: No nested drag sources, please
Matthias Clasen [Mon, 13 Dec 2021 03:23:31 +0000 (22:23 -0500)]
colorbutton: No nested drag sources, please

This is causing trouble on X11.

4 years agodragicon: Make color icons work in X11
Matthias Clasen [Mon, 13 Dec 2021 02:01:40 +0000 (21:01 -0500)]
dragicon: Make color icons work in X11

We need to disable the DND support in
GtkColorSwatch completely for this to work
in X11.

4 years agocolorswatch: Make drag source optional
Matthias Clasen [Mon, 13 Dec 2021 02:01:01 +0000 (21:01 -0500)]
colorswatch: Make drag source optional

When using a colorswatch as a drag icon,
this can get in the way, so make it optional.

4 years agoMerge branch 'matthiasc/for-main' into 'main'
Matthias Clasen [Mon, 13 Dec 2021 02:43:48 +0000 (02:43 +0000)]
Merge branch 'matthiasc/for-main' into 'main'

dragicon: Provide default icons for paintables

See merge request GNOME/gtk!4243

4 years agodragicon: Provide default icons for more types
Matthias Clasen [Mon, 13 Dec 2021 01:43:50 +0000 (20:43 -0500)]
dragicon: Provide default icons for more types

Provide default icons for paintables and files.
This is easy to do, and makes sense.

fixup drag icon

4 years agodragicon: No events, please
Matthias Clasen [Mon, 13 Dec 2021 02:28:34 +0000 (21:28 -0500)]
dragicon: No events, please

We run into trouble on X11 if the widgets
in the drag icon have drop targets attached.
Prevent this by suppressing event delivery
to drag icons outright.

4 years agoMerge branch 'wip/otte/for-main' into 'main'
Benjamin Otte [Mon, 13 Dec 2021 01:17:00 +0000 (01:17 +0000)]
Merge branch 'wip/otte/for-main' into 'main'

x11: Fix a deadlock in INCR transfers

See merge request GNOME/gtk!4242

4 years agox11: Don't delete important signal handlers randomly
Benjamin Otte [Mon, 13 Dec 2021 00:54:21 +0000 (01:54 +0100)]
x11: Don't delete important signal handlers randomly

We finish the write to the output stream long after the stream has been
closed, so we want to keep the event handler around to do just that.

Instead, remove the handler on finalize.

4 years agox11: Explicitly track end of stream
Benjamin Otte [Mon, 13 Dec 2021 00:52:30 +0000 (01:52 +0100)]
x11: Explicitly track end of stream

The OutputStream needs to write a 0 byte end of stream Property. We need
to track if that has been written, and we do that with that new
property.

We also use that property to always request flushes when the stream is
being closed, so that we don't wait for another flush() call.

4 years agox11: Explicitly close_async() the output stream
Benjamin Otte [Mon, 13 Dec 2021 00:43:24 +0000 (01:43 +0100)]
x11: Explicitly close_async() the output stream

We need to be very careful when writing data, because if we aren't, sync
functions will be called on the output stream and X11 does not like that
at all.

4 years agox11: Keep a reference to the SelectionOutputStream while writing
Benjamin Otte [Mon, 13 Dec 2021 00:41:04 +0000 (01:41 +0100)]
x11: Keep a reference to the SelectionOutputStream while writing

This ensures close() isn't called from dispose() while we're still busy
writing.

In theory this should never happen, but in practice it just did.

4 years agoMerge branch 'clipboard-demo-improvements' into 'main'
Matthias Clasen [Sun, 12 Dec 2021 23:51:30 +0000 (23:51 +0000)]
Merge branch 'clipboard-demo-improvements' into 'main'

inspector: Show more datatypes for the clipboard

See merge request GNOME/gtk!4241

4 years agogdk: Drop some pointless code
Matthias Clasen [Sun, 12 Dec 2021 23:27:58 +0000 (18:27 -0500)]
gdk: Drop some pointless code

There is no point in sorting png first when
registering (de)serializers, since we ignore
the png format now when walking the list.

4 years agoinspector: Show more datatypes for the clipboard
Matthias Clasen [Sun, 12 Dec 2021 23:01:50 +0000 (18:01 -0500)]
inspector: Show more datatypes for the clipboard

It is easy enough to show colors, files and pixbufs.

4 years agoMerge branch 'clipboard-demo-improvements' into 'main'
Matthias Clasen [Sun, 12 Dec 2021 21:42:31 +0000 (21:42 +0000)]
Merge branch 'clipboard-demo-improvements' into 'main'

droptarget: Improve the docs

See merge request GNOME/gtk!4240

4 years agogtk-demo: Add dnd back to the clipboard demo
Matthias Clasen [Sun, 12 Dec 2021 21:25:07 +0000 (16:25 -0500)]
gtk-demo: Add dnd back to the clipboard demo

4 years agodroptarget: Improve the docs
Matthias Clasen [Sun, 12 Dec 2021 21:26:00 +0000 (16:26 -0500)]
droptarget: Improve the docs

Add the signal connection to the example.

4 years agoMerge branch 'clipboard-demo-improvements' into 'main'
Matthias Clasen [Sun, 12 Dec 2021 18:58:07 +0000 (18:58 +0000)]
Merge branch 'clipboard-demo-improvements' into 'main'

gtk-demo: Small followup fixes

See merge request GNOME/gtk!4239

4 years agogtk-demo: Small followup fixes
Matthias Clasen [Sun, 12 Dec 2021 18:41:24 +0000 (13:41 -0500)]
gtk-demo: Small followup fixes

Make image copy work remotely.

4 years agoMerge branch 'new-clipboard-demo' into 'main'
Matthias Clasen [Sun, 12 Dec 2021 18:30:27 +0000 (18:30 +0000)]
Merge branch 'new-clipboard-demo' into 'main'

docs: Small improvement

See merge request GNOME/gtk!4238

4 years agogtk-demo: Rewrite the clipboard demo
Matthias Clasen [Sun, 12 Dec 2021 18:13:11 +0000 (13:13 -0500)]
gtk-demo: Rewrite the clipboard demo

This is more in line with the current clipboard
api, and shows handling colors and files.

4 years agoUpdate Ukrainian translation
Yuri Chornoivan [Sun, 12 Dec 2021 17:18:14 +0000 (17:18 +0000)]
Update Ukrainian translation

4 years agoUpdate Portuguese translation
Hugo Carvalho [Sun, 12 Dec 2021 16:26:05 +0000 (16:26 +0000)]
Update Portuguese translation

4 years agodocs: Small improvement
Matthias Clasen [Sun, 12 Dec 2021 14:03:11 +0000 (09:03 -0500)]
docs: Small improvement

I could not find the attributes of the <binding>
element mentioned anywhere in the docs.

4 years agoUpdate POTFILES.in and POTFILES.skip
Piotr Drąg [Sun, 12 Dec 2021 12:54:41 +0000 (13:54 +0100)]
Update POTFILES.in and POTFILES.skip

4 years agogl: Linear gradients don't support 3d transforms
Timm Bäder [Fri, 10 Dec 2021 19:07:39 +0000 (20:07 +0100)]
gl: Linear gradients don't support 3d transforms

Add another helper similar to the one for transforms, but that only
works on 2d transforms.

Fixes #4501

4 years agoMerge branch 'wip/otte/inspector' into 'main'
Benjamin Otte [Sat, 11 Dec 2021 22:46:30 +0000 (22:46 +0000)]
Merge branch 'wip/otte/inspector' into 'main'

inspector: Add a clipboard page

See merge request GNOME/gtk!4237

4 years agocontentformats: Make sure 0 elements means the array is NULL
Benjamin Otte [Sat, 11 Dec 2021 22:21:53 +0000 (23:21 +0100)]
contentformats: Make sure 0 elements means the array is NULL

Don't return arrays with 0 elements, return NULL.

4 years agoinspector: Add a clipboard page
Benjamin Otte [Thu, 19 Aug 2021 16:38:27 +0000 (18:38 +0200)]
inspector: Add a clipboard page

Shows all the formats supported by the clipboard (and primary clipboard)
and allows displaying them (by potentially downloading them)

4 years agoMerge branch 'fix-textchild-abi' into 'main'
Matthias Clasen [Sat, 11 Dec 2021 16:32:45 +0000 (16:32 +0000)]
Merge branch 'fix-textchild-abi' into 'main'

Restore the GtkTextchild abi

Closes #4531

See merge request GNOME/gtk!4236

4 years agoRestore the GtkTextchild abi
Matthias Clasen [Sat, 11 Dec 2021 15:55:55 +0000 (10:55 -0500)]
Restore the GtkTextchild abi

Move the new chars field to a private struct.

Fixes: #4531
4 years agoMerge branch 'deprecate-device-source' into 'main'
Matthias Clasen [Fri, 10 Dec 2021 18:35:00 +0000 (18:35 +0000)]
Merge branch 'deprecate-device-source' into 'main'

Deprecate GdkDevice:source

See merge request GNOME/gtk!4207

4 years agoMerge branch 'fix-printer-enumeration' into 'main'
Matthias Clasen [Fri, 10 Dec 2021 18:01:59 +0000 (18:01 +0000)]
Merge branch 'fix-printer-enumeration' into 'main'

Fix dialog-less printing

Closes #4439

See merge request GNOME/gtk!4215

4 years agoMerge branch 'bump-meson-dep' into 'main'
Matthias Clasen [Fri, 10 Dec 2021 18:00:50 +0000 (18:00 +0000)]
Merge branch 'bump-meson-dep' into 'main'

Require meson 0.59

Closes #4486

See merge request GNOME/gtk!4230

4 years agoMerge branch 'missing-since-tag' into 'main'
Matthias Clasen [Fri, 10 Dec 2021 17:15:32 +0000 (17:15 +0000)]
Merge branch 'missing-since-tag' into 'main'

Add a missing since tag

See merge request GNOME/gtk!4229

4 years agoci: Use meson 0.59 for msvc
Matthias Clasen [Fri, 10 Dec 2021 17:14:04 +0000 (12:14 -0500)]
ci: Use meson 0.59 for msvc

4 years agoci: Use meson 0.59 on macos
Matthias Clasen [Fri, 10 Dec 2021 17:12:52 +0000 (12:12 -0500)]
ci: Use meson 0.59 on macos

4 years agoFix the targets variable in pc files
Matthias Clasen [Fri, 10 Dec 2021 16:36:07 +0000 (11:36 -0500)]
Fix the targets variable in pc files

This is meant as a space-separated list of
string, so escaping the spaces is uncalled
for.

Fixes: #4486
4 years agoRequire meson 0.59
Matthias Clasen [Fri, 10 Dec 2021 16:34:23 +0000 (11:34 -0500)]
Require meson 0.59

This is needed to fix a regression in our pc file
generation.

4 years agoAdd a missing since tag
Matthias Clasen [Fri, 10 Dec 2021 13:26:59 +0000 (08:26 -0500)]
Add a missing since tag

gtk_text_child_anchor_new_with_replacement was
recently added.

4 years agoFix dialog-less printing
Matthias Clasen [Wed, 1 Dec 2021 03:07:02 +0000 (22:07 -0500)]
Fix dialog-less printing

We were sometimes ending printer enumeration prematurely,
and the code was confused about the meaning of found_printer.

The new setup follows these rules:
- We *only* end the search prematurely if found_printer
  is set, which indicates that we found the right printer
- We *always* call find_printer_idle exactly once, and
  make it return less than perfect matches like the
  default printer, or the first printer we found

Fixes: #4439
4 years agoMerge branch 'wip/jimmac/unfocused-selection-dejavu' into 'main'
Matthias Clasen [Fri, 10 Dec 2021 13:17:32 +0000 (13:17 +0000)]
Merge branch 'wip/jimmac/unfocused-selection-dejavu' into 'main'

Revert "styling: Have unfocused selections"

Closes #4393

See merge request GNOME/gtk!4228

4 years agoselections: have unfocused state
Jakub Steiner [Fri, 10 Dec 2021 11:00:12 +0000 (12:00 +0100)]
selections: have unfocused state

- text selections for unfocused elements - textview, label, entry,
  spinbutton

fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/4393

4 years agoRevert "styling: Have unfocused selections"
Jakub Steiner [Fri, 10 Dec 2021 10:36:10 +0000 (11:36 +0100)]
Revert "styling: Have unfocused selections"

This reverts commit 96f63a6bf343d1f2fbdbcbdaca9835fa675351dc.

4 years agoMerge branch 'bilelmoussaoui/header' into 'main'
Matthias Clasen [Thu, 9 Dec 2021 23:50:21 +0000 (23:50 +0000)]
Merge branch 'bilelmoussaoui/header' into 'main'

gdk: drop removed method from the header

See merge request GNOME/gtk!4225

4 years agoMerge branch 'wip/chergert/fix-macos-crash' into 'main'
Matthias Clasen [Thu, 9 Dec 2021 23:49:39 +0000 (23:49 +0000)]
Merge branch 'wip/chergert/fix-macos-crash' into 'main'

macos: fix crash in imcontextquartz

See merge request GNOME/gtk!4226

4 years agogdk: drop removed method from the header
Bilal Elmoussaoui [Thu, 9 Dec 2021 20:29:17 +0000 (20:29 +0000)]
gdk: drop removed method from the header

4 years agomacos: fix crash in imcontextquartz
Christian Hergert [Thu, 9 Dec 2021 20:26:33 +0000 (12:26 -0800)]
macos: fix crash in imcontextquartz

4 years agoMerge branch 'fix-picture-natural-size-0' into 'main'
Benjamin Otte [Wed, 8 Dec 2021 19:33:28 +0000 (19:33 +0000)]
Merge branch 'fix-picture-natural-size-0' into 'main'

picture: Return natural size 0 for size 0

See merge request GNOME/gtk!4177

4 years agoreftests: Add center-center reftests without GtkOverlay
Benjamin Otte [Wed, 8 Dec 2021 18:09:29 +0000 (19:09 +0100)]
reftests: Add center-center reftests without GtkOverlay

4 years agoreftests: Rename a bunch of tests
Benjamin Otte [Wed, 8 Dec 2021 17:14:59 +0000 (18:14 +0100)]
reftests: Rename a bunch of tests

They use a GtkOverlay, so reflect that in the name.

4 years agopicture: Return natural size 0 for size 0
Ivan Molodetskikh [Fri, 19 Nov 2021 13:26:07 +0000 (16:26 +0300)]
picture: Return natural size 0 for size 0

It was returning the full natural size (same as -1) due to default value
handling in the code below.

Tests have been updated to match this output.

4 years agoMerge branch 'wip/chergert/fix-recursive-action-muxer' into 'main'
Matthias Clasen [Wed, 8 Dec 2021 10:47:40 +0000 (10:47 +0000)]
Merge branch 'wip/chergert/fix-recursive-action-muxer' into 'main'

actionmuxer: avoid duplicate and recursive work

Closes #4422, #4519, and gnome-text-editor#220

See merge request GNOME/gtk!4223

4 years agoMerge branch 'wip/chergert/layout-marshaller' into 'main'
Matthias Clasen [Wed, 8 Dec 2021 10:46:35 +0000 (10:46 +0000)]
Merge branch 'wip/chergert/layout-marshaller' into 'main'

surface: add missing va_marshaller for layout signal

See merge request GNOME/gtk!4221

4 years agoMerge branch 'wip/chergert/reduce-action-muxer-allocations' into 'main'
Matthias Clasen [Wed, 8 Dec 2021 10:45:56 +0000 (10:45 +0000)]
Merge branch 'wip/chergert/reduce-action-muxer-allocations' into 'main'

menutracker: reduce allocations and signal emission

See merge request GNOME/gtk!4222

4 years agoactionmuxer: avoid duplicate and recursive work
Christian Hergert [Wed, 8 Dec 2021 08:31:49 +0000 (00:31 -0800)]
actionmuxer: avoid duplicate and recursive work

If we've already done the tracking into the parent muxer, there is no need
to do it again. This can save a great deal of recursive work when adding
items to the muxer.

This makes showing the context menu in gnome-text-editor repeatedly fast
even as spelling corrections are changed.

It is likely that this could fix #4422 as well.

Fixes #4519
Fixes https://gitlab.gnome.org/GNOME/gnome-text-editor/-/issues/220

4 years agomenutracker: reduce allocations and signal emission
Christian Hergert [Wed, 8 Dec 2021 06:33:20 +0000 (22:33 -0800)]
menutracker: reduce allocations and signal emission

When handling action-added callbacks the code was previously using a
freeze_notify/thaw_notify in all cases. This turns out to allocate a
significant amount of memory when called a lot.

That said, it shouldn't be getting called this much but given the current
state of affairs elsewhere in GtkActionMuxer, this brought temporary
allocations down from 9MiB to 9KiB in gnome-text-editor after showing
the context menu a few times.

Related #4422

4 years agosurface: add missing va_marshaller for layout signal
Christian Hergert [Wed, 8 Dec 2021 06:21:19 +0000 (22:21 -0800)]
surface: add missing va_marshaller for layout signal

I saw this coming across through a ffi boundary in Sysprof, and we wanted
to keep most things within GDK using native marshalling to improve
profiler results when frame pointers are not used.

4 years agoMerge branch 'wip/otte/viewport' into 'main'
Benjamin Otte [Tue, 7 Dec 2021 23:31:06 +0000 (23:31 +0000)]
Merge branch 'wip/otte/viewport' into 'main'

viewport: Handle things differently

See merge request GNOME/gtk!4220

4 years agoviewport: Allocate properly
Benjamin Otte [Tue, 7 Dec 2021 23:12:35 +0000 (00:12 +0100)]
viewport: Allocate properly

Instead of allocation width for height for width for height or whatever
that code was doing, actually allocate the size we were given or the
requested size, whatever is larger.

4 years agoRevert "viewport: Actually report the size we're gonna allocate"
Benjamin Otte [Tue, 7 Dec 2021 22:52:21 +0000 (23:52 +0100)]
Revert "viewport: Actually report the size we're gonna allocate"

This reverts commit b8468af4117974fd2af14e863865f494b021f29c.

4 years agoMerge branch 'wip/otte/viewport' into 'main'
Benjamin Otte [Tue, 7 Dec 2021 21:19:58 +0000 (21:19 +0000)]
Merge branch 'wip/otte/viewport' into 'main'

viewport: Use array for member variables

See merge request GNOME/gtk!4219

4 years agoviewport: Actually report the size we're gonna allocate
Benjamin Otte [Tue, 7 Dec 2021 20:54:02 +0000 (21:54 +0100)]
viewport: Actually report the size we're gonna allocate

Don't just pass on measure() calls, but actually behave in the way we
behave during size allocate.

This should improve cases where GtkScrolledWindow is used with GTK_POLICY_NEVER.

4 years agoviewport: Use array for member variables
Benjamin Otte [Tue, 7 Dec 2021 20:25:37 +0000 (21:25 +0100)]
viewport: Use array for member variables

That way we can index them by orientation in future commits.