gtk4.git
3 years agox11: Always update shadow size
Benjamin Otte [Thu, 26 May 2022 02:36:14 +0000 (04:36 +0200)]
x11: Always update shadow size

Not updating shadow size unconditionally would lead to shadow size not
being set on map, which would lead mutter to think that we are a Window
without extents and then become confused when we suddenly set some.

Make sure that doesn't happen by always having shadows set on map, just
like GTK3.

Fixes #4136

3 years agoMerge branch 'fix-memory-leak' into 'main'
Luca Bacci [Thu, 19 May 2022 09:05:50 +0000 (09:05 +0000)]
Merge branch 'fix-memory-leak' into 'main'

GdkWin32: Plug memory leak

See merge request GNOME/gtk!4747

3 years agoGdkWin32: Plug memory leak
Luca Bacci [Thu, 19 May 2022 06:49:05 +0000 (08:49 +0200)]
GdkWin32: Plug memory leak

3 years agoMerge branch 'wip/otte/for-main' into 'main'
Benjamin Otte [Wed, 18 May 2022 21:08:46 +0000 (21:08 +0000)]
Merge branch 'wip/otte/for-main' into 'main'

nodeparser: Fix parsing of color-matrix node

See merge request GNOME/gtk!4745

3 years agonodeparser: Fix parsing of color-matrix node
Benjamin Otte [Wed, 18 May 2022 19:16:33 +0000 (21:16 +0200)]
nodeparser: Fix parsing of color-matrix node

Negative offsets in the color matrix were inverted because it used the
rect parser.

3 years agoMerge branch 'wip/otte/for-main' into 'main'
Benjamin Otte [Wed, 18 May 2022 18:27:29 +0000 (18:27 +0000)]
Merge branch 'wip/otte/for-main' into 'main'

CI: Include reftest nodes in artifacts

See merge request GNOME/gtk!4743

3 years agoCI: Include reftest nodes in artifacts
Benjamin Otte [Wed, 18 May 2022 17:13:39 +0000 (19:13 +0200)]
CI: Include reftest nodes in artifacts

3 years agoUpdate Portuguese translation
Hugo Carvalho [Wed, 18 May 2022 14:54:31 +0000 (14:54 +0000)]
Update Portuguese translation

3 years agoMerge branch 'let_selectable_label_mnemonic_self_focus' into 'main'
Matthias Clasen [Wed, 18 May 2022 13:55:33 +0000 (13:55 +0000)]
Merge branch 'let_selectable_label_mnemonic_self_focus' into 'main'

Allow selectable labels contents to be selected by mnemonic

See merge request GNOME/gtk!4741

3 years agoAllow selectable labels contents to be selected by mnemonic
Caolán McNamara [Wed, 18 May 2022 11:40:40 +0000 (12:40 +0100)]
Allow selectable labels contents to be selected by mnemonic

expecially by the mnemonic of another label that targets it.

https://gitlab.gnome.org/GNOME/gtk/-/issues/4927

see also https://bugs.documentfoundation.org/show_bug.cgi?id=137748

3 years agoUpdate Catalan translation
Jordi Mas [Wed, 18 May 2022 11:32:32 +0000 (13:32 +0200)]
Update Catalan translation

3 years agoMerge branch 'wip/chergert/fix-4934' into 'main'
Matthias Clasen [Wed, 18 May 2022 01:34:47 +0000 (01:34 +0000)]
Merge branch 'wip/chergert/fix-4934' into 'main'

checkbutton: fix critical when setting use-underline

Closes #4934

See merge request GNOME/gtk!4740

3 years agocheckbutton: fix critical when setting use-underline
Christian Hergert [Tue, 17 May 2022 19:28:25 +0000 (12:28 -0700)]
checkbutton: fix critical when setting use-underline

This needs to make sure that we've created the label before applying the
setting on a child widget.

Fixes #4934

3 years agoMerge branch 'wip/otte/for-main' into 'main'
Benjamin Otte [Tue, 17 May 2022 00:19:01 +0000 (00:19 +0000)]
Merge branch 'wip/otte/for-main' into 'main'

testsuite: Add tests for label overdraw

See merge request GNOME/gtk!4737

3 years agotestsuite: Add tests for label overdraw
Benjamin Otte [Mon, 16 May 2022 20:26:09 +0000 (22:26 +0200)]
testsuite: Add tests for label overdraw

