Commit Graph

38787 Commits

Author SHA1 Message Date
Matthias Clasen
3b70cd3226 checkbutton: Match GtkButton behavior
When leaving the widget before releasing the button,
we should not activate the checkbutton, to match the
way GtkButton behaves.

Fixes: #4061
2021-06-19 13:30:31 -07:00
Christian Hergert
a6101f0181 textview: give application developers access to RTL and LTR context
This allows developers to modify the pango context that is used when
rendering text within the text view.

Such access can be useful to alter how rounding occurs with API such as
pango_context_set_round_glyph_positions() and is needed by GtkSourceView
for proper placement of glyphs within the overview map.
2021-06-19 12:28:18 -07:00
Matthias Clasen
92c6485adf docs: Tweak wording
Instead of drag'n'drop, say drag-and-drop. That is easier
to read, and less unclear on the markdown syntax implications.
2021-06-19 08:03:47 -07:00
Matthias Clasen
d92f8a1b8e treeviewcolumn: Clip header buttons
We don't want to overdraw when dragging a narrow column
around, and we also need the clipping to avoid picking
the wrong column, when a later column button overlaps
an earlier one.

Fixes: #4045
2021-06-17 17:14:14 -07:00
Christian Hergert
352898ae9e inspector: fix compilation with broadway 2021-06-17 11:54:00 -07:00
Matthias Clasen
1bda665662 Merge branch 'matthiasc/for-master' into 'master'
action muxer fixes

