Benjamin Otte [Mon, 27 Mar 2023 05:03:38 +0000 (07:03 +0200)]
gridview: Add concept of inertness
An inert gridview is a gridview that does not use the factory. This
allows faster updates because no calls into user code need to happen.
A gridview is inert when either:
- It is not rooted.
- It is not visible.
- No factory is set (that one is obvious)
The gridview does not need to be inert without a model, as that case is
handled by the item manager.
This should allow Nautilus to keep both the gridview and the columnview
around, and just gtk_widget_hide() the unused widget.
The code for now does not disable the item manager, as some
functionality of the item manager is required to allow setting scroll
positions and such.
But that is a place where more gains could be found if profiling showed
that was useful to do.
Benjamin Otte [Mon, 27 Mar 2023 04:54:10 +0000 (06:54 +0200)]
listview: Add concept of inertness
An inert listview is a listview that does not use the factory. This
allows faster updates because no calls into user code need to happen.
A listview is inert when either:
- It is not rooted.
- It is not visible.
- No factory is set (that one is obvious)
The listview does not need to be inert without a model, as that case is
handled by the item manager.
This should allow Nautilus to keep both the gridview and the columnview
around, and just gtk_widget_hide() the unused widget.
The code for now does not disable the item manager, as some
functionality of the item manager is required to allow setting scroll
positions and such.
But that is a place where more gains could be found if profiling showed
that was useful to do.
Benjamin Otte [Mon, 27 Mar 2023 02:53:48 +0000 (04:53 +0200)]
listfactorywidget: Stop trying to be smart
The widget would teardown the factory on unroot to avoid unnecessary
work when it isn't shown.
However, recycling may reposition widgets, and repositioning widgets
does a unroot/root.
We don't want to recycle widgets then.
Benjamin Otte [Mon, 27 Mar 2023 04:53:29 +0000 (06:53 +0200)]
gtk-demo: Set tab behavior for settings demo
Benjamin Otte [Mon, 27 Mar 2023 04:23:35 +0000 (06:23 +0200)]
magnifier: Don't check for visibility
gtk_widget_queue_draw() already does that.
Benjamin Otte [Sun, 26 Mar 2023 19:10:29 +0000 (19:10 +0000)]
Merge branch 'wip/otte/tab-behavior' into 'main'
listview: Add ::tab-behavior to list widgets
See merge request GNOME/gtk!5710
Benjamin Otte [Fri, 24 Mar 2023 04:41:03 +0000 (05:41 +0100)]
columnview: Add GtkColumnView::tab-behavior
Also make sure that GTK_LIST_TAB_CELL works by implementing support for
it in the row widget.
Benjamin Otte [Fri, 24 Mar 2023 02:45:24 +0000 (03:45 +0100)]
gridview: Add GtkGridView::tab-behavior
Benjamin Otte [Fri, 24 Mar 2023 02:00:02 +0000 (03:00 +0100)]
listview: Add GtkListView::tab-behavior
The implementation lives (as always) in GtkListBase.
This is a feature request from the Nautilus developers, who currently do
some hacks to emulate that behavior and it apparently only breaks
sometimes.
Matthias Clasen [Sun, 26 Mar 2023 15:15:49 +0000 (15:15 +0000)]
Merge branch 'scrolled-window-signal-disconnnect' into 'main'
scrolledwindow: Disconnect the right handler
Closes #5684
See merge request GNOME/gtk!5726
Matthias Clasen [Sun, 26 Mar 2023 14:55:08 +0000 (10:55 -0400)]
scrolledwindow: Disconnect the right handler
We connect gtk_scrolled_window_update_use_indicators
as signal handler in realize(), but we were disconnecting
gtk_scrolled_window_sync_use_indicators in unrealize.
Spotted by Milan Crha.
Fixes: #5684
Matthias Clasen [Sun, 26 Mar 2023 14:36:57 +0000 (14:36 +0000)]
Merge branch 'wayland-startup-notification-crash' into 'main'
wayland: Don't crash without xdg_activation_v1
Closes #5701
See merge request GNOME/gtk!5724
Matthias Clasen [Sun, 26 Mar 2023 14:11:14 +0000 (10:11 -0400)]
wayland: Don't crash without xdg_activation_v1
If the compositor does not support this protocol,
we can't use it.
Fixes: #5701
Matthias Clasen [Sun, 26 Mar 2023 01:01:04 +0000 (01:01 +0000)]
Merge branch 'wayland-cursor-size' into 'main'
wayland: Don't crash on cursor size 0
Closes #5700
See merge request GNOME/gtk!5721
Benjamin Otte [Sun, 26 Mar 2023 00:26:31 +0000 (00:26 +0000)]
Merge branch 'wip/otte/for-main' into 'main'
popover: Fix typo
See merge request GNOME/gtk!5720
Matthias Clasen [Sun, 26 Mar 2023 00:25:51 +0000 (20:25 -0400)]
wayland: Don't crash on cursor size 0
The cursor-theme-size setting is documented as
'0 means the default size'. Make it so by using
size 24 if we see a 0. Its better than crashing.
Fixes: #5700
Benjamin Otte [Sun, 26 Mar 2023 00:01:29 +0000 (01:01 +0100)]
gtk-demo: Rename dropdown demo
It's the listview selections demo, so use that name.
Benjamin Otte [Sat, 25 Mar 2023 23:53:20 +0000 (00:53 +0100)]
gtk-demo: Rename image scaling demo to image_scaling
This just means renaming the C file, but it makes --run=image_scaling
actually do what I'd expect.
Benjamin Otte [Sat, 25 Mar 2023 23:43:58 +0000 (00:43 +0100)]
popover: Fix typo
The typo causs gnome-shell to crah, which is somewhat suboptimal.
It was introduced in
1a9c7a4b1fb.
Matthias Clasen [Sat, 25 Mar 2023 21:21:00 +0000 (21:21 +0000)]
Merge branch 'coordinate-docs' into 'main'
docs: Add some cross references
See merge request GNOME/gtk!5719
Matthias Clasen [Sat, 25 Mar 2023 20:22:45 +0000 (16:22 -0400)]
Incorporate review feedback
Matthias Clasen [Sat, 25 Mar 2023 20:16:34 +0000 (16:16 -0400)]
docs: Use our own box model illustration
This one has a dark mode too.
Matthias Clasen [Sat, 25 Mar 2023 19:29:55 +0000 (15:29 -0400)]
Tweak
Matthias Clasen [Sat, 25 Mar 2023 19:27:23 +0000 (15:27 -0400)]
Tweak
Matthias Clasen [Sat, 25 Mar 2023 19:26:33 +0000 (15:26 -0400)]
More review feedback
Matthias Clasen [Sat, 25 Mar 2023 19:06:19 +0000 (15:06 -0400)]
docs: Add another cross reference
Refer to the new coordinate system overview
from the GdkEvent docs.
Matthias Clasen [Sat, 25 Mar 2023 19:05:28 +0000 (15:05 -0400)]
docs: Apply review feedback
Clarify some points in the coordinate overview.
Matthias Clasen [Sat, 25 Mar 2023 16:17:20 +0000 (12:17 -0400)]
Docs: Cosmetics
Align section heading better. Now they all follow
the "Using GTK..." pattern.
Matthias Clasen [Sat, 25 Mar 2023 16:16:51 +0000 (12:16 -0400)]
docs: Add some cross references
Refer to the new coordinate system overview
from a couple of places where it is useful.
Matthias Clasen [Sat, 25 Mar 2023 16:10:58 +0000 (12:10 -0400)]
docs: Add a section about coordinate systems
Matthias Clasen [Sat, 25 Mar 2023 14:33:14 +0000 (14:33 +0000)]
Merge branch 'deprecate-translate-coordinates' into 'main'
Deprecate gtk_widget_translate_coordinates
Closes #5697
See merge request GNOME/gtk!5717
Matthias Clasen [Sat, 25 Mar 2023 13:48:12 +0000 (09:48 -0400)]
Drop gtk_widget_get_surface_allocation
This private api is confusing, and no longer used.
Matthias Clasen [Sat, 25 Mar 2023 13:46:34 +0000 (09:46 -0400)]
entrycompletion: Stop using gtk_widget_get_surface_allocation
We only need the width of the widgets' bounds
here anyway, so just use gtk_widget_compute_bounds.
Matthias Clasen [Sat, 25 Mar 2023 13:45:31 +0000 (09:45 -0400)]
popover: Stop using gtk_widget_get_surface_allocation
The function is going away, and the computation
here was wrong anyway. Instead, add a helper that
properly computes the pointing-to rect in surface
coordinates and use it everywhere.
Matthias Clasen [Sat, 25 Mar 2023 13:20:47 +0000 (09:20 -0400)]
Deprecate gtk_widget_translate_coordinates
Update all (non-deprecated) callers to use
gtk_widget_compute_point instead.
Fixes: #5697
Matthias Clasen [Sat, 25 Mar 2023 13:59:06 +0000 (13:59 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
testsuite: Add some GL texture tests
See merge request GNOME/gtk!5715
Matthias Clasen [Fri, 24 Mar 2023 22:59:05 +0000 (22:59 +0000)]
Merge branch 'popover-bounds-trouble' into 'main'
textview: Give the magnifier correct coordinates
Closes #5695
See merge request GNOME/gtk!5716
Matthias Clasen [Fri, 24 Mar 2023 19:30:27 +0000 (15:30 -0400)]
magnifier: Correct position of area
The widget paintable uses the widgets bounds
as intrinsic size, so we need to offset from
that to the allocation, which is what the
coordinates are relative to.
Matthias Clasen [Fri, 24 Mar 2023 18:49:18 +0000 (14:49 -0400)]
texthandle: Correct placement of handles
Text handles had the same problem as popovers.
They were interpreting their pointing-to rectangle
relative to the widgets bounds, when it is meant
to be relative to the widgtets allocation.
While we touch this code, rewrite it to use
gtk_widget_compute_point.
Matthias Clasen [Fri, 24 Mar 2023 18:47:27 +0000 (14:47 -0400)]
popover: Correct placement of popovers
When we don't have a pointing-to rectangle, we want to place
the popover wrt to the parents bounds. But if we have a
pointing-to rectangle, it is relative to the widgets allocation,
which is different from the bounds.
We were not handling the second case correctly, leading to context
menus in the text view being mispositioned by the widgets CSS padding.
While we are touching this code, rewrite it to handle transforms.
Fixes: #5695
Matthias Clasen [Fri, 24 Mar 2023 17:56:06 +0000 (13:56 -0400)]
testsuite: Add some GL texture tests
Tests creation and upload/download of GL
textures in various contexts.
Matthias Clasen [Fri, 24 Mar 2023 16:33:44 +0000 (12:33 -0400)]
testsuite: Cosmetics
Matthias Clasen [Fri, 24 Mar 2023 15:53:55 +0000 (15:53 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
Fix up criticals from GdkGLTexture
See merge request GNOME/gtk!5712
Chun-wei Fan [Fri, 24 Mar 2023 15:30:01 +0000 (15:30 +0000)]
Merge branch 'alternative-fix-5685' into 'main'
GDK/Win32: Use wgl* functions directly as needed (fix #5685)
Closes #5685
See merge request GNOME/gtk!5702
Matthias Clasen [Fri, 24 Mar 2023 15:29:38 +0000 (11:29 -0400)]
Fix up criticals from GdkGLTexture
I broke this in
4291f27b562f58.
I overlooked that there may not be a current context.
Matthias Clasen [Fri, 24 Mar 2023 14:45:35 +0000 (14:45 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
docs: Some updates
See merge request GNOME/gtk!5711
Matthias Clasen [Fri, 24 Mar 2023 13:42:25 +0000 (09:42 -0400)]
docs: Improve markup for keys
Consistently use <kbd>x</kbd> to render keys in the docs
and use + for key combinations.
Matthias Clasen [Fri, 24 Mar 2023 12:56:06 +0000 (08:56 -0400)]
docs: Some updates
Fix some links ot point to docs.gtk.org.
Matthias Clasen [Fri, 24 Mar 2023 12:17:51 +0000 (08:17 -0400)]
inspector: Cosmetics
Chun-wei Fan [Fri, 24 Mar 2023 10:16:35 +0000 (18:16 +0800)]
gtkgstsink.c: Drop workarounds needed for Windows
Since we are making GdkGLContext call the core wgl*() functions directly
instead of via libepoxy, drop the workarounds that we needed for notifying
libepoxy that wglMakeCurrent() outside of GDK/GTK was called.
This way, we clean up the code, and as a result, we can use the GstGL
APIs like the other platforms to query what GL api that is to be used.
For ensuring that things work between different threads, we now call
gdk_gl_context_clear_current() in place of calling wglMakeCurrent(xxx,
NULL), so that we make sure that there is no current GL context on a
thread outside of GstGL's thread, which Windows does not like.
Chun-wei Fan [Fri, 24 Mar 2023 03:08:26 +0000 (11:08 +0800)]
GDK-Win32: Add wrapper functions for calling core wgl* functions
We might be dealing with GL contexts from different threads, which have more
gotchas when we are using libepoxy, so in case the function pointers for
these are invalidated by wglMakeCurrent() calls outside of GTK/GDK, such as
in GstGL, we want to use these functions that are directly linked to
opengl32.dll provided by the system/ICD, by linking to opengl32.lib.
This will ensure that we will indeed call the "correct" wgl* functions that
we need.
This should help fix issue #5685.
Benjamin Otte [Fri, 24 Mar 2023 05:18:08 +0000 (05:18 +0000)]
Merge branch 'wip/otte/for-main' into 'main'
listview: Activatable means activate
See merge request GNOME/gtk!5709
Benjamin Otte [Fri, 24 Mar 2023 01:53:42 +0000 (02:53 +0100)]
columnview: Don't infloop when a cell is grab_focus()ed
Whoopsie.
Broken since
30d4629043f.
Benjamin Otte [Thu, 23 Mar 2023 19:37:57 +0000 (20:37 +0100)]
listview: Activatable means activate
Fix a typo that prevented activatable widgets from activating since the
refactoring in
608be08b0d6.
Matthias Clasen [Fri, 24 Mar 2023 03:43:21 +0000 (03:43 +0000)]
Merge branch 'mipmap-tracking' into 'main'
gsk: Avoid copying GL texture in more cases
See merge request GNOME/gtk!5704
Matthias Clasen [Thu, 23 Mar 2023 12:47:54 +0000 (08:47 -0400)]
gsk: Avoid copying GL texture in more cases
When the GL texture already has a mipmap, we don't
have to download and reupload it to generate one.
We differentiate the handling for texture scale nodes,
where we do want to force the mipmap creation even if
it requires us to reupload the GL texture, and plain
texture nodes, where we just take advantage of a
preexisting mipmap to allow trilinear filtering for
downscaling, or create one if we have to upload the
texture anyway.
Matthias Clasen [Thu, 23 Mar 2023 12:44:26 +0000 (08:44 -0400)]
gl: Add a private way to query mipmap status
Make GdkGLTexture determine if the texture has
a mipmap, and provide private API to query this
information.
This check is done in gdkgltexture.c instead of
gskgldriver.c, since we're already binding the
texture here for other reasons, so it is easy
to query a few more things.
Matthias Clasen [Fri, 24 Mar 2023 03:03:31 +0000 (03:03 +0000)]
Merge branch 'check-widget-on-destruction' into 'main'
gtkwidget: Do a type-check in gtk_widget_in_destruction()
See merge request GNOME/gtk!5708
Matthias Clasen [Fri, 24 Mar 2023 02:56:06 +0000 (22:56 -0400)]
gltexture: Try harder to determine the format
We can query these things as long as the texture ID
is valid in the current context.
Marco Trevisan (Treviño) [Fri, 24 Mar 2023 02:29:53 +0000 (03:29 +0100)]
gtkwidget: Do a type-check in gtk_widget_in_destruction()
Given it can be called during a widget destruction, it's safer to do a
type-check before crashing.
See: https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1727
Boyuan Yang [Thu, 23 Mar 2023 18:46:30 +0000 (18:46 +0000)]
Update Chinese (China) translation
Emmanuele Bassi [Thu, 23 Mar 2023 11:07:18 +0000 (11:07 +0000)]
Merge branch 'fix-a11y-leak2' into 'main'
Don't leak all AT contexts
Closes #5690
See merge request GNOME/gtk!5700
Benjamin Otte [Thu, 23 Mar 2023 05:38:29 +0000 (05:38 +0000)]
Merge branch 'wip/otte/listview-cleanups' into 'main'
listview refactoring and new stuff
See merge request GNOME/gtk!5701
Benjamin Otte [Thu, 23 Mar 2023 03:37:29 +0000 (04:37 +0100)]
columnview: Handle focus movement properly
- grab_focus() on a row (happens with scroll_to()) keeps the focus
column intact if possible.
- <Tab> and <Shift-Tab> move through the cells in order, and move
to the next row when at the end.
- <Up> an <Down> move to the next/prev row, keeping the same column
focused.
- <Left> and <Right> move to the prev/next cell, if one is available.
If not, they stay where they are.
Benjamin Otte [Thu, 23 Mar 2023 02:35:04 +0000 (03:35 +0100)]
columnview: add a (private) focus-column
Make setting the focus column scroll to it, too.
Benjamin Otte [Tue, 21 Mar 2023 13:08:14 +0000 (14:08 +0100)]
columnviewrowwidget: Handle left/right arrow keys
Make it move focus just like GtkWindow would.
Otherwise the listview will (try to) handle it and move focus between
cells - which doesn't do anything for lists and only works with grids.
Benjamin Otte [Tue, 21 Mar 2023 12:47:24 +0000 (13:47 +0100)]
listbase: Only grab_focus() if the cursor moved
If there is no movement, grab_focus() on the already focused widget
just causes weird inconsistencies and we don't want those.
Benjamin Otte [Tue, 21 Mar 2023 12:43:35 +0000 (13:43 +0100)]
columnviewrow: Handle focus movement properly
Handle backwards tab properly and deal with left right arrows.
Benjamin Otte [Wed, 15 Mar 2023 01:12:33 +0000 (02:12 +0100)]
listitemwidget: Only take a single child
Benjamin Otte [Mon, 13 Mar 2023 16:39:52 +0000 (17:39 +0100)]
columnviewrowwidget: Drop unneeded stuff
Also remove the GtkColumnListItemFactory and GtkColumnViewLayout
objects by folding them into GtkColumnViewRowWidget.
Benjamin Otte [Mon, 13 Mar 2023 04:04:29 +0000 (05:04 +0100)]
columnview: Add GtkColumnViewRowWidget
This is a copy/paste of GtkListItemWidget for now.
Modifications will happen in future commits.
Benjamin Otte [Mon, 20 Mar 2023 05:15:18 +0000 (06:15 +0100)]
listview: Add private GtkListFactoryWidget
This is a split of GtkListItemWidget into the generic parts of factory
using widgets.
On top of it there's GtkListItemWidget, which takes care of GtkListItem.
Benjamin Otte [Sun, 12 Mar 2023 21:03:03 +0000 (22:03 +0100)]
listview: Move ::factory out of the item manager
It's a listitemwidget property, and the item manager manages the items,
not the widgets.
Benjamin Otte [Sun, 12 Mar 2023 20:54:07 +0000 (21:54 +0100)]
listview: Move ::single-click-activate out of the item manager
It's a listitemwidget property, and the item manager manages the items,
not the widgets.
Benjamin Otte [Sun, 12 Mar 2023 17:36:57 +0000 (18:36 +0100)]
listitemmanager: Create widgets via vfunc
We now have listitemmanager just create GtkListItemBase objects via
vfunc and use them.
Benjamin Otte [Sun, 12 Mar 2023 04:05:48 +0000 (05:05 +0100)]
listitemwidget: split out GtkListItemBase
There's 2 reasons for this:
1. Adding a custom widget for columnview rows
2. Using this as base class for sections
Benjamin Otte [Sun, 12 Mar 2023 00:13:37 +0000 (01:13 +0100)]
itemmananger: Remove the user data
Use the widget instead. They're the same anyway.
Benjamin Otte [Sat, 11 Mar 2023 16:22:36 +0000 (17:22 +0100)]
listbase: Privatize 2 functions
They're not used outside of GtkListBase, so no use to have them in the
header.
Requires moving one function up in the source now that the forward
declaration is missing.
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 03:41:40 +0000 (23:41 -0400)]
Don't leak all AT contexts
create_at_context was confused - it stored a reference
to the newly created context in priv->context, but then
also returned a reference, and the caller stored that
in priv->context again.
Change it to only return a reference.
Fixes: #5690
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