This brings back a subset of what quit-mnemonic.ui tested for, but
trying a lot harder to trigger the label overdrawing its allocation,
which will cause the text to be cut off when clipping is happening.

It should not be an issue at all with GTK4, but keeping that test around
is a good idea.

3 years agoMerge branch 'wip/chergert/fix-4625' into 'main'
Matthias Clasen [Mon, 16 May 2022 20:27:53 +0000 (20:27 +0000)]
Merge branch 'wip/chergert/fix-4625' into 'main'

gsk/gl: use critical instead of assert in dispose

Closes #4625

See merge request GNOME/gtk!4736

3 years agogsk/gl: use critical instead of assert in dispose
Christian Hergert [Mon, 16 May 2022 17:50:07 +0000 (10:50 -0700)]
gsk/gl: use critical instead of assert in dispose

Instead of asserting only in debug builds (which are generally not
shipped in distributions) we should deliver a critical log-level message
so that these can be found sooner when not developing with jhbuild,
Flatpak, etc.

Also assert that we've setup the state correctly when realizing the
GskGLRenderer object.

Fixes #4625

3 years agoUpdate Galician translation
Fran Dieguez [Mon, 16 May 2022 07:58:59 +0000 (07:58 +0000)]
Update Galician translation

3 years agoUpdate Persian translation
Danial Behzadi [Mon, 16 May 2022 07:38:02 +0000 (07:38 +0000)]
Update Persian translation

3 years agoMerge branch 'wip/sophie-h/remove-properties-translation' into 'main'
Matthias Clasen [Mon, 16 May 2022 00:14:28 +0000 (00:14 +0000)]
Merge branch 'wip/sophie-h/remove-properties-translation' into 'main'

l10n: Remove po/pot for dropped nicks/blurbs

See merge request GNOME/gtk!4718

3 years agoMerge branch 'hb-dependency' into 'main'
Matthias Clasen [Sun, 15 May 2022 16:34:19 +0000 (16:34 +0000)]
Merge branch 'hb-dependency' into 'main'

Add an explicit harfbuzz dependency

See merge request GNOME/gtk!4732

3 years agoAdd an explicit harfbuzz dependency
Matthias Clasen [Sun, 15 May 2022 14:37:24 +0000 (10:37 -0400)]
Add an explicit harfbuzz dependency

We are using Harfbuzz api in the file chooser,
so lets make this official.

3 years agoMerge branch 'gdk-win32-direct-manipulation' into 'main'
Luca Bacci [Sun, 15 May 2022 12:55:22 +0000 (12:55 +0000)]
Merge branch 'gdk-win32-direct-manipulation' into 'main'

GdkWin32: Add support for DirectManipulation

See merge request GNOME/gtk!4698

3 years agoGdkWin32: Add support for DirectManipulation
Luca Bacci [Wed, 4 May 2022 12:56:48 +0000 (14:56 +0200)]
GdkWin32: Add support for DirectManipulation

Adds support for Precision TouchPads (PTPs) gestures
and scroll events.

3 years agoUpdate Polish translation
Piotr Drąg [Sun, 15 May 2022 12:04:06 +0000 (14:04 +0200)]
Update Polish translation

3 years agoUpdate Turkish translation
Emin Tufan Çetin [Sun, 15 May 2022 11:14:27 +0000 (11:14 +0000)]
Update Turkish translation

3 years agoUpdate Persian translation
Danial Behzadi [Sun, 15 May 2022 06:30:26 +0000 (06:30 +0000)]
Update Persian translation

(cherry picked from commit 2b1c09dd42bfb648a7f675ff645715d8dd07411e)

3 years agoMerge branch 'ci-update' into 'main'
Matthias Clasen [Sat, 14 May 2022 21:59:09 +0000 (21:59 +0000)]
Merge branch 'ci-update' into 'main'

ci: Update the Fedora image to Fedora 36

See merge request GNOME/gtk!4730

3 years agoDrop the quit-mnemonic reftest
Matthias Clasen [Sat, 14 May 2022 16:52:40 +0000 (12:52 -0400)]
Drop the quit-mnemonic reftest

I can't quite figure out what this test was meant
to test, and how to make it do so in a way that
does not fall afoul of rendering issues in the GL
renderer and rounding differences in pango.

Can't win with reftests.

3 years agoci: Update the Fedora image to Fedora 36
Matthias Clasen [Sat, 14 May 2022 12:41:18 +0000 (08:41 -0400)]
ci: Update the Fedora image to Fedora 36