See merge request GNOME/gtk!3678
2021-06-17 17:53:16 +00:00
Matthias Clasen
7344a03aa3 shortcutcontroller: Don't reinject menu accels
The normal way to associate accels with actions is
to attach a shortcut controller to the widget. The shorcut
controller will inject the accel into the action muxer
tree, so that it can get displayed in widgets that activate
the action (say, in menus.

This approach does not works for generated menus, since the
widgets are not in the hands of the app developer, so attaching
shortcut controllers to them is impractical.

Instead, GtkModelButton has an accel property that gets
bound to the accel coming from the action muxer tree (most
likely put there via gtk_application_set_accel_for_action),
and creates a shortcut controller itself.

The change in this commit is to prevent the shortcut controller
from injecting the accel into the action muxer tree in this case.
Otherwise, the accels get 'stuck' and we won't update them if the
global accels are later changed.

This is a hack, and needs a better solution.
2021-06-17 08:50:26 -04:00
Matthias Clasen
64af90111e window: Propagate accel changes
When the global accels change, tell the
shortcut controller to re-inject them into
the action muxer hierarchy.
2021-06-17 08:50:26 -04:00
Matthias Clasen
3254a3feab shortcutcontroller: Add a way to update accels
This will be used to make accel changes propagate.
2021-06-17 08:50:26 -04:00
Matthias Clasen
d5054f9b99 action muxer: Propagate registrations further up
We were pretty aggressive about not registering
observers further than necessary, stopping at the
first muxer that provides an action.

But even though action changes further up in the tree
won't be relevant in that case, we need to listen to
accel changes, since they may come from higher up
in the tree (e.g. when using
gtk_application_set_accels_for_action with an action
that is defined on a widget.

So, register all the way to the top, and stop propagating
action changes when we hit a muxer that provides the action.
2021-06-17 08:50:26 -04:00
Matthias Clasen
db93090ea8 menutrackeritem: Be more careful with accel changes
In some cases (such as when getting a new parent), the
action muxer doesn't know exactly which detailed actions
have changed accels, so we call primary_accel_changed with
just an action name.

Make the menu tracker item handle that case by matching
either against the detailed name or the the action name.
2021-06-17 08:50:26 -04:00
Matthias Clasen
15c65595b8 action muxer: Propagate accel changes
When we set a new parent on an action muxer,
accels may change, so call primary_accel_changed
for involved actions.
2021-06-17 08:50:26 -04:00
Benjamin Otte
e59e9ad6a9 Merge branch 'wip/otte/for-master' into 'master'
spinner: Behave like any other icon

See merge request GNOME/gtk!3677
2021-06-17 11:47:28 +00:00
Benjamin Otte
e6c4dbfc6d spinner: Behave like any other icon
Take the size from -gtk-icon-size.

Note that min-width/height still works, as those properties are handled
by the generic widget sizing machinery in GTK4.
2021-06-17 12:54:56 +02:00
Matthias Clasen
424dd8a463 actionobserver: Clarify primary_accel_changed docs
Either action_name or action_and_target may be NULL
here, and observer implementations should be careful
when checking those values.
2021-06-16 10:34:37 -04:00
Matthias Clasen
10564514e8 Merge branch 'media-stream-name-collision' into 'master'
mediastream: Some more api renaming

Closes #4023

See merge request GNOME/gtk!3673
2021-06-16 10:07:29 +00:00
Matthias Clasen
56c486abbf Merge branch 'drop-target-name-collision' into 'master'
droptarget: Rename :drop to :current-drop

Closes #4028

See merge request GNOME/gtk!3669
2021-06-16 00:12:53 +00:00
Matthias Clasen
96fc5dc3a7 mediastream: Some more api renaming
Also rename gtk_media_stream_ended to
gtk_media_stream_set_ended, to avoid naming
collision with GtkMediaStream:ended.

The existing entry points still exist, deprecated
and marked as non-introspectable.

Update all internal uses.

Fixes: #4023
2021-06-15 18:33:23 -04:00
Matthias Clasen
b09087d634 droptarget: Rename :drop to :current-drop
Rename the GtkDropTraget:drop property to :current-drop,
to avoid naming collision with the signal of the same
name.

We leave the old property and getter in place, deprecated
and marked as non-introspectable.

Fixes: #4028
2021-06-15 18:21:28 -04:00
Matthias Clasen
5e99513507 Merge branch 'cherry-pick-4ba89f25' into 'master'
cellarea: Don't shrink area too much

See merge request GNOME/gtk!3672
2021-06-15 20:29:28 +00:00
Benjamin Otte
16ff055b42 cellarea: Don't shrink area too much
Do not compute rectangles with negative width/height. This avoids
assertion failures further down when those rectangles were actually
checked.

https://bugzilla.redhat.com/show_bug.cgi?id=1962215


(cherry picked from commit 4ba89f25b8)
2021-06-15 18:00:25 +00:00
Matthias Clasen
c4a2234a28 label: Fix mnemonic handling
We were not handling the case right in which we
want to use underlines, but not use markup. Since
we are now using pango_parse_markup for this case,
we need to escape the xml markup.

Fixes: #4041
2021-06-15 13:06:10 -04:00
Matthias Clasen
a3882763d8 Revert "progressbar: Avoid redundant storage"
This reverts commit 95747b1a40.

This was wrong - it turns out that while GtkProgressBar
allows you to change its orientation, its box layout is
always vertical.

Fixes: #4037
2021-06-15 07:37:57 -04:00
Matthias Clasen
a6b4e53dca Merge branch 'macos-input-method' into 'master'
fix: make input method work again in gtk4

Closes #3968

See merge request GNOME/gtk!3668
2021-06-14 19:20:06 +00:00
Matthias Clasen
86b5dba43b mediastream: Rename an api to avoid name collisions
Some bindings can't handle the coexistence of
GtkMediaStream:prepared and gtk_media_stream_prepared.
Help them out by renaming the function to
gtk_media_stream_set_prepared, and rename
gtk_media_stream_unprepared as well, to match.

The existing entry points still exist, deprecated.

Update all internal uses.

Fixes: #4023
2021-06-14 07:50:12 -04:00
Matthias Clasen
276f85c9e3 listitemwidget: Claim gesture when activating
Claim the gesture when we are activating a list item.

Otherwise we end up with double activations in
columnviews: first GtkColumnViewCell handles
the event, and then GtkListItemWidget handles
it again.

Fixes: #4015
2021-06-13 08:03:39 -04:00
Matthias Clasen
68eb422333 listitemwidget: Match activation conditions
Make the conditions used for activation in the single-
and double-click case properly match, so that it is
obvious that we won't trigger both of them.
2021-06-13 08:02:06 -04:00
Matthias Clasen
c0f54f899d Merge branch 'filename-annotations' into 'master'
Add type annotations for filename arguments

Closes #633

See merge request GNOME/gtk!3665
2021-06-13 11:38:50 +00:00
Sebastian Cherek
106ac7c782 Update gtkpopcountprivate.h: undefined macro outside msvc 2021-06-12 17:35:13 +00:00
scherek
bc7b6a0e53 Dropped defined() for readability 2021-06-12 19:10:11 +02:00
scherek
e5b89569fd Replaced && with || for POPCNT checks to fix the logic. 2021-06-12 17:32:19 +02:00
Matthias Clasen
938bfff3dd Add type annotations for filename arguments
Add missing "(type filename)" annotations for string
arguments that are filenames.

Fixes: #633
2021-06-12 11:12:06 -04:00
scherek
6835fcf3cf Fix illegal instruction crash on x64 CPUs without POPCNT instruction when compiled with MSVC 2021-06-12 16:18:26 +02:00
Matthias Clasen
a526daf310 selectionfiltermodel: Fix an oversight
When the position is out of range, get_item needs
to return NULL.

Fixes: #4024
2021-06-11 15:37:16 -04:00
Christian Hergert
a4c5d1d94d window: clear move_focus when focus is already set
This can get set in other places, so we need to ensure it is cleared so
that an after-paint handler does not move the focus to a new widget.
2021-06-10 14:01:41 -07:00
Matthias Clasen
3418504b4b checkbutton: Fix actionable state tracking
If we have a GAction as model, we just have to
call gtk_action_helper_activate() and let
the action helper handle the state updates,

Fixes: #4022
2021-06-10 08:38:12 -04:00
Matthias Clasen
0a78a592ff togglebutton: Fix actionable state tracking
If we have a GAction as model, we just have to let
the action helper handle the state updates. GtkButton
already calls gtk_action_helper_activate() for us.
2021-06-10 08:36:08 -04:00
Matthias Clasen
208c527fb3 button: Add a private getter for the action helper
GtkToggleButton needs to know if it needs to actively
maintain its state, or defer to the action helper.
2021-06-10 08:36:01 -04:00
Matthias Clasen
5ef6944a41 Merge branch 'row-activated-annotation' into 'master'
treeview: Add a few missing annotations

Closes #3828

See merge request GNOME/gtk!3647
2021-06-08 17:17:45 +00:00
Zhi
970bb804de fix: replace deprecated metods.
Use NSInputContext to replace NSInputManager, which has been deprecated
since 10.6.

Sync from 0e30a96 in gtk3.
2021-06-08 22:47:53 +08:00
Carlos Garnacho
915388cfdb spinbutton: Mind the step in the swipe gesture
The swipe gesture forces values in the spin button that are
"impossible" according to the adjustment. This can break things
in creative ways.

Ensure the steps provided are always multiples of the adjustment
step value, and keep the remainder for further interaction.
2021-06-08 15:18:14 +02:00
Carlos Garnacho
1bf7f5eacb spinbutton: Connect swipe gesture to the text entry
In the GTK3 days, the spin button was an entry, with buttons on
top, and the swipe gesture affected the input on the entry bits.
Now the spin button is a container, so this gesture in the capture
phase applies to all contained children (incl. buttons).

Attach this gesture to the entry itself, so the buttons are left
outside this business. The gesture is still in the capture phase
in order to prevent text selection/edition/etc to happen.

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4008
2021-06-08 15:17:56 +02:00
Matthias Clasen
6a86acb9ce Apply 1 suggestion(s) to 1 file(s) 2021-06-08 12:59:57 +00:00
Matthias Clasen
e35e7bcd4a Apply 1 suggestion(s) to 1 file(s) 2021-06-08 12:59:38 +00:00
Mohammed Sadiq
517b5173f9 video: Reveal controls on tap
So that the controls shall be shown on touch
2021-06-08 18:06:51 +05:30
Matthias Clasen
c2f2a45227 treeview: Documentation tweaks 2021-06-08 07:59:47 -04:00
Matthias Clasen
621e0a13e9 Install gtkpasswordentrybuffer.h 2021-06-08 07:49:42 -04:00
Matthias Clasen
d8bde48b87 Make GtkPasswordEntryBuffer public 2021-06-08 11:25:11 +00:00
Matthias Clasen
825ffb9422 Merge branch 'ebassi/issue-3892' into 'master'
a11y: Update the level property for tree expanders

Closes #3892

See merge request GNOME/gtk!3470
2021-06-07 18:10:12 +00:00
Matthias Clasen
b1beb3650b treeview: Add a few missing annotations
gtk_tree_view_row_activated and the ::row-activated signal
can (and do) receive NULL for the column occasionally.

This is an introspection api change.

Fixes: #3828
2021-06-06 08:24:52 -04:00
Matthias Clasen
94ad177176 popovermenu: doc tweaks 2021-06-05 17:19:39 -04:00
Matthias Clasen
4616104742 Merge branch 'submenu-action-fixes' into 'master'
Submenu action fixes

Closes #3721

See merge request GNOME/gtk!3272
2021-06-05 13:36:10 +00:00
Matthias Clasen
debcc62775 menusectionbox: Fix submenu-action for nested menus
We were not updating the state of submenu-actions
for nested submenus.

Fixes: #3721
2021-06-05 08:49:18 -04:00
Matthias Clasen
b11f31afea popovermenubar: Make submenu-actions work
We were not updating submenu-action state
for items in menubars.
2021-06-05 08:49:17 -04:00
Matthias Clasen
db2e5648c9 menutrackeritem: Make submenu-actions work again
This broke when GtkActionMuxer stopped being a
GActionGroup.
2021-06-05 08:49:17 -04:00
Chun-wei Fan
08ee36e7c4 gtkpopcountprivate.h: Fix build on ARM/aarch64 Visual Studio
__popcnt() is not supported for ARM nor ARM64 Visual Studio builds, so we must
use the fallback implementation as intrinsics are not supported for this
purpose on ARM/ARM64 Visual Studio builds.
2021-06-05 15:41:14 +08:00
Matthias Clasen
9ac22c1088 GtkFileFilter: Add suffix matches
This is less flexible than a glob pattern, but it is
explicitly case-insensitive, to match the behavior
on Windows.

Fixes: #3705
2021-06-04 21:10:01 -04:00
Matthias Clasen
47400e4bd8 Add a helper to make case-insensitive globs
This will be used in GtkFileFilter in the future.

Tests included.
2021-06-04 21:10:01 -04:00
Matthias Clasen
8981ba4bd2 imcontext: Ignore more keysyms
It finally dawned on my that #3673 is just another
case of unexpected keysyms getting sent our way via
fringe XKB features.

Ignore them all!
2021-06-04 19:01:57 -04:00
Matthias Clasen
a4598567b9 icontheme: Add detail to the 'not found' message
Name the icon theme we're using.

Fixes: #2271
2021-06-04 09:49:05 -04:00
Matthias Clasen
8f95661167 Clean up some comments
These XXX comments aren't useful enough to keep.
2021-06-04 09:49:05 -04:00
Matthias Clasen
036dd60a4e Merge branch 'matthiasc/for-master' into 'master'
fnmatch: Support case-folding

See merge request GNOME/gtk!3628
2021-06-04 04:43:20 +00:00
DarkTrick
4d894e08f7 Documentation update for combo_box_new_with_entry 2021-06-04 04:02:48 +00:00
Matthias Clasen
31407d0a4c Move fnmatch testcases to the testsuite
We have a well-working way to test internal
apis now, lets use it for these tests.
2021-06-03 23:58:50 -04:00
Matthias Clasen
bb53cf53e7 fnmatch: Support case-folding
This will be used in GtkFileFilter in the future.

Update all callers.
2021-06-03 23:58:21 -04:00
Matthias Clasen
d3e6e303fc Merge branch 'GtkCellLayoutWordingImprovement' into 'master'
Added information, that "attributes" refer to CellRenderer "properties".

See merge request GNOME/gtk!3602
2021-06-04 02:21:33 +00:00
DarkTrick
a0c23b1c3d Added information, that "attributes" refer to CellRenderer "properties". 2021-06-04 02:21:31 +00:00
Matthias Clasen
6a509608f9 applicationwindow: Allocate tooltips
GtkApplicationWindows size_allocate does not chain
up if the menubar is visible; don't forget to allocate
the tooltip window in that case.

Fixes: #3997
2021-06-03 21:43:13 -04:00
Matthias Clasen
3ab97fac1f Cosmetics: Eradicate gdouble
Remove 3 errant uses of gdouble.
2021-06-03 17:41:28 -04:00
Matthias Clasen
e8852c9a25 Merge branch 'primary-menu-button' into 'master'
menubutton: Enable F10 for primary menus

See merge request GNOME/gtk!3580
2021-06-03 19:37:23 +00:00
Emmanuele Bassi
a88b4f517e docs: Fix link to the interactive debugging section
It's in the "running" document.
2021-06-03 09:31:13 +01:00
Matthias Clasen
a1789ee2b8 Merge branch 'wip/chergert/fix-use-after-free-switcher' into 'master'
stackswitcher: clear timer when widget id disposed

See merge request GNOME/gtk!3621
2021-06-02 20:21:57 +00:00
Matthias Clasen
ffb7df2cc4 Merge branch 'macos-menubar' into 'master'
macos: fix weird menubar rendering.

Closes #3967

See merge request GNOME/gtk!3607
2021-06-02 20:13:16 +00:00
Christian Hergert
c2ca246aee stackswitcher: clear timer when widget id disposed
If the widget is disposed while the cursor has a drag timeout queued, it
can activate after finalization.
2021-06-02 10:20:32 -07:00
Matthias Clasen
7307c6fdfb Merge branch 'entry-docs-typo' into 'master'
entry: Fix a typo in the docs

See merge request GNOME/gtk!3619
2021-06-02 11:15:10 +00:00
Matthias Clasen
039fc2e567 entry: Fix a typo in the docs 2021-06-02 06:47:27 -04:00
Matthias Clasen
1dcf9d5c95 Merge branch 'wip/exalm/treeview-click' into 'master'
treeview: Don't handle clicks on any child widgets

Closes #3996

See merge request GNOME/gtk!3618
2021-06-02 10:33:50 +00:00
Alexander Mikhaylenko
80497debbb treeview: Don't handle clicks on any child widgets
We already skip them on the edited cell widget, but it's also a problem for
header buttons. Overall, there's no real reason to let it propagate here.

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3996
2021-06-02 13:49:11 +05:00
Matthias Clasen
bffc6c5b9a spinbutton: Avoid redundant storage
GtkBoxLayout stores the orientation; no need for
GtkSpinButton to duplicate that.
2021-06-01 17:37:07 -04:00
Matthias Clasen
95747b1a40 progressbar: Avoid redundant storage
GtkBoxLayout stores the orientation; no need for
GtkProgressBar to duplicate that.
2021-06-01 17:37:01 -04:00
Christian Hergert
c848a51395 stackswitcher: implement GtkOrientable
In GTK 3, GtkStackSwitcher implemented GtkOrientable via the parent GtkBox
type. In GTK 4, that was changed to inherit from GtkWidget and lost this
interface implementation.

This adds that back, along with a note in the documentation that the
interface was added in GTK 4.4.

Fixes #3988
2021-06-01 10:57:27 -07:00
Caolán McNamara
9c79b8b877 invalid cast from 'GtkButton' to 'GtkBox'
on adding a page to a GtkNotebook

(soffice): Gtk-CRITICAL **: gtk_box_remove: assertion 'GTK_IS_BOX (box)' failed
2021-06-01 14:56:53 +01:00
Matthias Clasen
c137f4017f Merge branch 'screensaver-async-4' into 'master'
gtkapplication-dbus: Fetch inital screen saver state async

See merge request GNOME/gtk!3599
2021-06-01 11:14:38 +00:00
liferooter
44f07f7708 texthistory: fix has_actionable function 2021-06-01 11:04:55 +00:00
Matthias Clasen
d1a7a55d7e box: Avoid redundant storage
GtkBoxLayout stores the orientation; no need for
GtkBox to duplicate that.
2021-05-31 18:38:52 -04:00
Zhi
75868dfee4 macos: fix weird menubar rendering.
As app menu has been deprecated, the function of app menu should be
merged into the menubar, which behaves like the original API of NSApp.

This also brings back the default app menu, which looks like native
macOS apps.

For future refactoring, please note that the menubar must contain at
least one menu before being set to NSApp to avoid weird menubar
rendering.

Fixes #3967.
2021-05-30 21:59:57 +08:00
Matthias Clasen
9f93883dc9 text: Propagate xalign to the placeholder
This is what we were doing in GTK 3, and there's
no reason not to continue.

Fixes: #3979
2021-05-27 06:57:23 -04:00
Bilal Elmoussaoui
90a829f25a docs: fix gtk grid formatting 2021-05-27 09:58:42 +00:00
Bilal Elmoussaoui
8ebdd256a5 docs: fix broken links 2021-05-27 00:18:23 +00:00
Matthias Clasen
ffbfafb189 textbuffer: Add some docs for undo
Mention what is undoable and what isn't.
2021-05-26 14:36:16 -04:00
Matthias Clasen
994a38c7ad textbuffer: Improve the docs
Add getter/setter annotations.
2021-05-26 14:36:16 -04:00
Christian Hergert
6179886b14 textbuffer: ensure user actions are propagated to history
This was an oversight when porting the GtkTextHistory into GTK. We simply
need to bind the GtkTextBuffer action into the text history for grouping
to work correctly.

Fixes #3977
2021-05-26 10:11:33 -07:00
Guido Günther
3aa34c1211 gtkapplication-dbus: Fetch inital screen saver state async
Avoid a sync call that can make the application block for no good
reason.

Fixes 6bfe171058
2021-05-26 18:47:38 +02:00
Matthias Clasen
8f4b0cd30d picture: Make setters actually take NULL
gtk_picture_set_file was claiming to be nullable,
but choked on NULL.

Fixes: #3974
2021-05-26 07:30:57 -04:00
Bilal Elmoussaoui
23ea33b656 gtk: drop unwanted char on Switch::state-set docs link 2021-05-25 20:29:46 +00:00
Matthias Clasen
ee80a22db4 Merge branch 'wip/exalm/checks' into 'master'
checkbutton: Sync the indicator state with the widget

See merge request GNOME/gtk!3568
2021-05-25 20:29:06 +00:00
Matthias Clasen
d32c343657 Merge branch 'fix.vs2013.link' into 'master'
gtk/meson.build: Fix linking on Visual Studio 2013

See merge request GNOME/gtk!3575
2021-05-25 20:27:54 +00:00
Emmanuele Bassi
e13da35d4d Turn introspection scanner warnings into errors
We want to catch errors in our annotations or our API.
2021-05-25 19:16:37 +01:00
Emmanuele Bassi
f50450485c docs: Add missing documentation on Windows
The gtk_print_run_page_setup_dialog() function, and its asynchronous
variant, are declared in the common gtkprintoperation.h header, but
implemented in different source files depending on the platform.
2021-05-25 19:16:37 +01:00
Matthias Clasen
8c441756df imcontext: Ignore NoSymbol key events
These can happen with some XKB options.

Fixes: #3973
2021-05-25 13:20:12 -04:00