Matthias Clasen [Thu, 5 May 2022 23:38:23 +0000 (23:38 +0000)]
Merge branch 'editable-label-fixes' into 'main'
theme: Fix editable label selection
See merge request GNOME/gtk!4690
Matthias Clasen [Thu, 5 May 2022 16:43:23 +0000 (12:43 -0400)]
editablelabel: Make :editing writable
This does not hurt, and lets us start editing from
a ui file, which is useful for documentation screenshots.
Matthias Clasen [Thu, 5 May 2022 16:31:51 +0000 (12:31 -0400)]
theme: Fix editable label selection
When the editable label is in editing mode,
selections should appear the same as in other
entries.
Matthias Clasen [Wed, 4 May 2022 12:28:32 +0000 (12:28 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
docs: Fix a spinbutton example
See merge request GNOME/gtk!4686
Matthias Clasen [Wed, 4 May 2022 11:41:48 +0000 (07:41 -0400)]
docs: Fix a spinbutton example
We need to use editable api for editable functionality.
Benjamin Otte [Tue, 3 May 2022 22:05:47 +0000 (22:05 +0000)]
Merge branch 'checkbutton-label' into 'main'
Expose GtkCheckButton label child for manipulation
Closes #4698
See merge request GNOME/gtk!4489
Matthias Clasen [Tue, 3 May 2022 17:46:51 +0000 (17:46 +0000)]
Merge branch 'wrap-mode-invalid-cast' into 'main'
Don't cast GtkWrapMode to the incompatible enum PangoWrapMode
Closes #4869
See merge request GNOME/gtk!4671
Matthias Clasen [Tue, 3 May 2022 17:37:54 +0000 (17:37 +0000)]
Merge branch 'wip/exalm/eye-icons' into 'main'
icons: Use the proper eye icons
See merge request GNOME/gtk!4663
Matthias Clasen [Tue, 3 May 2022 17:37:36 +0000 (17:37 +0000)]
Merge branch 'wip/carlosg/ignore-null-preedit' into 'main'
imcontextwayland: Ignore preedit updates from NULL to NULL
See merge request GNOME/gtk!4667
Matthias Clasen [Tue, 3 May 2022 16:37:27 +0000 (16:37 +0000)]
Merge branch 'ebassi/issue-4883' into 'main'
Keep FileChooserNative alive while a portal is running
Closes #4883
See merge request GNOME/gtk!4675
Pablo Correa Gómez [Fri, 25 Mar 2022 13:34:04 +0000 (14:34 +0100)]
Expose GtkCheckButton label as a child for manipulation
This allows consumers greater control over the label without the need
to expose each of the label properties as part of GtkCheckButton interface.
Specifically, motivation for this commit is to be able to wrap the label.
Closes #4698
Matthias Clasen [Tue, 3 May 2022 00:44:05 +0000 (00:44 +0000)]
Merge branch 'wip/another-randr-error-trap-4' into 'main'
x11: Trap errors happening when getting output properties
See merge request GNOME/gtk!4681
Luca Bacci [Mon, 2 May 2022 19:00:38 +0000 (19:00 +0000)]
Merge branch 'fix-introspection-tests-win' into 'main'
testsuite: Fix introspection test on Windows
See merge request GNOME/gtk!4664
Luca Bacci [Mon, 2 May 2022 18:53:27 +0000 (18:53 +0000)]
Merge branch 'fix-list-model-checks-null-vs-empty' into 'main'
GtkFileChooserWidget: fixes for NULL vs empty GListModel
Closes #4851 and #4858
See merge request GNOME/gtk!4678
Jonas Ådahl [Mon, 2 May 2022 15:28:36 +0000 (17:28 +0200)]
x11: Trap errors happening when getting output properties
This is to avoid getting X11 errors (thus aborting/exiting with a
failure) during rapid hotplugs, which may happen during e.g. CI testing.
Yuri Chornoivan [Mon, 2 May 2022 09:14:32 +0000 (09:14 +0000)]
Update Ukrainian translation
Yuri Chornoivan [Mon, 2 May 2022 09:11:07 +0000 (09:11 +0000)]
Update Ukrainian translation
Matthias Clasen [Mon, 2 May 2022 08:26:38 +0000 (08:26 +0000)]
Merge branch 'fix-large-compose-file' into 'main'
composetable: Add a missing NULL check
Closes #4873
See merge request GNOME/gtk!4679
Matthias Clasen [Mon, 2 May 2022 08:03:45 +0000 (16:03 +0800)]
Reject compose tables that are too large
The fixed-size format we use currently can only handle up
to 32768 bytes of string data. If a compose file contains
more, reject it with a warning.
Fixes: #4873
Matthias Clasen [Mon, 2 May 2022 07:39:03 +0000 (15:39 +0800)]
composetable: Add a missing NULL check
gtk_compose_table_parse can return NULL. Handle it.
Luca Bacci [Sun, 1 May 2022 14:41:10 +0000 (16:41 +0200)]
GtkFileChooserWidget: return empty GListModel in get_files () instead of NULL
Luca Bacci [Sun, 1 May 2022 14:31:47 +0000 (16:31 +0200)]
GtkFileChooserWidget: check for empty instead of NULL GListModel
While porting GtkFileChooserWidget from GList to GListModel we did not
change some checks for NULL to checks for empty list.
Fixes #4851, #4858
Emmanuele Bassi [Fri, 29 Apr 2022 14:18:02 +0000 (15:18 +0100)]
Keep FileChooserNative alive while a portal is running
Even if the FileChooserNative instance drops out on us while we're still
waiting for the portal to answer, we should keep the data and pointers
alive until the sequence of asynchronous operations is running. The code
already tries to do that, by acquiring a strong reference to the
GtkFileChooserNative instance, but it's also freeing data as soon as the
dialog is hidden, while asynchronous callbacks that will look at the
fields on that data are still in flight.
To avoid that, we defer freeing the data until the asynchronous
callbacks are invoked, and we keep a reference on the dialog while we're
emitting signals on it.
Fixes: #4883
Federico Mena Quintero [Thu, 28 Apr 2022 14:46:20 +0000 (09:46 -0500)]
Make the wrap_mode test unix-only
The relevant accessibility code is not built on Windows.
Emmanuele Bassi [Wed, 27 Apr 2022 13:46:14 +0000 (13:46 +0000)]
Merge branch 'wip/sophie-h/fix-4020' into 'main'
filechooser: Small fix for select folder mode
Closes #4020
See merge request GNOME/gtk!4650
Federico Mena Quintero [Tue, 26 Apr 2022 19:41:34 +0000 (14:41 -0500)]
textbuffer: Test the serialization of the wrap-mode attribute
Federico Mena Quintero [Tue, 26 Apr 2022 19:01:08 +0000 (14:01 -0500)]
Put the text buffer tests in the internal_tests suite
We'll start testing the internal gtk_text_buffer_get_run_attributes()
soon.
Benjamin Otte [Tue, 26 Apr 2022 18:58:08 +0000 (18:58 +0000)]
Merge branch 'wip/otte/for-main' into 'main'
roaring: Remove extra careful code
Closes #4252 and #4517
See merge request GNOME/gtk!4669
Federico Mena Quintero [Tue, 26 Apr 2022 18:43:19 +0000 (13:43 -0500)]
Don't cast GtkWrapMode to the incompatible enum PangoWrapMode
The enum values are not compatible, and moreover, there is an extra
GTK_WRAP_NONE that PangoWrapMode doesn't have - thus,
pango_wrap_mode_to_string() will assert.
As far as I can tell, Orca does not read the wrap-mode key in the
dictionary for text attributes, anyway.
Fixes: #4869
Benjamin Otte [Tue, 26 Apr 2022 17:51:16 +0000 (19:51 +0200)]
boxlayout: Do not infloop
if the loop for determining max width grows too big, print an error and
abort assuming that a satisfactory value was reached.
This will cause wrong layout and might cause widgets to overlap, but it
will not infloop.
It actually works around and doesn't really fix the primary cause of the
following bugs, but good enough to close them:
Fixes: #4252
Fixes: #4517
Benjamin Otte [Tue, 26 Apr 2022 17:39:20 +0000 (19:39 +0200)]
ffmpeg: Hey, this variable is const now!
Benjamin Otte [Tue, 26 Apr 2022 17:38:36 +0000 (19:38 +0200)]
roaring: Remove extra careful code
because gcc knows it's too careful
Emmanuele Bassi [Tue, 26 Apr 2022 13:08:00 +0000 (13:08 +0000)]
Merge branch 'annotation-fix' into 'main'
gtk/popovermenu: Fix transfer annotation of new_from_model_full()
See merge request GNOME/gtk!4668
Florian Müllner [Tue, 26 Apr 2022 12:25:15 +0000 (14:25 +0200)]
gtk/popovermenu: Fix transfer annotation of new_from_model_full()
The function doesn't return a full reference, but a floating widget
like comparable constructor functions.
Carlos Garnacho [Tue, 26 Apr 2022 10:23:09 +0000 (12:23 +0200)]
imcontextwayland: Ignore preedit updates from NULL to NULL
If we get consecutive preedit string updates that announce a NULL
string, we still do end up issuing ::preedit-changed with those.
Ignore changes from NULL to NULL, it is the other combinations which
must issue this signal.
Chun-wei Fan [Tue, 26 Apr 2022 03:19:16 +0000 (11:19 +0800)]
Introspection test: Reverse os.add_dll_directory() order
It looks like os.add_dll_directory() works in a LIFO order, so we call
os.add_dll_directory() from the end of the list of directories in %PATH%
so that the directories are searched in the correct order.
Chun-wei Fan [Mon, 25 Apr 2022 07:28:44 +0000 (15:28 +0800)]
testsuite: Fix introspection test on Windows
...when we are using Python 3.8.x or later. Python 3.8.x or later on Windows
require one to call os.add_dll_directory() on every directory that contains
dependent non-system DLLs of a module that are not bundled/installed with the
module.
Since we are very likely running programs that rely on dependent items in
%PATH%, make things easier for people by calling os.add_dll_directory() on
all the valid paths in %PATH% in api.py, so that the test will run
successfully on Windows with Python 3.8.x or later.
Zurab Kargareteli [Sat, 23 Apr 2022 17:05:50 +0000 (17:05 +0000)]
Update Georgian translation
Alexander Mikhaylenko [Fri, 22 Apr 2022 12:21:02 +0000 (16:21 +0400)]
icons: Use the proper eye icons
adwaita-icon-theme has more appropriate icons for showing/hiding text now.
use those, and in the process fix the fact GtkPasswordEntry has been using
them the other way around.
Rafael Fontenelle [Thu, 21 Apr 2022 01:34:01 +0000 (01:34 +0000)]
Update Brazilian Portuguese translation
Matthias Clasen [Wed, 20 Apr 2022 03:35:44 +0000 (03:35 +0000)]
Merge branch 'vertical-spin-selection-fix' into 'main'
theme: Fix vertical spin button selection
Closes #4788
See merge request GNOME/gtk!4659
Matthias Clasen [Wed, 20 Apr 2022 03:14:37 +0000 (23:14 -0400)]
theme: Fix vertical spin button selection
The selection should be black-on-blue as it is
everywhere else now. This was just a leftover.
Fixes: #4788
Emmanuele Bassi [Tue, 19 Apr 2022 21:04:25 +0000 (21:04 +0000)]
Merge branch 'ebassi/issue-4825' into 'main'
Fix crash when running GTK4 apps under Orca
Closes #4825
See merge request GNOME/gtk!4657
Emmanuele Bassi [Tue, 19 Apr 2022 15:12:08 +0000 (16:12 +0100)]
a11y: Defer object registration after root registration
The root accessible object is registered asynchronously, as it needs to
call a method on the AT-SPI registry daemon. This means we need to defer
registering the GtkAtSpiContext on the accessibility bus and in the
cache until after the registration is complete.
Fixes: #4825
Emmanuele Bassi [Tue, 19 Apr 2022 14:33:21 +0000 (15:33 +0100)]
Quench the anger of GCC
Direct access of the fields of the union trips compiler warnings with
GCC 12, such as:
../gtk/gtkimagedefinition.c:135:13: error: array subscript
‘GtkImageDefinition {aka union _GtkImageDefinition}[0]’ is partly
outside array bounds of ‘GtkImageDefinitionEmpty[1]’ {aka
‘struct _GtkImageDefinitionEmpty[1]’} [-Werror=array-bounds]
Matthias Clasen [Tue, 19 Apr 2022 03:51:16 +0000 (03:51 +0000)]
Merge branch 'file-filter-fix' into 'main'
Fix file filter buildable support
Closes #4787
See merge request GNOME/gtk!4652
Matthias Clasen [Tue, 19 Apr 2022 03:03:15 +0000 (23:03 -0400)]
Fix file filter buildable support
File filters creates from ui files had some
extraneous gunk in them. Fix that. Test included.
Fixes: #4787
Sophie Herold [Mon, 18 Apr 2022 22:55:05 +0000 (00:55 +0200)]
filechooser: Small fix for select folder mode
When changing folders, we were making the select
button insensitive when there is no folder selected.
However, the select button should be usable to
select the current folder.
Fixes #4020
Matthias Clasen [Mon, 18 Apr 2022 15:36:45 +0000 (15:36 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
gtk-builder-tool: Error out if screenshooting fails
See merge request GNOME/gtk!4649
Matthias Clasen [Mon, 18 Apr 2022 15:16:05 +0000 (11:16 -0400)]
gtk-builder-tool: Error out if screenshooting fails
If we don't produce a texture for whatever reason,
apologize and fail.
Timm Bäder [Mon, 18 Apr 2022 09:27:05 +0000 (09:27 +0000)]
Merge branch 'badcel/fix-typo' into 'main'
docs: Fix typo in description of GtkExpression
See merge request GNOME/gtk!4647
Marcel Tiede [Mon, 18 Apr 2022 06:20:19 +0000 (06:20 +0000)]
docs: Fix typo in description of GtkExpression
Matthias Clasen [Sun, 17 Apr 2022 17:40:46 +0000 (17:40 +0000)]
Merge branch 'screenshot-command' into 'main'
gtk-builder-tool: Add a screenshot command
See merge request GNOME/gtk!4645
Matthias Clasen [Sun, 17 Apr 2022 04:26:25 +0000 (00:26 -0400)]
gtk-builder-tool: Add a screenshot command
This is an obvious variation of the preview
command. It can save a .ui file as either
.png or .node.
Matthias Clasen [Sun, 17 Apr 2022 15:59:06 +0000 (11:59 -0400)]
gtk-builder-tool: Reshuffle --help
Use GOptionContext better.
Matthias Clasen [Sun, 17 Apr 2022 16:07:59 +0000 (16:07 +0000)]
Merge branch 'wip/exalm/scrolled-window' into 'main'
scrolledwindow: Pick up gtk-overlay-scrolling changes on the fly
See merge request GNOME/gtk!4642
Matthias Clasen [Sun, 17 Apr 2022 15:19:07 +0000 (11:19 -0400)]
gtk-builder-tool: Small reshuffle
Move the display check into the preview command.
Matthias Clasen [Sun, 17 Apr 2022 03:51:32 +0000 (03:51 +0000)]
Merge branch 'filechooser-entry-popup' into 'main'
filechooser: Prevent random completion popups
See merge request GNOME/gtk!4643
Matthias Clasen [Sun, 17 Apr 2022 03:31:39 +0000 (03:31 +0000)]
Merge branch 'filechooser-save-sensitive' into 'main'
filechooser: Small fix for save mode
Closes #4851
See merge request GNOME/gtk!4644
Matthias Clasen [Sun, 17 Apr 2022 03:29:04 +0000 (23:29 -0400)]
filechooser: Prevent random completion popups
It is very irritating when the entry completion popup
appears not in response to user input in the entry.
In particular, when that happens right as the dialog
is shown.
To prevent that, temporarily disable completion
when setting the entry text programmatically.
Matthias Clasen [Sun, 17 Apr 2022 02:00:22 +0000 (22:00 -0400)]
filechooser: Small fix for save mode
When changing folders, we were making the select
button insensitive when there's no files around.
That doesn't make sense in save mode when we don't
want to select a file but create one.
Fixes: #4851
Alexander Mikhaylenko [Sat, 16 Apr 2022 12:56:17 +0000 (16:56 +0400)]
scrolledwindow: Pick up gtk-overlay-scrolling changes on the fly
Alexander Mikhaylenko [Sat, 16 Apr 2022 12:30:07 +0000 (16:30 +0400)]
scrolledwindow: Fix :kinetic-scrolling setter
Matthias Clasen [Sat, 16 Apr 2022 00:07:21 +0000 (00:07 +0000)]
Merge branch 'wip/exalm/tooltip' into 'main'
tooltipwindow: Don't restrict minimum tooltip label length
Closes #3741
See merge request GNOME/gtk!4640
Alexander Mikhaylenko [Fri, 15 Apr 2022 23:48:21 +0000 (03:48 +0400)]
tooltipwindow: Don't restrict minimum tooltip label length
We only care about wrapping at that length, we still want short tooltips
for short labels.
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3741
Alexander Mikhaylenko [Fri, 15 Apr 2022 23:28:22 +0000 (03:28 +0400)]
tooltipwindow: Remove a duplicate gtk_widget_class_set_css_name() call
Matthias Clasen [Fri, 15 Apr 2022 00:09:42 +0000 (00:09 +0000)]
Merge branch 'ebassi/for-main' into 'main'
docs: Fix the GtkPaned style
See merge request GNOME/gtk!4637
Emmanuele Bassi [Thu, 14 Apr 2022 21:44:17 +0000 (22:44 +0100)]
Mark nullable arguments in GtkPaned
The set_start_child() and set_end_child() methods take NULL for the
child argument, as a way to remove the child from the paned widget.
Emmanuele Bassi [Thu, 14 Apr 2022 21:43:40 +0000 (22:43 +0100)]
docs: Fix the GtkPaned style
Use proper links to properties and methods, and drop gtk-doc'isms.
Matthias Clasen [Thu, 14 Apr 2022 18:00:43 +0000 (18:00 +0000)]
Merge branch 'fix_tooltip' into 'main'
label: Maintain value for `has-tooltip` for labels with links
See merge request GNOME/gtk!4635
Matthias Clasen [Thu, 14 Apr 2022 11:36:19 +0000 (11:36 +0000)]
Merge branch 'fix_link_tabs' into 'main'
label: Move focus out of widget after last link
Closes #4681
See merge request GNOME/gtk!4636
Julian Sparber [Thu, 14 Apr 2022 10:14:17 +0000 (12:14 +0200)]
label: Move focus out of widget after last link
This allows the user to navigate via tab the links in a label and exits
the widget after the last link, when moving forward, and first link,
when moving backward.
This also ensures that ellipsised links arn't focused.
Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4681
Julian Sparber [Wed, 13 Apr 2022 16:56:29 +0000 (18:56 +0200)]
label: Maintain value for `has-tooltip` for labels with links
The `has-tooltip` property gets set to `false` for label with links if no
link is selected. This makes sure to only change the property to `true`
but never to `false`.
Benjamin Otte [Tue, 12 Apr 2022 23:48:55 +0000 (23:48 +0000)]
Merge branch 'clarify-scrollable-docs' into 'main'
scrollable: Clarify when to set adjustment props
See merge request GNOME/gtk!4632
Ivan Molodetskikh [Mon, 11 Apr 2022 07:31:52 +0000 (10:31 +0300)]
scrollable: Clarify when to set adjustment props
Instead of populating the properties right away (when the widget might
not have been allocated yet, and hence cannot know the right values),
the widget should queue an allocation, where it will populate the
values.
Benjamin Otte [Fri, 8 Apr 2022 22:00:33 +0000 (22:00 +0000)]
Merge branch 'gles-win32' into 'main'
Inspector: Fix running on Windows with GLES (was: fix running GL demos with GLES on Windows)
See merge request GNOME/gtk!4595
Matthias Clasen [Fri, 8 Apr 2022 16:14:43 +0000 (16:14 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
gsk/gl: Typo fix
See merge request GNOME/gtk!4628
Matthias Clasen [Fri, 8 Apr 2022 15:18:15 +0000 (11:18 -0400)]
gsk/gl: Typo fix
Luca Bacci [Fri, 8 Apr 2022 08:31:14 +0000 (08:31 +0000)]
Merge branch 'gdk-win32-fix-mouse-move-crossing-events' into 'main'
GdkWin32: Mouse events fixes
Closes #4722 and #4813
See merge request GNOME/gtk!4620
Matthias Clasen [Thu, 7 Apr 2022 14:32:53 +0000 (14:32 +0000)]
Merge branch 'nonoverlapping-containers' into 'main'
gsk/gl: Avoid offscreening in more cases
See merge request GNOME/gtk!4619
Matthias Clasen [Thu, 7 Apr 2022 14:05:40 +0000 (14:05 +0000)]
Merge branch 'n-docs-fixes' into 'main'
More doc fixes
See merge request GNOME/gtk!4618
Matthias Clasen [Thu, 7 Apr 2022 11:46:11 +0000 (11:46 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
gl: Don't leak big glyphs
See merge request GNOME/gtk!4626
Matthias Clasen [Sun, 5 Dec 2021 03:16:01 +0000 (22:16 -0500)]
gtk-demo: Small fixup to the cursors demo
Luca Bacci [Wed, 6 Apr 2022 18:01:51 +0000 (20:01 +0200)]
GdkWin32: Generate crossing event after button release
Fixes #4813
Luca Bacci [Mon, 4 Apr 2022 13:29:52 +0000 (15:29 +0200)]
GdkWin32: Correct generation of crossing events when holding an implicit grab
Fixes #4722
Luca Bacci [Wed, 6 Apr 2022 17:45:50 +0000 (19:45 +0200)]
GdkWin32: Report serial for events
Matthias Clasen [Wed, 6 Apr 2022 15:56:26 +0000 (15:56 +0000)]
Merge branch 'push-history-position-fix' into 'main'
gdk: always populate GDK_AXIS_{X,Y} in merged event history
Closes #4809
See merge request GNOME/gtk!4623
Matthias Clasen [Wed, 6 Apr 2022 15:44:43 +0000 (15:44 +0000)]
Merge branch 'wip/carlosg/osk-activation' into 'main'
imwayland: Connect OSK activating gesture to parent widget on editables
Closes #4795
See merge request GNOME/gtk!4624
Carlos Garnacho [Wed, 6 Apr 2022 11:08:00 +0000 (13:08 +0200)]
imwayland: Do not defer commit() after set_surrounding_text()
For reasons that only apply to the old serial handling, asking for
the surrounding after IM changes resulted in lazy handling of
commit() afterwards.
With the recent interpretation of serials, this problem became more
apparent, since it is in fact very likely that the last interaction
step after an IM change is notifying of the changed surrounding
text after the IM change was applied.
Make handling of surrounding text similar to caret position changes,
always commit() after the state change, but skip through non-changes.
This makes the compositor state fully up-to-date after an IM change.
Carlos Garnacho [Wed, 6 Apr 2022 09:01:01 +0000 (11:01 +0200)]
imwayland: Connect OSK activating gesture to parent widget on editables
The gesture as connected currently on the child GtkText is easily overridden
by the parent editables (and gently done so in the attempt to consume all
clicks).
Connect this gesture to the parent editable widget in these cases, so the
gesture can cohabit with the click-consuming one. It's not part of the same
group, but it won't be abruptly cancelled.
Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4795
Hemidark [Tue, 5 Apr 2022 21:56:33 +0000 (14:56 -0700)]
gdk: always populate GDK_AXIS_{X,Y} in merged event history
Since GdkTimeCoord stores only axis values, prior to this change,
if a device didn't report GDK_AXIS_X or GDK_AXIS_Y, the history
attached to merged motion events wouldn't contain any positional
information.
Commit
6012276093ea10dc0913c38d9123c37b08a20264 already addressed
this issue for devices without tools by storing the event position
in GdkTimeCoord using GDK_AXIS_X and GDK_AXIS_Y and augmenting the
GdkTimeCoord's axis bitmask accordingly.
This change generalizes that workaround to all devices. Note that
if a device DOES report values for GDK_AXIS_X and GDK_AXIS_Y, those
values won't be overwritten.
Closes #4809
Matthias Clasen [Sun, 3 Apr 2022 23:37:42 +0000 (19:37 -0400)]
gsk/gl: Use pre-collected opacity information
We now collect this information during node
construction, so use it here.
The concrete change here is that we now avoid
offscreens for container nodes with multiple children,
as long as they don't overlap. In particular, this
avoid offscreens for ellipsized dim labels.
Matthias Clasen [Tue, 5 Apr 2022 18:55:36 +0000 (14:55 -0400)]
gsk: Collect opacity information
Collect information about whether to use offscreens
for opacity during node construction, so we don't
need to walk the tree repeatedly, later.
Matthias Clasen [Sun, 3 Apr 2022 23:28:53 +0000 (19:28 -0400)]
gsk: Track disjointness of container nodes
This can be used to optimize some things in the
GL renderer.
Matthias Clasen [Tue, 5 Apr 2022 12:25:59 +0000 (12:25 +0000)]
Merge branch 'blurry-offscreen' into 'main'
gsk/gl: Always align offscreen rendering with the pixel grid
Closes #3833
See merge request GNOME/gtk!4621
Matthias Clasen [Tue, 5 Apr 2022 03:15:53 +0000 (03:15 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
gl: Don't leak big glyphs
See merge request GNOME/gtk!4622
Matthias Clasen [Mon, 4 Apr 2022 00:25:22 +0000 (20:25 -0400)]
gl: Don't leak big glyphs
We were never resetting the accessed bit of
glyphs that are big enough to be stored individually,
so these would just accumulate and never be dropped.
Sebastian Keller [Mon, 4 Apr 2022 20:55:16 +0000 (22:55 +0200)]
testsuite: Add unaligned-offscreen test
Tests whether text rendered to an offscreen node unaligned with the
pixel grid introduces blurriness.
Sebastian Keller [Thu, 31 Mar 2022 14:44:34 +0000 (16:44 +0200)]
gsk/gl: Always align offscreen rendering with the pixel grid
This fixes two issues with the offscreen rendering code for nodes with
bounds not aligned with the pixel grid:
1.) When drawing to an offscreen buffer the size of the offscreen buffer
was rounded up, but then later when used as texture the vertices
correspond to the original bounds with the unrounded size. This could
then result in the offscreen texture being drawn onscreen at a slightly
smaller size, which then lead to it being visually shifted and blurry.
This is fixed by adjusting the u/v coordinates to ignore the padding
region in the offscreen texture that got added by the size increase from
rounding.
2.) The viewport used when rendering to the offscreen buffer was not
aligned with the pixel grid for nodes at coordinates not aligned with
the pixel grid. Then because the content of the offscreen buffer is not
aligned with the pixel grid and later when used as textures sampling
from it will result in interpolated values for an onscreen pixel. This
could also result in shifting and blurriness, especially for nested
offscreen rendering at different offsets.
This is fixed by adding similar padding at the beginning of the
texture and also adjusting the u/v coordinates to ignore this region.
Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/3833
Christian Hergert [Mon, 4 Apr 2022 18:53:19 +0000 (18:53 +0000)]
Merge branch 'sumibi-yakitori/fix-minimize-window-macos' into 'main'
macos: Fix problem that window cannot be minimized by user operation
Closes #4811
See merge request GNOME/gtk!4613