Also remove systemtap from the image, since
we don't need it.

The v36 image is still used in gtk-4-6.

3 years agoMerge branch 'wip/otte/for-main' into 'main'
Benjamin Otte [Sat, 14 May 2022 15:28:09 +0000 (15:28 +0000)]
Merge branch 'wip/otte/for-main' into 'main'

listitemmanager: Clarify warning

See merge request GNOME/gtk!4731

3 years agobroadway: Fix gcc 12 complaining
Benjamin Otte [Sat, 14 May 2022 14:53:22 +0000 (16:53 +0200)]
broadway: Fix gcc 12 complaining

3 years agolistitemmanager: Clarify warning
Benjamin Otte [Sun, 8 May 2022 03:49:40 +0000 (05:49 +0200)]
listitemmanager: Clarify warning

Lars doesn't have an opinion on this problem anymore.

And when people see this warning, they should know what to do.

3 years agoMerge branch 'matthiasc/for-main' into 'main'
Matthias Clasen [Sat, 14 May 2022 12:48:40 +0000 (12:48 +0000)]
Merge branch 'matthiasc/for-main' into 'main'

Cosmetic fixes to objcopy hack

See merge request GNOME/gtk!4729

3 years agoUpdate Ukrainian translation
Yuri Chornoivan [Sat, 14 May 2022 12:22:13 +0000 (12:22 +0000)]
Update Ukrainian translation

3 years agoCosmetic fixes to objcopy hack
Matthias Clasen [Sat, 14 May 2022 11:53:47 +0000 (07:53 -0400)]
Cosmetic fixes to objcopy hack

Preserve the elf section name that we would get
without the objcopy hack. Minimizing the differences

3 years agoUpdate Swedish translation
Anders Jonsson [Sat, 14 May 2022 10:03:33 +0000 (10:03 +0000)]
Update Swedish translation

(cherry picked from commit 2d8a8e357549670b95eaa8ce673ac79aa326d212)

3 years agoMerge branch 'texture-serialize-tiff' into 'main'
Matthias Clasen [Fri, 13 May 2022 17:06:46 +0000 (17:06 +0000)]
Merge branch 'texture-serialize-tiff' into 'main'

gsk: Serialize textures as tiff

See merge request GNOME/gtk!4725

3 years agoMerge branch 'texture-fixes' into 'main'
Matthias Clasen [Fri, 13 May 2022 16:38:45 +0000 (16:38 +0000)]
Merge branch 'texture-fixes' into 'main'

Fixes for gdk_memory_texture_new_subtexture

See merge request GNOME/gtk!4724

3 years agogsk: Serialize float textures as tiff
Matthias Clasen [Tue, 10 May 2022 19:49:44 +0000 (15:49 -0400)]
gsk: Serialize float textures as tiff

Otherwise, we lose precision when converting them
to 16bit integers.

3 years agoAdd tests for gdk_memory_texture_new_subtexture
Matthias Clasen [Fri, 13 May 2022 13:31:40 +0000 (09:31 -0400)]
Add tests for gdk_memory_texture_new_subtexture

This checks the fixes in the previous commit.

3 years agoMerge branch 'file-chooser-widget-make-key-controller-on-external-entry-work-at-bubbl...
Matthias Clasen [Fri, 13 May 2022 14:53:23 +0000 (14:53 +0000)]
Merge branch 'file-chooser-widget-make-key-controller-on-external-entry-work-at-bubble-phase' into 'main'

GtkFileChooserWidget: Propagate keys from external entry to fcwidget at the BUBBLE phase

Closes #4905

See merge request GNOME/gtk!4723

3 years agoFixes for gdk_memory_texture_new_subtexture
Matthias Clasen [Sun, 8 May 2022 17:53:04 +0000 (13:53 -0400)]
Fixes for gdk_memory_texture_new_subtexture

There were several mistakes here.

The width of subtextures was set to the width of
the main texture, the data size wasn't properly
calculated, and the preconditions were inverted.
Yay us!

3 years agoGtkFileChooserWidget: Propagate keys from external entry to fcwidget at the BUBBLE...
Luca Bacci [Fri, 13 May 2022 10:28:25 +0000 (12:28 +0200)]
GtkFileChooserWidget: Propagate keys from external entry to fcwidget at the BUBBLE phase

