Benjamin Otte [Sat, 11 Mar 2023 16:41:06 +0000 (17:41 +0100)]
listitemmanager: Clean up header
Remove all unused functions and an unused macro.
Matthias Clasen [Thu, 23 Mar 2023 02:42:28 +0000 (02:42 +0000)]
Merge branch 'texture-scale-test' into 'main'
gsk: Add a test for scaled textures
See merge request GNOME/gtk!5686
Bruce Cowan [Wed, 22 Mar 2023 15:46:17 +0000 (15:46 +0000)]
Update British English translation
(cherry picked from commit
d80cecec06c5196bad93be38cc11db86715cca77)
Matthias Clasen [Wed, 22 Mar 2023 10:48:55 +0000 (10:48 +0000)]
Merge branch 'ebassi/ensure-file-chooser-types' into 'main'
Ensure GtkFileChooserCell's type
See merge request GNOME/gtk!5696
Emmanuele Bassi [Wed, 22 Mar 2023 10:23:28 +0000 (10:23 +0000)]
Ensure GtkFileChooserCell's type
Otherwise anything that dlopen()'s GTK will have a bad day.
See: https://discourse.gnome.org/t/strange-filechooserdialog-behaviour-in-gtk-4-10/14435
Matthias Clasen [Wed, 22 Mar 2023 03:26:55 +0000 (23:26 -0400)]
gsk: Improve slice handling
Upload slices in chunks, instead of copying
enormous amounts of memory.
Matthias Clasen [Wed, 22 Mar 2023 02:55:03 +0000 (22:55 -0400)]
gsk: Add more flexible texture upload
Add a command queue function to create a
GL texture by uploading several GdkTextures
at given positions.
This lets us 'piece together' textures.
Matthias Clasen [Tue, 21 Mar 2023 02:43:35 +0000 (22:43 -0400)]
gsk: Tweak one test to pass
Clip away the problematic corners in this
artificial texture scaling test. The GL renderer
has problems getting them perfect.
Matthias Clasen [Tue, 21 Mar 2023 01:49:42 +0000 (21:49 -0400)]
gsk: Drop debug code
Matthias Clasen [Tue, 21 Mar 2023 02:02:17 +0000 (22:02 -0400)]
gsk: Drop some unused arguments
All callers of the slice apis pass 0 for
min_rows and min_cols. So just drop these.
Matthias Clasen [Mon, 20 Mar 2023 11:57:13 +0000 (07:57 -0400)]
gsk: Use overlapping slices
Store texture coordinates for each slice
instead of assuming 0,0,1,1, and generate
overlapping slices to allow for proper mipmaps.
This almost fixes trilinear filtering with
sliced textures.
Matthias Clasen [Mon, 20 Mar 2023 00:25:14 +0000 (20:25 -0400)]
gsk: Add a test for scaled textures
GL and cairo disagree on this one, and have forever.
Whee!
Matthias Clasen [Mon, 20 Mar 2023 10:57:56 +0000 (06:57 -0400)]
gsk: Cosmetics
Matthias Clasen [Wed, 22 Mar 2023 00:24:52 +0000 (00:24 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
a11y: Add a test for gtk_accessible_role_to_name
See merge request GNOME/gtk!5694
Matthias Clasen [Wed, 22 Mar 2023 00:06:37 +0000 (20:06 -0400)]
a11y: Add a test for gtk_accessible_role_to_name
This should prevent !5693 from happening again
in the future.
Matthias Clasen [Tue, 21 Mar 2023 18:05:50 +0000 (18:05 +0000)]
Merge branch 'fix_gtk_accessible_role_to_name_crash' into 'main'
fix crash with gtk_accessible_role_to_name and GTK_ACCESSIBLE_ROLE_TOGGLE_BUTTON
See merge request GNOME/gtk!5693
Caolán McNamara [Tue, 21 Mar 2023 15:04:12 +0000 (15:04 +0000)]
fix crash with gtk_accessible_role_to_name and GTK_ACCESSIBLE_ROLE_TOGGLE_BUTTON
presumably since:
commit
de80f503e4db282a7343aa16d2803967d4179739
Date: Thu Feb 23 14:22:20 2023 +0100
a11y: Introduce a dedicated role for toggle buttons
Benjamin Otte [Tue, 21 Mar 2023 13:26:09 +0000 (13:26 +0000)]
Merge branch 'wip/otte/for-main' into 'main'
checkbutton: Only andle arrow focus if we're in a group
See merge request GNOME/gtk!5692
Benjamin Otte [Sun, 19 Mar 2023 22:24:42 +0000 (23:24 +0100)]
testsuite: Add a treelistmodel test
This one exhaustively tests reusing the same model as a child model for
many nodes.
This tracks that multiple items-changed signals emitted at the same time
(or multiple handlers for one such signal) doesn't put the treelistmodel
in an inconsistent state while it is handling all of them.
I'm not sure this (ab)use of treelistmodel should be officially
supported, but it works today, so let's test it to see if we can keep it
working.
Benjamin Otte [Tue, 21 Mar 2023 13:06:33 +0000 (14:06 +0100)]
checkbutton: Only andle arrow focus if we're in a group
If there is no other widget in the group that we can focus, don't focus
and activate ourselves.
Otherwise the arrow keys on checkbuttons toggle the checkbutton.
Matthias Clasen [Mon, 20 Mar 2023 23:06:44 +0000 (23:06 +0000)]
Merge branch 'disabled-picture-opacity-fix' into 'main'
theme: Use 0.5 opacity for disabled pictures
Closes #5683
See merge request GNOME/gtk!5689
Marco Trevisan (Treviño) [Mon, 20 Mar 2023 22:38:35 +0000 (23:38 +0100)]
theme: Use 0.5 opacity for disabled pictures
If a GtkImage is using an icon we use a gtk-icon-filter to se the icon
opacity when in insensitive state, however when using other kinds of
pictures we do not apply the same style leading to an inconsistent
result.
Closes: #5683
Matthias Clasen [Mon, 20 Mar 2023 14:39:15 +0000 (14:39 +0000)]
Merge branch 'alatiera/fedora-bump' into 'main'
ci: Use Fedora 38 as the base
See merge request GNOME/gtk!5688
Jordan Petridis [Mon, 20 Mar 2023 14:15:05 +0000 (16:15 +0200)]
vulkan: Update error codes enum
Jordan Petridis [Mon, 20 Mar 2023 13:47:10 +0000 (15:47 +0200)]
ci: Use Fedora 38 as the base
Matthias Clasen [Mon, 20 Mar 2023 11:23:21 +0000 (11:23 +0000)]
Merge branch 'bilelmoussaoui-main-patch-49195' into 'main'
g-i: Add since annotation to GdkSurfaceSize
See merge request GNOME/gtk!5687
Bilal Elmoussaoui [Mon, 20 Mar 2023 08:14:25 +0000 (08:14 +0000)]
g-i: Add since annotation to GdkSurfaceSize
Matthias Clasen [Mon, 20 Mar 2023 02:04:21 +0000 (02:04 +0000)]
Merge branch 'mipmap-more' into 'main'
gsk: Use mipmaps when it is beneficial
See merge request GNOME/gtk!5685
Matthias Clasen [Mon, 20 Mar 2023 01:44:54 +0000 (21:44 -0400)]
gsk: Use mipmaps when it is beneficial
If a texture node ends up getting scaled
down a lot, it helps to use trilinear filtering.
Benjamin Otte [Sun, 19 Mar 2023 17:07:53 +0000 (17:07 +0000)]
Merge branch 'wip/otte/for-main' into 'main'
treelistmodel: Clear item in right place
Closes #5681
See merge request GNOME/gtk!5682
Benjamin Otte [Sun, 19 Mar 2023 16:30:18 +0000 (17:30 +0100)]
treelistmodel: Clear item in right place
Items should be cleared when the node is discarded, not when the node's
children are discarded - which can also happen when a node is collapsed.
Fixes an error introduced in
9048e391b60e19ccefa0b9fe51c466d16b42dcc4
Fixes #5681
Matthias Clasen [Sun, 19 Mar 2023 14:54:34 +0000 (14:54 +0000)]
Merge branch 'texture-scale-tests' into 'main'
node-editor: Embed textures in testcases
See merge request GNOME/gtk!5681
Matthias Clasen [Sun, 19 Mar 2023 14:21:19 +0000 (10:21 -0400)]
ci: Make reports for all setups
Matthias Clasen [Sun, 19 Mar 2023 14:19:00 +0000 (10:19 -0400)]
testsuite: Improve setup name consistency
Rename the 'waylandgles' test setup to 'wayland_gles'.
Matthias Clasen [Sun, 19 Mar 2023 14:16:19 +0000 (10:16 -0400)]
ci: Run tests with small textures
Matthias Clasen [Sun, 19 Mar 2023 14:08:01 +0000 (10:08 -0400)]
testsuite: Add a test setup for slicing
Add a 'wayland_smalltexture' test setup that forces
the max texture size to be 1024, which lets us test
the texture slicing codepaths.
Matthias Clasen [Sun, 19 Mar 2023 14:05:52 +0000 (10:05 -0400)]
testsuite: Add some texture tests
In constrast to our other tests, these use
textures that are big enough to force slicing
with setting GSK_MAX_TEXTURE_SIZE, which we
will use in the following commits to improve
test coverage.
Matthias Clasen [Sun, 19 Mar 2023 14:04:46 +0000 (10:04 -0400)]
node-editor: Embed textures in testcases
It is useless to have node files with references
to external files in the testsuite, so turn such
textures into data urls by doing a serialization
roundtrip.
Benjamin Otte [Sun, 19 Mar 2023 06:23:46 +0000 (06:23 +0000)]
Merge branch 'wip/otte/for-main' into 'main'
Fix inspector doing weird stuff
Closes #5646
See merge request GNOME/gtk!5678
Benjamin Otte [Sun, 19 Mar 2023 04:25:52 +0000 (05:25 +0100)]
treelistmodel: Clarify docs
No user knows that we have an internal function called
gtk_tree_list_row_destroy() that gets called when a row gets removed
from the treelistmodel.
So everyone was probably just making stuff up about what "destroy"
means.
Related: #5646
Benjamin Otte [Sun, 19 Mar 2023 04:22:46 +0000 (05:22 +0100)]
treelistmodel: Track the item in the row
That way, we can return the item even after the row is removed. This is
particularly relevant in ListItemFactory::unbind callbacks because they
often use gtk_tree_list_row_get_item() and user code never tracks
changes to this property.
A side effect of this is that the item will survive until the row gets
destroyed, but that's what users expect anyway, so we can live with it.
Related: #5646
Benjamin Otte [Sun, 19 Mar 2023 04:04:51 +0000 (05:04 +0100)]
treelistmodel: Cache the item
This is a good idea to avoid reentrancy problems when any child model
(or potentially more than one child model) has started emitting
items-changed but the emission hasn't arrived in this model yet.
At tat point, we'd get_item() the wrong item from those models.
We want to avoid such cases of reentrancy.
Related: #5646
Benjamin Otte [Sun, 19 Mar 2023 04:07:17 +0000 (05:07 +0100)]
cssnode: Refer the correct previous item
We disconnect from old_previous, not from the new previous.
Related: #5646
Matthias Clasen [Sun, 19 Mar 2023 01:54:57 +0000 (01:54 +0000)]
Merge branch 'wip/matthiasc/samplers' into 'main'
glrenderer: Handle filters differently
See merge request GNOME/gtk!5676
Benjamin Otte [Fri, 17 Mar 2023 05:26:05 +0000 (06:26 +0100)]
glrenderer: Support GL without samplers
We cheat and just set the texture parameters instead and hope nothing
explodes.
So far it didn't.
This is only needed to support GLES 2.0 so it's quite a limited set of
hardware these days.
Benjamin Otte [Fri, 17 Mar 2023 05:14:53 +0000 (06:14 +0100)]
glrenderer: Handle filters differently
Instead of uploading a texture once per filter, ensure textures are
uploaded as little as possible and use samplers instead to switch
different filters.
Sometimes we have to reupload a texture unfortunately, when it is an
external one and we want to create mipmaps.
Matthias Clasen [Sat, 18 Mar 2023 22:56:22 +0000 (22:56 +0000)]
Merge branch 'docs-tweaks' into 'main'
dropdown: tweak the docs
See merge request GNOME/gtk!5677
Matthias Clasen [Sat, 18 Mar 2023 14:25:41 +0000 (10:25 -0400)]
docs: Cosmetics
Matthias Clasen [Sat, 18 Mar 2023 14:24:32 +0000 (10:24 -0400)]
docs: Tweaks
Tweak the wording in the list widget overview to
fix some typos and make things read more smoothly.
Matthias Clasen [Sat, 18 Mar 2023 14:24:06 +0000 (10:24 -0400)]
dropdown: tweak the docs
Add a link to the list widget overview.
Piotr Drąg [Sat, 18 Mar 2023 11:32:00 +0000 (12:32 +0100)]
Update POTFILES.in and POTFILES.skip
Matthias Clasen [Sat, 18 Mar 2023 04:25:25 +0000 (04:25 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
gsk: Drop texture subsetting
See merge request GNOME/gtk!5675
Matthias Clasen [Sat, 18 Mar 2023 04:10:38 +0000 (00:10 -0400)]
gsk: Drop texture subsetting
We don't do this for unfiltered textures either,
and with working slicing, it isn't needed.
Matthias Clasen [Sat, 18 Mar 2023 03:55:56 +0000 (03:55 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
Stop binding textdomain for -properties
See merge request GNOME/gtk!5674
Matthias Clasen [Sat, 18 Mar 2023 03:35:45 +0000 (23:35 -0400)]
Stop binding textdomain for -properties
We don't have these translations anymore.
Matthias Clasen [Sat, 18 Mar 2023 02:47:04 +0000 (02:47 +0000)]
Merge branch 'fix-excessive-texture-uploads' into 'main'
gsk: Avoid reuploading textures too much
See merge request GNOME/gtk!5673
Matthias Clasen [Sat, 18 Mar 2023 02:28:27 +0000 (22:28 -0400)]
gsk: Avoid reuploading textures too much
When filtering changes for an already-cached
texture, we need to clear the render data
before setting the new one, otherwise it
does not take and we end up reuploading
the texture every frame.
Matthias Clasen [Sat, 18 Mar 2023 02:22:43 +0000 (02:22 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
gtk4-builder-tool: Localization fixes
See merge request GNOME/gtk!5672
Matthias Clasen [Sat, 18 Mar 2023 02:04:25 +0000 (22:04 -0400)]
gtk4-builder-tool: Localization fixes
Be consistent about marking strings for
translation. And make locatization actually
work by including gi18n-lib.h instead of gi18n.h.
Danial Behzadi [Sat, 18 Mar 2023 01:10:45 +0000 (01:10 +0000)]
Update Persian translation
(cherry picked from commit
f55cbf56437e3e9da3a5998e583e523761243f0a)
Matthias Clasen [Fri, 17 Mar 2023 16:32:28 +0000 (16:32 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
gtk-demo: Reset properties when the image changes
See merge request GNOME/gtk!5671
Matthias Clasen [Fri, 17 Mar 2023 15:48:44 +0000 (11:48 -0400)]
gtk-demo: Reset properties when the image changes
Matthias Clasen [Fri, 17 Mar 2023 15:44:07 +0000 (15:44 +0000)]
Merge branch 'texture-scale-slicing' into 'main'
gsk: Be more careful when slicing
Closes #5664
See merge request GNOME/gtk!5667
Matthias Clasen [Fri, 17 Mar 2023 15:25:38 +0000 (11:25 -0400)]
gsk: Drop texture subsetting
We don't do this for unfiltered textures either,
and with working slicing, it isn't needed.
Matthias Clasen [Fri, 17 Mar 2023 15:14:44 +0000 (15:14 +0000)]
Merge branch 'broadway-disconnect-fix' into 'main'
broadway: Don't cause traffic when disconnecting
See merge request GNOME/gtk!5670
Matthias Clasen [Fri, 17 Mar 2023 14:59:05 +0000 (10:59 -0400)]
broadway: Don't cause traffic when disconnecting
The recently added transient-for support was causing
roundtrips when a client with transients disconnects,
leading to assertion failures. Avoid that.
Matthias Clasen [Fri, 17 Mar 2023 13:17:19 +0000 (13:17 +0000)]
Merge branch 'fix-broadway-docs' into 'main'
docs: Update broadway docs
Closes #5662
See merge request GNOME/gtk!5669
Matthias Clasen [Fri, 17 Mar 2023 12:56:23 +0000 (08:56 -0400)]
docs: Update broadway docs
Using Broadway without broadwayd hasn't worked since 2013...
Fixes: #5662
Matthias Clasen [Fri, 17 Mar 2023 04:50:27 +0000 (00:50 -0400)]
gsk: Add slicing to texture scale nodes
This makes it possible to use large textures
with filtering.
Fixes: #5664
Matthias Clasen [Fri, 17 Mar 2023 04:50:01 +0000 (00:50 -0400)]
gsk: Be more careful when slicing
We can only reuse existing slices if they
have the right filtering.
Benjamin Otte [Fri, 17 Mar 2023 00:37:52 +0000 (00:37 +0000)]
Merge branch 'wip/otte/for-main' into 'main'
Various fixes
Closes #5669
See merge request GNOME/gtk!5665
Benjamin Otte [Thu, 16 Mar 2023 23:50:13 +0000 (23:50 +0000)]
Merge branch 'gridview-filler-tile-fix' into 'main'
gridview: Fix condition for adding filler tiles
See merge request GNOME/gtk!5664
Benjamin Otte [Thu, 16 Mar 2023 22:36:00 +0000 (23:36 +0100)]
gldriver: Quick workaround for filter mismatch
We should really use texture views or samplers to handle this case for
shared textures, but this at least makes NEAREST not break.
Benjamin Otte [Thu, 16 Mar 2023 21:42:56 +0000 (22:42 +0100)]
listitem: Claim sequence when handling an event
See my rants on IRC for why we definitely need to claim gestures by
default in GTK5.
Fixes #5669
Алексей Шилин [Thu, 16 Mar 2023 21:21:09 +0000 (00:21 +0300)]
gridview: Fix condition for adding filler tiles
Code above ensures that i is always in [0, n_columns - 1] range, so
the condition was always true, which resulted in filler tile always
being added to the grid. As the result, an empty row appeared at the
end of the grid if the number of columns divided the number of items.
Only add filler tile if last row is not full, i.e. when i > 0.
Matthias Clasen [Thu, 16 Mar 2023 21:12:20 +0000 (21:12 +0000)]
Merge branch 'fix_next_accessible_sibling_after_refcounts' into 'main'
a11y: Fix the logic in gtk_accessible_get_next_accessible_sibling which decided whether we will use the overridden sibling on the context.
See merge request GNOME/gtk!5659
Matthias Clasen [Thu, 16 Mar 2023 21:07:29 +0000 (21:07 +0000)]
Merge branch 'label-file-links' into 'main'
label: Use GtkFileLauncher for file URI
Closes #5671
See merge request GNOME/gtk!5661
Benjamin Otte [Thu, 16 Mar 2023 20:59:17 +0000 (20:59 +0000)]
Merge branch 'wip/otte/for-main' into 'main'
Various small fixes
Closes #5380
See merge request GNOME/gtk!5662
Benjamin Otte [Thu, 16 Mar 2023 20:27:35 +0000 (21:27 +0100)]
listview: Fix culling issues when using CSS padding
We were culling children based on the content box, but clipping via
overflow happens on the padding box, so we need to use that one instead.
Fixes issues with items not being visible / disappearing in Nautilus
when they are near the border.
Resolves #5380
Benjamin Otte [Wed, 15 Mar 2023 00:46:19 +0000 (01:46 +0100)]
rowstrides are gsize, not int
gdk-pixbuf got that wrong, don't repeat that mistake.
Benjamin Otte [Wed, 15 Mar 2023 00:45:48 +0000 (01:45 +0100)]
win32: Fix rowstride math
Matthias Clasen [Thu, 16 Mar 2023 20:06:49 +0000 (16:06 -0400)]
label: Use GtkFileLauncher for file URI
The GtkUriLauncher calls into the openuri portal, which distinguishes
between files, directories, and URI. The GtkFileLauncher contains logic
to deal with this, because it can already handle the file and folder
differences.
If we have a file:// URI it's easier to create a GFile out of it, and
use the GtkFileLauncher API, while leaving the GtkUriLauncher API for
every other URI scheme.
Same fix as
de3c1d0c73987225869908, for GtkLabel.
Fixes: #5671
Matthias Clasen [Thu, 16 Mar 2023 16:51:29 +0000 (16:51 +0000)]
Merge branch 'ebassi/issue-5671' into 'main'
linkbutton: Use GtkFileLauncher for file URI
Closes #5671
See merge request GNOME/gtk!5658
Lukáš Tyrychtr [Thu, 16 Mar 2023 16:15:08 +0000 (17:15 +0100)]
Always drop the reference of the ATContext
Lukáš Tyrychtr [Thu, 16 Mar 2023 14:16:32 +0000 (15:16 +0100)]
a11y: Fix the logic in gtk_accessible_get_next_accessible_sibling which
decided whether we will use the overridden sibling on the context.
Emmanuele Bassi [Thu, 16 Mar 2023 12:09:55 +0000 (12:09 +0000)]
linkbutton: Use GtkFileLauncher for file URI
The GtkUriLauncher calls into the openuri portal, which distinguishes
between files, directories, and URI. The GtkFileLauncher contains logic
to deal with this, because it can already handle the file and folder
differences.
If we have a file:// URI it's easier to create a GFile out of it, and
use the GtkFileLauncher API, while leaving the GtkUriLauncher API for
every other URI scheme.
Fixes: #5671
Guillaume Bernard [Thu, 16 Mar 2023 10:24:29 +0000 (10:24 +0000)]
Update French translation
(cherry picked from commit
904e6a03a54854601fac7470b757cf6c9213eafc)
Matthias Clasen [Thu, 16 Mar 2023 03:03:41 +0000 (03:03 +0000)]
Merge branch 'max-texture-size' into 'main'
gsk: Add a way to limit texture sizes
See merge request GNOME/gtk!5656
Benjamin Otte [Wed, 15 Mar 2023 23:36:44 +0000 (23:36 +0000)]
Merge branch 'drag-gl-wayland-hotspot-fix' into 'main'
wayland: Reset pending offset in GL path
See merge request GNOME/gtk!5657
Ivan Molodetskikh [Wed, 15 Mar 2023 23:11:40 +0000 (16:11 -0700)]
wayland: Reset pending offset in GL path
Otherwise GL surfaces that redraw without changing the hotspot have it
applied on top every frame and quickly slide away.
The cairo path and the X11 backend do not have this bug.
Ivan Molodetskikh [Wed, 15 Mar 2023 23:09:51 +0000 (16:09 -0700)]
testdndresize: Add non-resizing redrawing GL surface
The GL Wayland drag surface code path has a bug where it does not reset
the hotspot, so if a GL-backed draw surface redraws without resizing or
resetting the hotspot, it moves away. The next commit will fix that, but
this commit adds a test for that.
Matthias Clasen [Wed, 15 Mar 2023 21:50:01 +0000 (17:50 -0400)]
gsk: Use linear filtering for sliced textures
We use linear for unsliced textures, so we need
to do the same for sliced ones.
Matthias Clasen [Wed, 15 Mar 2023 19:45:01 +0000 (15:45 -0400)]
gsk: Fix texture slicing
We were just returning NULL for slices
here, which wasn't the intention.
Matthias Clasen [Wed, 15 Mar 2023 19:33:32 +0000 (15:33 -0400)]
gsk: Fix handling of large textures
When the texture is too large, actually
shrink the size to max_texture_size.
Matthias Clasen [Wed, 15 Mar 2023 18:31:45 +0000 (14:31 -0400)]
gsk: Add a way to limit texture sizes
Allow to set max texture size using the
GSK_MAX_TEXTURE_SIZE environment variable.
We only allow to lower the max (for obvious
reasons), and we don't allow values smaller
than 512 (since our atlases use that size).
Matthias Clasen [Wed, 15 Mar 2023 02:59:19 +0000 (02:59 +0000)]
Merge branch 'dragsurface-resize' into 'main'
Fix drag surfaces ignoring size updates on Wayland and X11
See merge request GNOME/gtk!5597
Ivan Molodetskikh [Tue, 7 Mar 2023 04:49:19 +0000 (20:49 -0800)]
x11/surface: Get current drag surface size with compute-size signal
Query and update size of drag surfaces, similarly to how it's done for
the Wayland backend in the previous commit.
Ivan Molodetskikh [Sun, 5 Mar 2023 18:18:56 +0000 (10:18 -0800)]
wayland/dragsurface: Get current size with compute-size signal
GdkDragSurface-backed widgets are not parented to an existing widget,
unlike popovers, and like toplevels. This means that there's nobody to
actively call gdk_drag_surface_present() to update the size, and
GdkDragSurface should do it on its own, just like GdkToplevel.
This commit implements this for the Wayland backend.
Ivan Molodetskikh [Sun, 5 Mar 2023 18:20:31 +0000 (10:20 -0800)]
dragicon: Handle compute-size
Compute our size when requested by the backend. This makes GtkDragIcons
actually recompute their size when it changes, instead of getting stuck
with the first size and potentially underallocating.
Ivan Molodetskikh [Sun, 5 Mar 2023 18:14:56 +0000 (10:14 -0800)]
dragsurface: Add compute-size signal
Similarly to GdkToplevel, GdkDragSurface's compute-size should be called
by backends to query the current surface size, and should be connected
to by widget implementations (like GtkDragIcon) to report the current
size.
GdkDragSurface-backed widgets are not parented to an existing widget,
unlike popovers, and like toplevels. This means that there's nobody to
actively call gdk_drag_surface_present() to update the size, and
GdkDragSurface should do it on its own, just like GdkToplevel.