Georges Basile Stavracas Neto [Fri, 7 Oct 2022 20:48:26 +0000 (17:48 -0300)]
filechooserwidget: Replace 'list' page with column view
Replace the 'list' page of the main stack with another page, this
one containing a GtkColumnView. This, again, is the very minimal
code to achieve a column view - and validate the GListModel code
introduced in the previous commit - but there's a long way until
this column view covers the full range of features of the file
chooser.
The tree view still lives in an unused 'list2' page. From now on,
commits will "cannibalize" the treeview, each commit porting any
particular feature - be it a column, an event controller, etc -
to the column view, and dropping the corresponding feature from
the treeview.
Georges Basile Stavracas Neto [Fri, 7 Oct 2022 19:52:56 +0000 (16:52 -0300)]
filesystemmodel: Implement GListModel
This is a trivial implementation of the GListModel interface. It
does not do anything fancy, like filtering out hidden files, nor
sorting.
The purpose of this minimal implementation is to bootstrap the
initial work to port GtkFileChooserWidget to GtkColumnView.
Georges Basile Stavracas Neto [Fri, 7 Oct 2022 20:12:05 +0000 (17:12 -0300)]
filesystemmodel: Use g_clear_* on finalize
Trivial cleanup, no functional changes.
Matthias Clasen [Fri, 21 Oct 2022 02:28:02 +0000 (02:28 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
inspector: Fix accessibility calls
See merge request GNOME/gtk!5154
Matthias Clasen [Fri, 21 Oct 2022 02:13:42 +0000 (02:13 +0000)]
Merge branch 'completion' into 'main'
entrycompletion: Fix inserted-text handler
See merge request GNOME/gtk!4892
Matthias Clasen [Fri, 21 Oct 2022 01:41:18 +0000 (21:41 -0400)]
filechooserentry: Fix completions
Before we can drop them, lets make them work.
This was broken since 4.0, I assume :(
Matthias Clasen [Fri, 21 Oct 2022 01:13:46 +0000 (21:13 -0400)]
inspector: Fix accessibility calls
The argument list of gtk_accessible_update_property
is -1-terminated, not NULL-terminated.
Matthias Clasen [Thu, 20 Oct 2022 19:18:26 +0000 (19:18 +0000)]
Merge branch 'columnview-sorter-api' into 'main'
gtk-demo: Add more sort columns
Closes #5149
See merge request GNOME/gtk!5152
Matthias Clasen [Thu, 20 Oct 2022 19:15:38 +0000 (19:15 +0000)]
Merge branch 'fix-wayland-keycode-mapping' into 'main'
wayland: Fix keycode->keyval mapping
Closes #5277
See merge request GNOME/gtk!5147
Matthias Clasen [Thu, 20 Oct 2022 18:39:29 +0000 (18:39 +0000)]
Merge branch 'ebassi/tree-deprecation-docs' into 'main'
docs: Add deprecation messages to GtkTreeStore
See merge request GNOME/gtk!5115
Matthias Clasen [Thu, 20 Oct 2022 18:28:47 +0000 (18:28 +0000)]
Merge branch 'wip/jtojnar/compose-consistent-system' into 'main'
Improve composetable inclusions
See merge request GNOME/gtk!5150
Matthias Clasen [Thu, 20 Oct 2022 17:37:26 +0000 (13:37 -0400)]
columnviewtitle: Clean up interactions
Separate the apis we use for updating title,
menu and sort indicator.
Matthias Clasen [Thu, 20 Oct 2022 14:33:57 +0000 (10:33 -0400)]
columnviewsorter: Add public API
This API should be sufficient to serialize
a columnviews sort configuration.
Fixes: #5149
Matthias Clasen [Thu, 20 Oct 2022 14:05:13 +0000 (10:05 -0400)]
Make GtkColumnViewSorter public
API is yet to come.
Matthias Clasen [Thu, 20 Oct 2022 13:59:28 +0000 (09:59 -0400)]
columnviewsorter: Cosmetics
Matthias Clasen [Thu, 20 Oct 2022 13:50:14 +0000 (09:50 -0400)]
columnviewcolumn: Add an ID
This string can be used when storing columnview
configuration.
Matthias Clasen [Thu, 20 Oct 2022 13:52:54 +0000 (09:52 -0400)]
columnviewcolumn: Remove some unused code
Matthias Clasen [Thu, 20 Oct 2022 13:40:39 +0000 (09:40 -0400)]
columnviewcolumn: Cosmetics
Matthias Clasen [Thu, 20 Oct 2022 15:38:40 +0000 (11:38 -0400)]
gtk-demo: Add more sort columns
Add a second sort column to the Settings demo,
to make it easier to test column view sorting.
Emmanuele Bassi [Thu, 20 Oct 2022 11:42:27 +0000 (12:42 +0100)]
Add more messages to the deprecation warnings
Point to replacement types for the old GtkTree* API.
Emmanuele Bassi [Thu, 20 Oct 2022 11:36:32 +0000 (12:36 +0100)]
Mark GtkStyleContext type as deprecated
Add the Deprecated tag to the type docblock
Emmanuele Bassi [Thu, 20 Oct 2022 11:36:08 +0000 (12:36 +0100)]
Mark GtkEntryCompletion type as deprecated
Add the Deprecated tag to the type docblock.
Emmanuele Bassi [Thu, 20 Oct 2022 11:35:31 +0000 (12:35 +0100)]
Mark GtkTreeView-related types as deprecated
Add the Deprecated annotation to the type docblock.
Jan Tojnar [Thu, 20 Oct 2022 14:19:13 +0000 (16:19 +0200)]
imcontextsimple: Document that Compose file support is incomplete
And that `include "%L"` does something different as introduced in
https://gitlab.gnome.org/GNOME/gtk/-/commit/
3b4b1c68781aad61fc6b91c9dff75b5790b4d8e4
Note that user can still use `include "/.%L"` as a workaround.
Emmanuele Bassi [Thu, 20 Oct 2022 11:23:58 +0000 (12:23 +0100)]
Mark GtkAppChooser-related types as deprecated
The type docblock needs a Deprecated annotation.
Emmanuele Bassi [Thu, 20 Oct 2022 11:23:13 +0000 (12:23 +0100)]
Mark GtkCellRenderer-related types as deprecated
The docblock for the type needs a Deprecated annotation, and we can use
it to point to the appropriate replacement.
Emmanuele Bassi [Thu, 20 Oct 2022 10:38:11 +0000 (11:38 +0100)]
Point at the replacement for GtkIconView
In the symbol annotations and in the docblocks.
Emmanuele Bassi [Thu, 20 Oct 2022 10:37:23 +0000 (11:37 +0100)]
Point at the replacements for GtkTreeView
In the symbol annotations and in the docblocks.
Emmanuele Bassi [Thu, 20 Oct 2022 10:11:41 +0000 (11:11 +0100)]
Point to replacement for GtkComboBoxText
GtkDropDown and GtkStringList replace GtkComboBoxText with a simpler
API.
Jan Tojnar [Thu, 20 Oct 2022 10:59:17 +0000 (12:59 +0200)]
composetable: Support non-FHS paths for Compose tables
On platforms like NixOS, the libX11 installation prefix may differ from /usr/share,
breaking the hardcoded placeholders. Let’s re-use the X11 path definition from imcontextsimple.
Emmanuele Bassi [Thu, 20 Oct 2022 10:10:57 +0000 (11:10 +0100)]
Point to GtkDropDown as the GtkComboBox replacement
Emmanuele Bassi [Wed, 12 Oct 2022 23:06:12 +0000 (00:06 +0100)]
docs: Add deprecation message for GtkListStore
Point to GListStore and list models instead.
Emmanuele Bassi [Wed, 12 Oct 2022 22:48:38 +0000 (23:48 +0100)]
docs: Add deprecation messages to GtkTreeStore
Point to GtkTreeListModel, and while we're at it, let's fix some of the
gtk-doc-isms that are still there.
Matthias Clasen [Wed, 19 Oct 2022 21:37:08 +0000 (21:37 +0000)]
Merge branch 'label-selection-fix' into 'main'
label: Tweak selection behavior
Closes #2024
See merge request GNOME/gtk!5148
Matthias Clasen [Wed, 19 Oct 2022 20:21:36 +0000 (16:21 -0400)]
label: Tweak selection behavior
Arrange for double-click-followed-by-drag to do
select by words, not select-and-dnd. This matches
the behavior in GtkTextView better and feels
intuitive.
Fixes: #2024
Matthias Clasen [Wed, 19 Oct 2022 19:35:12 +0000 (15:35 -0400)]
wayland: Fix keycode->keyval mapping
We were looping over the levels, but not using
the current level value to obtain the keymap
entries. Oops.
Fixes: #5277
Matthias Clasen [Wed, 19 Oct 2022 19:41:15 +0000 (19:41 +0000)]
Merge branch 'filechooser-amberol' into 'main'
filechooser: Improve "Open in File Manager"
Closes #5260
See merge request GNOME/gtk!5140
Matthias Clasen [Wed, 19 Oct 2022 19:11:57 +0000 (19:11 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
docs: Remove mention of ~/.gtk-4.0
Closes #3266
See merge request GNOME/gtk!5146
Matthias Clasen [Wed, 19 Oct 2022 05:51:19 +0000 (01:51 -0400)]
filechooser: Improve "Open in File Manager"
Just relying on GAppInfo leads to suboptimal
results. Instead, call either the OpenURI portal
or the org.freedesktop.FileManager1 interface
directly, and only fall back to GAppInfo.
The wrapper code for the OpenURI portal is taken
from gio, with small adjustments.
Fixes: #5260
Matthias Clasen [Wed, 19 Oct 2022 18:32:23 +0000 (14:32 -0400)]
docs: Remove mention of ~/.gtk-4.0
We are not looking there anymore, for a long time.
Fixes: #3266
Matthias Clasen [Wed, 19 Oct 2022 18:34:25 +0000 (18:34 +0000)]
Merge branch 'builder-tool-scope' into 'main'
docs: Update gtk4-builder-tool docs
See merge request GNOME/gtk!5145
Matthias Clasen [Wed, 19 Oct 2022 16:31:53 +0000 (12:31 -0400)]
docs: Document new buildertool options
Matthias Clasen [Wed, 19 Oct 2022 16:29:39 +0000 (12:29 -0400)]
buildertool: Support enumerating callbacks
The new scope approach makes this easy, and
it can be useful to know what functions are
needed.
Matthias Clasen [Wed, 19 Oct 2022 15:41:35 +0000 (11:41 -0400)]
buildertool: Improve validate implementation
Reimplement deprecation checking via a scope.
This lets us ignore missing callbacks, and helps
for validating templates.
Matthias Clasen [Wed, 19 Oct 2022 16:13:29 +0000 (12:13 -0400)]
buildertool: Add a builder scope implementation
This will be used in future commits.
Matthias Clasen [Wed, 19 Oct 2022 14:30:36 +0000 (10:30 -0400)]
buildertool: Use --deprecations for templates
Use this option for templates too.
We still can't parse most templates, since they are
missing their callbacks.
Matthias Clasen [Wed, 19 Oct 2022 17:13:23 +0000 (17:13 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
docs: Update gtk4-builder-tool docs
See merge request GNOME/gtk!5144
Matthias Clasen [Wed, 19 Oct 2022 13:57:19 +0000 (13:57 +0000)]
Merge branch 'wip/clipboard-serials' into 'main'
gdk/wayland: Use serial of the latest implicit grab available
Closes #5250
See merge request GNOME/gtk!5143
Matthias Clasen [Wed, 19 Oct 2022 12:50:34 +0000 (08:50 -0400)]
docs: Update gtk4-builder-tool docs
Mention the new --deprecations option of the
validate command.
Carlos Garnacho [Wed, 19 Oct 2022 10:46:09 +0000 (12:46 +0200)]
gdk/wayland: Use serial of the latest implicit grab available
When getting the serial for primary/clipboard selections we used a
function that largely relied on a GdkEvent being passed. We have
another available function that looks up the most recent serial
given the ongoing touch/tablet input as well.
This is the second best, compared to actually knowing the
input/device from the event that was received by the UI an triggered
the clipboard operation, and is already in use in other places
(e.g. window dragging). It is valid for these situations too.
Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5250
Matthias Clasen [Wed, 19 Oct 2022 11:20:37 +0000 (11:20 +0000)]
Merge branch 'builder-deprecations' into 'main'
buildertool: Fix template handling
Closes #5256
See merge request GNOME/gtk!5141
Matthias Clasen [Wed, 19 Oct 2022 06:46:52 +0000 (02:46 -0400)]
buildertool: Warn about deprecations
Add a new option --deprecations to the validate
command that will warn about use of deprecated types.
The list of current deprecations is unfortunately
hardcoded in the source, so this list will have to
be kept up-to-date.
Fixes: #5256
Matthias Clasen [Wed, 19 Oct 2022 06:40:10 +0000 (02:40 -0400)]
buildertool: Fix template handling
We were not properly parsing the error message
here, leading to badness.
Matthias Clasen [Wed, 19 Oct 2022 05:59:13 +0000 (05:59 +0000)]
Merge branch 'text-overwrite-undo' into 'main'
testsuite: Fix tiff pixbuf tests
Closes #4411
See merge request GNOME/gtk!5138
Matthias Clasen [Wed, 19 Oct 2022 03:54:36 +0000 (03:54 +0000)]
Merge branch 'clarify-gapplication-docs' into 'main'
docs: Clarify a point in GtkApplication docs
See merge request GNOME/gtk!5139
Matthias Clasen [Wed, 19 Oct 2022 03:53:08 +0000 (03:53 +0000)]
Merge branch 'fix-pixbuf-tiff-tests' into 'main'
testsuite: Fix tiff pixbuf tests
Closes #4615
See merge request GNOME/gtk!5137
Matthias Clasen [Wed, 19 Oct 2022 03:51:21 +0000 (03:51 +0000)]
Merge branch 'modelbutton-tooltip' into 'main'
widgetfactory: Add text to iconic model buttons
Closes #5220
See merge request GNOME/gtk!5136
Matthias Clasen [Wed, 19 Oct 2022 03:37:03 +0000 (23:37 -0400)]
text: Make overwrite undo-friendly
In overwrite mode, every typed character gets
handled as a delete+insert, but we should not
record these as two individually undoable
steps.
This matches how we handle overwrite mode in
GtkTextView.
Fixes: #4411
Matthias Clasen [Wed, 19 Oct 2022 03:47:48 +0000 (23:47 -0400)]
docs: Clarify a point in GtkApplication docs
Clarify that loading of automatic resources uses
the resource base path that was set at construction
time.
Fixes: #4300
Matthias Clasen [Wed, 19 Oct 2022 03:22:15 +0000 (23:22 -0400)]
testsuite: Skip known-broken tests
The tiff pixbuf tests fail because of known
issues with the pixbuf tiff loader. Skip them.
Fixes: #4615
Matthias Clasen [Wed, 19 Oct 2022 03:21:28 +0000 (23:21 -0400)]
testsuite: Fix tiff pixbuf tests
This test wasn't actually testing what it claims,
since that functionality is broken in gdk-pixbuf.
Test it anyway.
Matthias Clasen [Wed, 19 Oct 2022 02:35:28 +0000 (22:35 -0400)]
modelbutton: Set up tooltips
Use the text of iconic model buttons as tooltip.
Fixes: #5220
Matthias Clasen [Wed, 19 Oct 2022 02:35:02 +0000 (22:35 -0400)]
widgetfactory: Add text to iconic model buttons
We want to use this for tooltips in the future.
Matthias Clasen [Wed, 19 Oct 2022 01:53:56 +0000 (01:53 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
fontchooser: Drop a few errant translations
Closes #5146
See merge request GNOME/gtk!5135
Matthias Clasen [Tue, 18 Oct 2022 20:40:37 +0000 (16:40 -0400)]
fontchooser: Drop a few errant translations
No point in translating these properties, they
are not strings.
Fixes: #5146
Matthias Clasen [Tue, 18 Oct 2022 19:45:19 +0000 (19:45 +0000)]
Merge branch 'fix-editable-label-spurious-focus-out' into 'main'
window: Keep a reference to move_focus_widget
Closes #4864
See merge request GNOME/gtk!5134
Matthias Clasen [Tue, 18 Oct 2022 18:23:22 +0000 (14:23 -0400)]
editablelabel: Defer changes on focus-out
We can get spurious focus-out/-in pairs when
the editable label is in a popover that gets
a Wayland keyboard enter event as a result of
clicking the editable label.
A timeout isn't a great solution, but nothing
better is available right now.
Fixes: #4864
Matthias Clasen [Tue, 18 Oct 2022 18:21:51 +0000 (14:21 -0400)]
window: Keep a reference to move_focus_widget
If we don't take a reference, it can happen that
the pointer is no longer valid by the time we
dereference it in after_paint.
Matthias Clasen [Tue, 18 Oct 2022 11:02:08 +0000 (11:02 +0000)]
Merge branch 'fix-focus-changes' into 'main'
window: Fix focus updates
Closes #4903
See merge request GNOME/gtk!5127
Matthias Clasen [Tue, 18 Oct 2022 10:53:21 +0000 (10:53 +0000)]
Merge branch 'fix-windows-build-testmountoperation' into 'main'
tests/testmountoperation.c: Fix build on Windows
See merge request GNOME/gtk!5126
Matthias Clasen [Mon, 17 Oct 2022 19:10:51 +0000 (15:10 -0400)]
window: Don't focus invisible widgets
Only clear a queued move_focus if the widget
we are focusing is actually visible.
This was happening in some cases when popovers
are dismissed by clicking outside, and it was
causing us to miss proper focus updates that
were already queued.
Benjamin Otte [Tue, 18 Oct 2022 09:53:53 +0000 (09:53 +0000)]
Merge branch 'bilelmoussaoui/gi-deprecated' into 'main'
g-i: Fix deprecated version of GtkTreeView
See merge request GNOME/gtk!5131
Bilal Elmoussaoui [Tue, 18 Oct 2022 09:25:56 +0000 (11:25 +0200)]
g-i: Fix deprecated version of GtkTreeView
Luca Bacci [Mon, 17 Oct 2022 19:20:08 +0000 (19:20 +0000)]
Merge branch 'forward-port-mr-991-to-gtk4-2' into 'main'
Use native Windows API for converting keystrokes to characters
Closes #2944
See merge request GNOME/gtk!4986
Matthias Clasen [Mon, 17 Oct 2022 16:29:44 +0000 (12:29 -0400)]
window: Fix focus updates
This partially undoes changes from
3dbf5038fab8eb0.
That commit did two things:
1) Move the focus update to after-paint time
2) Change from grabbing focus to the visible parent
to calling move_focus (TAB)
The second part did have the unintended consequence
of moving focus laterally.
Fixes: #4903
Benjamin Otte [Mon, 17 Oct 2022 18:34:40 +0000 (18:34 +0000)]
Merge branch 'wip/otte/for-main' into 'main'
singleselection: Be more careful about notifies
See merge request GNOME/gtk!5129
Benjamin Otte [Mon, 17 Oct 2022 18:07:51 +0000 (20:07 +0200)]
dropdown: Handle ::selected and ::selected-item separately
GtkSingleSelection will only emit either of those signals if they
change. But it is possible that only one of those properties changes,
and in those cases we want to only notify for that property changing in
the dropdown, too.
Benjamin Otte [Mon, 17 Oct 2022 17:54:40 +0000 (19:54 +0200)]
singleselection: Be more careful about notifies
We don't want to notify::selected or notify::selected-item if they
didn't change.
This will bring performance benefits on frequently changing lists.
In particular, if lists get filtered or reordered, but the selected item
stays in the list, not doing a notify::selected-item will avoid updates
in connected handlers like GtkDropdown (and its handlers), thereby
avoiding lots of unnecessary updates.
Philip Zander [Wed, 24 Aug 2022 11:21:10 +0000 (13:21 +0200)]
Use native Windows API for converting keystrokes to characters
Chun-wei Fan [Wed, 12 Oct 2022 09:08:43 +0000 (17:08 +0800)]
tests/testmountoperation.c: Fix build on Windows
Sadly, we can't just use an interger for a GPid on Windows, so just cast
it. Sounds silly for non-Windows, but that's life...
Matthias Clasen [Mon, 17 Oct 2022 03:45:28 +0000 (23:45 -0400)]
macos: Fix clipboard data size handling
We were using the allocated memory size, not
the amount of data that has been written.
Fixes: #5261
Matthias Clasen [Mon, 17 Oct 2022 03:26:21 +0000 (03:26 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
Rename gtk_widget_get_style_color
See merge request GNOME/gtk!5125
Matthias Clasen [Mon, 17 Oct 2022 00:59:38 +0000 (20:59 -0400)]
Rename gtk_widget_get_style_color
This name wasn't everybody's favorite, so go with
the generic name gtk_widget_get_color() instead.
Piotr Drąg [Sun, 16 Oct 2022 12:34:34 +0000 (14:34 +0200)]
Update POTFILES.in
Benjamin Otte [Fri, 14 Oct 2022 22:39:49 +0000 (22:39 +0000)]
Merge branch 'antoniof-main-patch-03677' into 'main'
columnview: Don't be focusable
See merge request GNOME/gtk!5022
Matthias Clasen [Fri, 14 Oct 2022 10:49:15 +0000 (10:49 +0000)]
Merge branch 'gtk_widget_get_style_color-docs-fix' into 'main'
Fix documentation for `gtk_widget_get_style_color()`
See merge request GNOME/gtk!5119
Sebastian Dröge [Fri, 14 Oct 2022 08:07:55 +0000 (11:07 +0300)]
Fix documentation for `gtk_widget_get_style_color()`
It was pointing at `gtk_widget_get_css_style()` instead.
Matthias Clasen [Thu, 13 Oct 2022 20:38:41 +0000 (16:38 -0400)]
Fix blank popovers
This was a typo in
2b00b64e8cbda9d1, making
us render the background on the wrong snapshot.
Matthias Clasen [Thu, 13 Oct 2022 03:27:36 +0000 (23:27 -0400)]
NEWS: Updates
Matthias Clasen [Thu, 13 Oct 2022 03:09:47 +0000 (03:09 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
filechooser: Update the settings docs
See merge request GNOME/gtk!5118
Matthias Clasen [Thu, 13 Oct 2022 02:45:47 +0000 (22:45 -0400)]
filechooser: Update the settings docs
Document the window-position setting as unused.
Matthias Clasen [Thu, 13 Oct 2022 02:43:48 +0000 (02:43 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
docs: Add a cross-reference
See merge request GNOME/gtk!5117
Matthias Clasen [Thu, 13 Oct 2022 02:25:35 +0000 (22:25 -0400)]
docs: Add a cross-reference
Note that GtkTreeView is deprecated and link to the
list view introduction from 'Tree and List Widget Overview'.
Matthias Clasen [Thu, 13 Oct 2022 02:25:19 +0000 (02:25 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
filechooserentry: Add a set_text api
See merge request GNOME/gtk!5116
Matthias Clasen [Wed, 12 Oct 2022 04:06:21 +0000 (00:06 -0400)]
filechooser: Stop using entrycompletion api
The file chooser entry now has an api for this.
Matthias Clasen [Wed, 12 Oct 2022 04:05:44 +0000 (00:05 -0400)]
filechooserentry: Add a set_text api
This function prevents the completion popup
from coming up when setting the entry text.
Matthias Clasen [Wed, 12 Oct 2022 21:02:56 +0000 (21:02 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
Start a migration guide for GTK 5
See merge request GNOME/gtk!5114
Matthias Clasen [Wed, 12 Oct 2022 20:38:18 +0000 (16:38 -0400)]
Start a migration guide for GTK 5
No need to panic, GTK 5 is still years away!
But it is good to write this material down while
it is fresh in mind.
Matthias Clasen [Wed, 12 Oct 2022 20:38:19 +0000 (20:38 +0000)]
Merge branch 'deprecate-render' into 'main'
wip: Deprecate gtk_render apis
See merge request GNOME/gtk!5100
Matthias Clasen [Wed, 12 Oct 2022 18:52:57 +0000 (14:52 -0400)]
inspector: Use gtk_widget_get_style_color
The graph renderer in the statistics page needs
the CSS foreground color to draw the graph. Use
the just introduced api for it.