Now that we use event controllers we can forward keybindings from the
external entry to the filechooserwidget at the bubble phase.

Fixes #4905

References:
 * commit 1fb075dbca911d4a61e7ebbf9fc040cd697f4d83
 * commit 686116ba615f989610a6b78e84870555dbf5106b

3 years agoMerge branch 'egl-format-string' into 'main'
Matthias Clasen [Thu, 12 May 2022 15:25:29 +0000 (15:25 +0000)]
Merge branch 'egl-format-string' into 'main'

egl: Fix invalid format string

See merge request GNOME/gtk!4722

3 years agoegl: Fix invalid format string
Loïc Minier [Wed, 11 May 2022 19:43:04 +0000 (19:43 +0000)]
egl: Fix invalid format string

3 years agoMerge branch 'wip/sophie-h/remove-param-nicks-blurbs' into 'main'
Matthias Clasen [Thu, 12 May 2022 02:18:02 +0000 (02:18 +0000)]
Merge branch 'wip/sophie-h/remove-param-nicks-blurbs' into 'main'

gtk: Remove all nicks and blurbs from param specs

Closes #4904

See merge request GNOME/gtk!4717

3 years agoMerge branch 'wip/exalm/color-scales' into 'main'
Matthias Clasen [Thu, 12 May 2022 02:01:03 +0000 (02:01 +0000)]
Merge branch 'wip/exalm/color-scales' into 'main'

Redesign GtkColorScale

See merge request GNOME/gtk!4720

3 years agoMerge branch 'wip/chergert/action-critical-fixes' into 'main'
Matthias Clasen [Thu, 12 May 2022 01:53:48 +0000 (01:53 +0000)]
Merge branch 'wip/chergert/action-critical-fixes' into 'main'

various action muxer correctness fixes

See merge request GNOME/gtk!4719

3 years agotheme: Redesign color scales
Alexander Mikhaylenko [Wed, 11 May 2022 22:22:52 +0000 (02:22 +0400)]
theme: Redesign color scales

See https://gitlab.gnome.org/GNOME/libadwaita/-/issues/469

Since this style needs changes in color scales themselves, it makes sense
to have it in GTK as well.

3 years agorange: Support border-radius for GtkColorScale troughs
Alexander Mikhaylenko [Wed, 11 May 2022 22:21:51 +0000 (02:21 +0400)]
range: Support border-radius for GtkColorScale troughs

With how this hack is organized, it's simpler to add more code here than
to pass it to GtkColorScale itself.

3 years agocoloreditor: Stop adding marks style to color scales
Alexander Mikhaylenko [Wed, 11 May 2022 22:21:34 +0000 (02:21 +0400)]
coloreditor: Stop adding marks style to color scales

3 years agoactionmuxer: check for observer before unregistering
Christian Hergert [Mon, 2 May 2022 22:33:34 +0000 (15:33 -0700)]
actionmuxer: check for observer before unregistering

This can happen if the group can be resolved even when doing the initial
registration of an action as observer will not yet be in the GSList of
watchers (and therefore has no weak references).

Fixes a warning like the following:

 g_object_weak_unref: couldn't find weak ref

3 years agoactionmuxer: set handler ids initially to zero
Christian Hergert [Mon, 2 May 2022 21:55:55 +0000 (14:55 -0700)]
actionmuxer: set handler ids initially to zero

These were getting created with possible non-zero values and then inserted
into a hashtable where the readers may not know the state of the group.

Ensure those values are set to zero until we assign them below.

3 years agoinspector: Stop using blurb as tooltip
Sophie Herold [Wed, 11 May 2022 15:42:31 +0000 (17:42 +0200)]
inspector: Stop using blurb as tooltip

Does not make sense any longer if we don't set blurbs.

3 years agotests: Check for nicks and blurbs not being set
Sophie Herold [Wed, 11 May 2022 15:07:21 +0000 (17:07 +0200)]
tests: Check for nicks and blurbs not being set

3 years agoRemove all nicks and blurbs from param specs
Sophie Herold [Wed, 11 May 2022 12:19:39 +0000 (14:19 +0200)]
Remove all nicks and blurbs from param specs

Those property features don't seem to be in use anywhere.
They are redundant since the docs cover the same information
and more. They also created unnecessary translation work.

Closes #4904

3 years agol10n: Remove po/pot for dropped nicks/blurbs
Sophie Herold [Wed, 11 May 2022 15:36:07 +0000 (17:36 +0200)]
l10n: Remove po/pot for dropped nicks/blurbs

