Olivier Fourdan [Fri, 20 Mar 2020 14:24:06 +0000 (15:24 +0100)]
x11: Implement inhibit_system_shortcuts API
On X11, there is no such equivalent to the inhibit shortcut protocol
found on Wayland.
To implement the inhibit_system_shortcuts API on X11, we emulate the
same behavior using grabs on the keyboard.
To avoid keeping active grabs on the keyboard that would affect other
X11 applications even when the surface isn't focused, the X11
implementation takes care of releasing the grabs as soon as the toplevel
loses focus.
Olivier Fourdan [Fri, 27 Mar 2020 15:54:25 +0000 (16:54 +0100)]
x11: Use gdk_x11_* rather than gdk_wayland_*
Rename the local functions for the x11 backend as gdk_x11_* rather than
gdk_wayland_*
Olivier Fourdan [Fri, 20 Mar 2020 14:22:30 +0000 (15:22 +0100)]
wayland: Implement inhibit_system_shortcuts API
On Wayland, this is a direct mapping with the inhibit shortcut protocol
that GDK already supports.
Simply wire the new API to the existing entries.
Olivier Fourdan [Fri, 27 Mar 2020 13:40:52 +0000 (14:40 +0100)]
wayland: Use a GdkSeat as key for our internal hash table
With the current implementation, we use a `wl_seat` as the key for our
internal has table where we store the Wayland shortcuts inhibitors.
There is however no technical reason for this, and we could use a
GdkSeat instead, which will ease the implementation of the GdkToplevel
shortcut inhibition API.
Olivier Fourdan [Mon, 30 Mar 2020 14:55:05 +0000 (16:55 +0200)]
gdk: add internal `gdk_surface_get_seat_from_event()`
This can come handy to get the seat from a surface/event.
Olivier Fourdan [Fri, 20 Mar 2020 14:17:41 +0000 (15:17 +0100)]
gdk: Add gdk_toplevel_inhibit_system_shortcuts API
With the removal of grabs from the public API, we need a replacement API
to let applications bypass system keyboard shortcuts.
A typical use case for this API is remote desktop or virtual machine
viewers which need to inhibit the default system keyboard shortcuts so
that the remote session or virtual host gets those instead of the local
environment.
Close: https://gitlab.gnome.org/GNOME/gtk/issues/982
Matthias Clasen [Mon, 30 Mar 2020 15:15:51 +0000 (15:15 +0000)]
Merge branch 'wip/jimmac/avoid-t-word' into 'master'
widget-factory: avoid the T word
See merge request GNOME/gtk!1586
Jakub Steiner [Thu, 26 Mar 2020 19:29:43 +0000 (20:29 +0100)]
widget-factory: avoid the T word
- style variant sound more appropriate
Matthias Clasen [Mon, 30 Mar 2020 11:37:57 +0000 (11:37 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
widget: Remove a leftover vfunc
See merge request GNOME/gtk!1584
Matthias Clasen [Mon, 30 Mar 2020 03:38:34 +0000 (23:38 -0400)]
window: Remove initial-focus leftovers
We removed the way to set initial_focus a year ago,
time to get rid of the leftovers.
Matthias Clasen [Mon, 30 Mar 2020 03:18:56 +0000 (23:18 -0400)]
widget: Remove a leftover vfunc
The popup-menu signal is gone, so we can remove the vfunc.
Yosef Or Boczko [Sun, 29 Mar 2020 15:34:36 +0000 (15:34 +0000)]
Update Hebrew translation
Yosef Or Boczko [Sun, 29 Mar 2020 15:33:40 +0000 (15:33 +0000)]
Update Hebrew translation
Timm Bäder [Sat, 28 Mar 2020 19:37:29 +0000 (20:37 +0100)]
widget: Return an array from list_controllers
Minimize the GList usage throughout the code base.
Matthias Clasen [Sun, 29 Mar 2020 13:18:35 +0000 (13:18 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
See merge request GNOME/gtk!1583
Matthias Clasen [Sat, 28 Mar 2020 21:16:42 +0000 (17:16 -0400)]
coloreditor: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 21:12:40 +0000 (17:12 -0400)]
colorchooserdialog: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 21:09:52 +0000 (17:09 -0400)]
colorchooserwidget: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 21:01:58 +0000 (17:01 -0400)]
notebook: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 20:52:41 +0000 (16:52 -0400)]
listbox: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 20:52:31 +0000 (16:52 -0400)]
levelbar: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 20:26:15 +0000 (16:26 -0400)]
spinbutton: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 20:14:43 +0000 (16:14 -0400)]
filechooserwidget: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 20:04:30 +0000 (16:04 -0400)]
printunixdialog: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 19:55:15 +0000 (15:55 -0400)]
printjob: Drop the Private struct
Matthias Clasen [Sun, 29 Mar 2020 13:01:13 +0000 (09:01 -0400)]
testsuite: Fix notify test no not fail on the 30th
We are setting the month property to 10 different values,
checking that the change succeeds. But the calendar defaults
to the current date, so on every 30th of the month, we
try to set a date of Febuary 30, which fails.
Lets fix this before the 31st, by setting the calendar
to a good date.
Piotr Drąg [Sun, 29 Mar 2020 12:08:56 +0000 (14:08 +0200)]
Update Polish translation
Matthias Clasen [Sat, 28 Mar 2020 21:17:29 +0000 (21:17 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
See merge request GNOME/gtk!1582
Matthias Clasen [Sat, 28 Mar 2020 19:22:13 +0000 (15:22 -0400)]
printing: Avoid a crash
When no printer has been selected (e.g. because we don't
find any printers), the 'print at' radio group should be
insensitive, except for the 'now' choice. Selecting another
option in this situation will lead to a crash.
Matthias Clasen [Sat, 28 Mar 2020 19:21:11 +0000 (15:21 -0400)]
printing: Fix initial page range radio group
Only set one radio button as active in the ui file.
Otherwise we end up with multiple options appearing
as selected initially.
Matthias Clasen [Sat, 28 Mar 2020 19:35:36 +0000 (19:35 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
See merge request GNOME/gtk!1580
Matthias Clasen [Sat, 28 Mar 2020 19:03:33 +0000 (15:03 -0400)]
gesture: Fix gtk_gesture_get_bounding_box
When we stopped translating event coordinates in-place,
this function inadvertently started returning surface-relative
bounding boxes instead of widget-relative ones, as expected.
Fix this by using the widget-relative coordinates that we
already store.
Matthias Clasen [Sat, 28 Mar 2020 18:56:26 +0000 (14:56 -0400)]
cellarea: Fix cell editing
We need to translate the event coordinates to
widget-relative coordinates. This broke when
we stopped translating event coordinates in-place.
Matthias Clasen [Sat, 28 Mar 2020 18:33:01 +0000 (14:33 -0400)]
button: Fix an event handling gotcha
We no longer translate event coordinates in-place,
so gdk_event_get_position() returns surface-relative
coordinates, not widget-relative ones. Just use the
coordinates we are given.
Matthias Clasen [Sat, 28 Mar 2020 18:29:08 +0000 (14:29 -0400)]
imcontextsimple: Don't use g_object_unref on events
Events are not objects anymore.
Matthias Clasen [Sat, 28 Mar 2020 18:28:36 +0000 (14:28 -0400)]
x11: Don't use g_object_unref on events
Events are not object anymore.
Matthias Clasen [Sat, 28 Mar 2020 16:09:01 +0000 (16:09 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
See merge request GNOME/gtk!1579
Piotr Drąg [Sat, 28 Mar 2020 15:04:52 +0000 (16:04 +0100)]
Update POTFILES.in and POTFILES.skip
Matthias Clasen [Sat, 28 Mar 2020 14:59:12 +0000 (10:59 -0400)]
appchooserdialog: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 14:49:54 +0000 (10:49 -0400)]
image: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 14:48:15 +0000 (10:48 -0400)]
infobar: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 14:36:09 +0000 (10:36 -0400)]
texthandle: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 14:28:22 +0000 (10:28 -0400)]
searchentry: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 14:23:01 +0000 (10:23 -0400)]
statusbar: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 14:16:18 +0000 (10:16 -0400)]
settings: Drop the Private struct
Also drop class padding - pointless for final types.
Matthias Clasen [Sat, 28 Mar 2020 14:15:50 +0000 (10:15 -0400)]
accellabel: Drop unused class fields
We are not using these anymore.
Matthias Clasen [Sat, 28 Mar 2020 14:06:26 +0000 (10:06 -0400)]
accellabel: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 13:59:12 +0000 (09:59 -0400)]
actionbar: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 04:42:44 +0000 (00:42 -0400)]
aboutdialog: Drop the Private struct
Matthias Clasen [Sat, 28 Mar 2020 04:35:13 +0000 (00:35 -0400)]
menubutton: Drop the Private struct
Timm Bäder [Sat, 28 Mar 2020 07:34:35 +0000 (08:34 +0100)]
applicationaccels: Fix shortcut memory leaks
g_list_model_get_item() is transfer-full.
Matthias Clasen [Sat, 28 Mar 2020 04:40:52 +0000 (04:40 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
Closes #2489
See merge request GNOME/gtk!1578
Matthias Clasen [Sat, 28 Mar 2020 04:07:05 +0000 (00:07 -0400)]
gtk-demo: Fix the stack demo
The GtkSpinner:active property was renamed to :spinning.
Matthias Clasen [Sat, 28 Mar 2020 04:06:14 +0000 (00:06 -0400)]
gtk-demo: Fix the sliding puzzle
Update for a change in gtk_shortcut_controller_add_shortcut
behavior.
Matthias Clasen [Sat, 28 Mar 2020 04:05:48 +0000 (00:05 -0400)]
gtk-demo: Fix the shortcuts demo
We don't have margins anymore.
Matthias Clasen [Sat, 28 Mar 2020 04:04:25 +0000 (00:04 -0400)]
gtk-demo: Fix the rotated text demo
Off-by-one on the heart!
Matthias Clasen [Sat, 28 Mar 2020 02:57:10 +0000 (22:57 -0400)]
gtk-demo: Fix the overlay demo
We must use two separate boxes for the label and
the entry, otherwise we can't keep their can-target
properties apart.
Matthias Clasen [Sat, 28 Mar 2020 02:31:18 +0000 (22:31 -0400)]
gtk-demo: Use mnemonics in menu buttons
Use GtkMenuButton:use-underline in the modelbutton demo.
Matthias Clasen [Sat, 28 Mar 2020 02:28:49 +0000 (22:28 -0400)]
menubutton: Add a use-underline property
This is necessary since apps no longer have direct
access to the label.
Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/2489
Matthias Clasen [Fri, 27 Mar 2020 20:38:06 +0000 (16:38 -0400)]
gtk-demo: Visual fixes to the model button demo
Matthias Clasen [Fri, 27 Mar 2020 21:10:19 +0000 (21:10 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
See merge request GNOME/gtk!1577
Matthias Clasen [Fri, 27 Mar 2020 20:24:20 +0000 (16:24 -0400)]
gtk-demo: Fix the search entry demo
Avoid critical warnings when setting up the context
menu actions.
Matthias Clasen [Fri, 27 Mar 2020 20:06:03 +0000 (16:06 -0400)]
widget-factory: Fix the radio button example
We only want one of the sensitive buttons to be active,
so don't tell them all to be active.
Matthias Clasen [Fri, 27 Mar 2020 16:37:31 +0000 (16:37 +0000)]
Merge branch 'rename-theme-resources' into 'master'
Rename GResources for standard GTK themes
See merge request GNOME/gtk!1576
Matthias Clasen [Fri, 27 Mar 2020 15:45:08 +0000 (15:45 +0000)]
Merge branch 'trigger-parser' into 'master'
Improve GtkShortcutTrigger parser
See merge request GNOME/gtk!1572
Emmanuele Bassi [Fri, 27 Mar 2020 15:20:59 +0000 (15:20 +0000)]
Rename GResources for standard GTK themes
After commit
2ab9be54fb34c61eedbbb89b78ce9db23ba81e8a we had to rename
the generated CSS files to be included into the GResource bundle; we
kept the URI stable to avoid too much churn, and allow backporting the
change to the 3.24 stable branch. This had the adverse effect of making
it harder to debug issues, as the on-disk file name does not match the
location in the GResource that will be used to print out warnings,
errors, and debugging messages.
Emmanuele Bassi [Fri, 27 Mar 2020 14:35:09 +0000 (14:35 +0000)]
Improve GtkShortcutTrigger parsing tests
Split off all possible cases into sub-tests, and add more thorough
checks on the invalid strings unit.
Emmanuele Bassi [Thu, 26 Mar 2020 16:58:55 +0000 (16:58 +0000)]
Add parsing for GtkAlternativeTrigger
Alternative triggers are separate by a pipe character.
Emmanuele Bassi [Thu, 26 Mar 2020 16:48:03 +0000 (16:48 +0000)]
tests: Add more cases for the trigger parser
Emmanuele Bassi [Thu, 26 Mar 2020 16:47:15 +0000 (16:47 +0000)]
Parse keyval name directly for mnemonic triggers
We don't need to parse the full accelerator format for mnemonic
triggers.
Emmanuele Bassi [Thu, 26 Mar 2020 17:11:25 +0000 (17:11 +0000)]
Return a full reference when parsing triggers
We're not returning a full reference for GtkNeverTrigger, but we are
returning full references for mnemonic and keyval triggers; this means
we're either going to leak mnemonic and keyval triggers if we consider
this function a "transfer none" one, or we are going to trigger an
assertion failure when finalizing a never trigger, if we consider this
function a "transfer full" one.
Let's be consistent, and always return a full reference to the caller.
Timm Bäder [Fri, 27 Mar 2020 07:39:16 +0000 (08:39 +0100)]
calendar: Only highlight one day as today
Fixes #2490
Timm Bäder [Thu, 26 Mar 2020 16:31:38 +0000 (17:31 +0100)]
shortcutscontroller: Make add_shortcut transfer-full
Like all the other shortcut api
Timm Bäder [Thu, 26 Mar 2020 16:31:22 +0000 (17:31 +0100)]
filechooserwidget: Plug a memory leak
Matthias Clasen [Thu, 26 Mar 2020 18:23:11 +0000 (18:23 +0000)]
Merge branch 'widget-factory-theme' into 'master'
widget-factory: Add theme switch
See merge request GNOME/gtk!1573
Matthias Clasen [Thu, 26 Mar 2020 17:51:59 +0000 (13:51 -0400)]
widget-factory: Add theme switch
Add a submenu to test the builtin themes. This is mainly
for the benefit of the artists working on those themes.
Matthias Clasen [Thu, 26 Mar 2020 17:24:42 +0000 (17:24 +0000)]
Merge branch 'wip/jimmac/HC-redesign' into 'master'
HC: derive from Adwaita
Closes #1450
See merge request GNOME/gtk!1571
Jakub Steiner [Thu, 26 Mar 2020 14:35:01 +0000 (15:35 +0100)]
Adwaita: make insensitive slightly less sensitive
- will expose itself even more in HC
Jakub Steiner [Tue, 24 Mar 2020 14:59:33 +0000 (15:59 +0100)]
HC: derive from Adwaita
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/1450
Jakub Steiner [Thu, 26 Mar 2020 16:19:19 +0000 (17:19 +0100)]
Revert "Adwaita: make insensitive slightly less sensitive"
This reverts commit
bf3ccaa1bfb8d1bedb019a7057c01cf2d06eee89.
Jakub Steiner [Thu, 26 Mar 2020 14:35:01 +0000 (15:35 +0100)]
Adwaita: make insensitive slightly less sensitive
- will expose itself even more in HC
Matthias Clasen [Thu, 26 Mar 2020 03:40:22 +0000 (03:40 +0000)]
Merge branch 'wip/matthiasc/shortcut-4' into 'master'
Shortcuts
See merge request GNOME/gtk!1569
Matthias Clasen [Thu, 26 Mar 2020 02:30:15 +0000 (22:30 -0400)]
Some documentation fixes
Matthias Clasen [Wed, 25 Mar 2020 21:13:37 +0000 (17:13 -0400)]
shortcutmanager: Add some more docs
Matthias Clasen [Tue, 24 Mar 2020 21:01:18 +0000 (17:01 -0400)]
shortcuttrigger: Some documentation fixups
Matthias Clasen [Tue, 24 Mar 2020 20:57:27 +0000 (16:57 -0400)]
shortcutaction: Some documentation fixups
Matthias Clasen [Tue, 24 Mar 2020 20:29:47 +0000 (16:29 -0400)]
shortcutcontroller: Expand the docs
Matthias Clasen [Tue, 24 Mar 2020 20:11:07 +0000 (16:11 -0400)]
docs: Update the overview input chapter
Update the wording around events to reflect current
usage, and add information about shortcuts and the
shortcut controller.
Matthias Clasen [Tue, 24 Mar 2020 16:45:12 +0000 (12:45 -0400)]
popovermenu: Show mnemonics on keynav
This is the expected behavior for menus.
Matthias Clasen [Tue, 24 Mar 2020 16:45:43 +0000 (12:45 -0400)]
popover: Implement auto mnemonics
Unfortunately, this involves copying a bunch of
code from gtkwindow.c. The only difference here
is that we add a private method to turn this off,
which will be used by GtkPopoverMenu to implement
its own auto mnemonics.
Matthias Clasen [Tue, 24 Mar 2020 16:44:08 +0000 (12:44 -0400)]
label: Respect GtkPopover::mnemonics-visible
When inside a popover, look to the popover for
whether to show mnemonics or not.
Matthias Clasen [Tue, 24 Mar 2020 16:29:26 +0000 (12:29 -0400)]
popover: Add a mnemonics-visible property
This will be handled separately for popovers, so we
need our own property for it.
Matthias Clasen [Tue, 24 Mar 2020 15:54:17 +0000 (11:54 -0400)]
label: Disconnect visible mnemonics in popovers
The controller handling mnemonics is limited to same-native,
so showing mnemonics in other natives.
Matthias Clasen [Tue, 24 Mar 2020 05:07:09 +0000 (01:07 -0400)]
modelbutton: Install accels when inside a popover
When a model button in a popover displays a shortcut,
it is probably from the global shortcut controllers,
and will not work inside the popover, since that is
a different native. Install a shortcut using the same
trigger that just activates the model button. This
shortcut will end up in the managed shortcut controller
of the popover.
Matthias Clasen [Tue, 24 Mar 2020 04:00:43 +0000 (00:00 -0400)]
popovermenu: Make mnemonics work without Alt
This is expected menu behavior.
Matthias Clasen [Tue, 24 Mar 2020 03:04:53 +0000 (23:04 -0400)]
shortcutcontroller: Inject accels into the action muxer
This is the way model button pic up accels for their actions.
Matthias Clasen [Tue, 24 Mar 2020 03:04:06 +0000 (23:04 -0400)]
popover: Implement GtkShortcutManager
This makes mnemonics work in popovers.
Matthias Clasen [Tue, 24 Mar 2020 03:03:29 +0000 (23:03 -0400)]
modelbutton: Make activatable
This is expected of button-like widgets, and is necessary
to make keynav in popover menus work as expected.
Matthias Clasen [Mon, 23 Mar 2020 18:46:20 +0000 (14:46 -0400)]
modelbutton: Remove accel poking
Stop manually poking GtkApplication for accels.
GtkApplication already feeds them into the action
muxer machinery, so that is where will get them.
Emmanuele Bassi [Fri, 20 Mar 2020 15:19:45 +0000 (15:19 +0000)]
Turn GtkShortcutAction into a GObject
Just like we did for GtkShortcutTrigger.
This allows language bindings to properly deal with all the actions.