3 years agoMerge branch 'fix-wayland-glitching-v2' into 'main'
Matthias Clasen [Tue, 10 May 2022 19:32:16 +0000 (19:32 +0000)]
Merge branch 'fix-wayland-glitching-v2' into 'main'

gdk/wayland: freeze popups when hidden 2

See merge request GNOME/gtk!4712

3 years agogdk/wayland: freeze popups when hidden
Christian Hergert [Thu, 24 Mar 2022 00:00:21 +0000 (17:00 -0700)]
gdk/wayland: freeze popups when hidden

Previously, there was an issue with glitching after showing/hiding a
popover that was not also destroyed. This was due to the popover having
an update_freeze_count of zero after hiding the surface.

That resulted in it's toplevel continuously dropping frames such as during
high-frame-rate scrolling in textviews. This problem is much more visible
on high-frame-rate displays such as 120hz/144hz.

With this commit, we freeze the frame clock of the popup until it is
mapped again.

3 years agoUpdate Nepali translation
Pawan Chitrakar [Mon, 9 May 2022 10:44:41 +0000 (10:44 +0000)]
Update Nepali translation

(cherry picked from commit f60e5950dc29f98b686fc698f22f750c91c53f7a)

3 years agoMerge branch 'add-gtk-dropdown-buildable-example' into 'main'
Matthias Clasen [Sun, 8 May 2022 22:15:32 +0000 (22:15 +0000)]
Merge branch 'add-gtk-dropdown-buildable-example' into 'main'

dropdown: Add GtkBuildable doc

See merge request GNOME/gtk!4708

3 years agodropdown: Add UI definition example
Sonny Piers [Sun, 8 May 2022 20:39:59 +0000 (22:39 +0200)]
dropdown: Add UI definition example

3 years agoUpdate Nepali translation
Pawan Chitrakar [Sun, 8 May 2022 08:44:53 +0000 (08:44 +0000)]
Update Nepali translation

(cherry picked from commit 5ae37c6d999f58c7bb92003edf14e4140436a5df)

3 years agoMerge branch 'matthiasc/for-main' into 'main'
Matthias Clasen [Sun, 8 May 2022 00:51:08 +0000 (00:51 +0000)]
Merge branch 'matthiasc/for-main' into 'main'

printdialog: Handle nonexisting files better

See merge request GNOME/gtk!4702

3 years agoprintdialog: Handle nonexisting files better
Matthias Clasen [Sun, 8 May 2022 00:30:55 +0000 (20:30 -0400)]
printdialog: Handle nonexisting files better

When a non-existing file is selected in the file chooser
for print-to-file, we weren't updating the button label
to show the new filename. Fix that.

Also, use newer file chooser api.

3 years ago4.7.0
Matthias Clasen [Sat, 7 May 2022 15:59:38 +0000 (11:59 -0400)]
4.7.0

3 years agoNEWS: Updates
Matthias Clasen [Sat, 7 May 2022 15:42:56 +0000 (11:42 -0400)]
NEWS: Updates

3 years agoMerge branch 'install-node-editor' into 'main'
Matthias Clasen [Sat, 7 May 2022 12:09:29 +0000 (12:09 +0000)]
Merge branch 'install-node-editor' into 'main'

Install gtk4-node-editor

See merge request GNOME/gtk!4701

3 years agoUpdate POTFILES.in and POTFILES.skip
Piotr Drąg [Sat, 7 May 2022 11:49:37 +0000 (13:49 +0200)]
Update POTFILES.in and POTFILES.skip

3 years agoInstall gtk4-node-editor
Matthias Clasen [Sat, 7 May 2022 03:48:40 +0000 (23:48 -0400)]
Install gtk4-node-editor

It is an application worth having around.

3 years agoAdd a man page for gtk4-node-editor
Matthias Clasen [Sat, 7 May 2022 03:48:13 +0000 (23:48 -0400)]
Add a man page for gtk4-node-editor

3 years agonode-editor: Add things
Matthias Clasen [Sat, 7 May 2022 03:44:08 +0000 (23:44 -0400)]
node-editor: Add things

Add a desktop file and appdata.

3 years agoMerge branch 'faster-listview-scrolling' into 'main'
Matthias Clasen [Sat, 7 May 2022 03:51:45 +0000 (03:51 +0000)]
Merge branch 'faster-listview-scrolling' into 'main'

listitemwidget: Avoid some unnecessary work

See merge request GNOME/gtk!4700

3 years agoMerge branch 'redo-doc-images' into 'main'
Matthias Clasen [Sat, 7 May 2022 03:51:10 +0000 (03:51 +0000)]
Merge branch 'redo-doc-images' into 'main'

wip: Redo doc image generation

See merge request GNOME/gtk!4646

3 years agoUpdated screenshots
Matthias Clasen [Sat, 7 May 2022 03:05:15 +0000 (23:05 -0400)]
Updated screenshots

Produced by running the screenshot command over the
ui files in the same directory.

3 years agoGenerate screenshots on the fly
Matthias Clasen [Mon, 18 Apr 2022 15:56:43 +0000 (11:56 -0400)]
Generate screenshots on the fly

This commit adds a new meson option -Dupdate_screenshots=true.
When it is enabled, and -Dgtk_doc=true is also used, then the
build will generate images to include in the API docs from
ui files in docs/reference/gtk/images.

Note: we still keep a copy of the images in git, in order to
allow building without a display connection. To update the
images in git, the generated images need to be copied back
from the builddir to the srcdir.

3 years agoRemove the old doc shooter infrastructure
Matthias Clasen [Mon, 18 Apr 2022 18:31:31 +0000 (14:31 -0400)]
Remove the old doc shooter infrastructure

This is no longer used.

3 years agolistitemwidget: Avoid more paramspec lookups
Matthias Clasen [Sat, 7 May 2022 02:28:14 +0000 (22:28 -0400)]
listitemwidget: Avoid more paramspec lookups

We can use the same helper function in all
places where we notify all three listitem
properties.

3 years agolistitemwidget: Avoid some unnecessary work
Matthias Clasen [Sat, 7 May 2022 01:36:22 +0000 (21:36 -0400)]
listitemwidget: Avoid some unnecessary work

Only update widget and accessible state if the
selected property actually changed.

3 years agoMerge branch 'screenshot-popovers' into 'main'
Matthias Clasen [Sat, 7 May 2022 00:39:35 +0000 (00:39 +0000)]
Merge branch 'screenshot-popovers' into 'main'

builder-tool: Screenshot popovers properly

See merge request GNOME/gtk!4699

3 years agobuilder-tool: Screenshot popovers properly
Matthias Clasen [Fri, 6 May 2022 18:39:58 +0000 (14:39 -0400)]
builder-tool: Screenshot popovers properly

Do the necessary shenanigans to get popovers to show
up in screenshots.

3 years agoMerge branch 'check-half-float' into 'main'
Matthias Clasen [Fri, 6 May 2022 18:02:05 +0000 (18:02 +0000)]
Merge branch 'check-half-float' into 'main'

gdk: Check OES_vertex_half_float GLES extension

See merge request GNOME/gtk!4689

3 years agoMerge branch 'list-item-factory-notify-by-pspec' into 'main'
Benjamin Otte [Fri, 6 May 2022 16:11:21 +0000 (16:11 +0000)]
Merge branch 'list-item-factory-notify-by-pspec' into 'main'

list-item: Use notify_by_pspec instead of by name

See merge request GNOME/gtk!4697

3 years agoMerge branch 'builder-treestore-data' into 'main'
Matthias Clasen [Fri, 6 May 2022 15:22:41 +0000 (15:22 +0000)]
Merge branch 'builder-treestore-data' into 'main'

Add buildable data support to GtkTreeStore

See merge request GNOME/gtk!4695

3 years agogsk: Check for half float support
Matthias Clasen [Thu, 5 May 2022 17:09:26 +0000 (13:09 -0400)]
gsk: Check for half float support

The GL renderer currently relies on half float support
in vertex buffers, so check that we have it.

Related: #4894

3 years agolist-item: Use notify_by_pspec instead of by name
Ivan Molodetskikh [Fri, 6 May 2022 15:05:03 +0000 (18:05 +0300)]
list-item: Use notify_by_pspec instead of by name

This is a hot path when scrolling a ColumnView, and
g_param_spec_pool_lookup () was taking a measurable part in this hot
path. Instead, notify using pspecs to avoid the name lookup.

Related: https://gitlab.gnome.org/GNOME/gtk/-/issues/3334

3 years agoMerge branch 'gdk-win32-rework-scroll-input-handling' into 'main'
Luca Bacci [Fri, 6 May 2022 14:58:32 +0000 (14:58 +0000)]
Merge branch 'gdk-win32-rework-scroll-input-handling' into 'main'

GdkWin32: Rework scroll input handling

See merge request GNOME/gtk!4633

3 years agoMerge branch 'list-item-factory-no-freeze-thaw' into 'main'
Benjamin Otte [Fri, 6 May 2022 14:52:21 +0000 (14:52 +0000)]
Merge branch 'list-item-factory-no-freeze-thaw' into 'main'

listitemfactory: Track notify manually instead of freeze/thaw

See merge request GNOME/gtk!4696

3 years agolistitemfactory: Track notify manually instead of freeze/thaw
Ivan Molodetskikh [Fri, 6 May 2022 14:21:00 +0000 (17:21 +0300)]
listitemfactory: Track notify manually instead of freeze/thaw

freeze/thaw_notify () showed up on the perf trace for rapid ColumnView
scrolling. Track the three properties manually to make it a little
faster.

Related: https://gitlab.gnome.org/GNOME/gtk/-/issues/3334

3 years agoMerge branch 'unclipped-screenshots' into 'main'
Matthias Clasen [Fri, 6 May 2022 13:49:14 +0000 (13:49 +0000)]
Merge branch 'unclipped-screenshots' into 'main'

builder-tool: Include shadows in screenshots

See merge request GNOME/gtk!4692

3 years agotestsuite: test new treestore builder functionality
Matthias Clasen [Fri, 6 May 2022 13:09:33 +0000 (09:09 -0400)]
testsuite: test new treestore builder functionality

Verify that we can nest rows.

3 years agotreestore: support nested data in builder
Matthias Clasen [Fri, 6 May 2022 13:10:29 +0000 (09:10 -0400)]
treestore: support nested data in builder

This allows <row> elements to be nested.
Note that the child rows must come after
the data for the row itself.

3 years agobuilder: Allow checking for multiple parents
Matthias Clasen [Fri, 6 May 2022 13:23:31 +0000 (09:23 -0400)]
builder: Allow checking for multiple parents

3 years agotestsuite: Copy liststore builer tests for trees
Matthias Clasen [Fri, 6 May 2022 13:01:25 +0000 (09:01 -0400)]
testsuite: Copy liststore builer tests for trees

This adds tests for data, but not nesting yet.

3 years agotreestore: Copy liststore buildable implementation
Matthias Clasen [Fri, 6 May 2022 11:48:28 +0000 (07:48 -0400)]
treestore: Copy liststore buildable implementation

This add support for data, but does not allow
nesting yet.

3 years agotreestore: Cosmetics
Matthias Clasen [Fri, 6 May 2022 11:31:29 +0000 (07:31 -0400)]
treestore: Cosmetics

Some renaming in the buildable code to make it more
similar to the liststore implementation.

3 years agoMerge branch 'otte-main-patch-11831' into 'main'
Benjamin Otte [Fri, 6 May 2022 13:03:47 +0000 (13:03 +0000)]
Merge branch 'otte-main-patch-11831' into 'main'

Don't invalidate parent if it didn't change

See merge request GNOME/gtk!4693

3 years agoGdkWin32: Send smooth scroll events
Luca Bacci [Tue, 12 Apr 2022 09:00:03 +0000 (11:00 +0200)]
GdkWin32: Send smooth scroll events

Bring back smooth scroll events as the issues mentioned
in [1] do not occur anymore. Also rework code style and
comments.

References:

  [1] GTK4: Scrolling hides mouse on windows
      https://gitlab.gnome.org/GNOME/gtk/-/issues/3581

  [2] Why are mouse wheel messages delivered to the focus window
      instead of the window under the mouse?
      https://devblogs.microsoft.com/oldnewthing/20160420-00/?p=93325

3 years agoDon't invalidate parent if it didn't change
Benjamin Otte [Fri, 6 May 2022 11:50:55 +0000 (11:50 +0000)]
Don't invalidate parent if it didn't change

This looks like a leftover excess invalidation from when the surrounding
code was refactored to not just be called on parent changes but also
when repositioning inside the same parent in commit
507016cafc407b2c47aea3fd1483df75e9757f29

Ivan Molodetskikh found this problem in
https://gitlab.gnome.org/GNOME/gtk/-/issues/3334#note_1445873 which
contains a longer analysis of this problem and the performance
reductions it causes.

Related: #3334