gtk4.git
4 years agoGDK-Win32: Reject WGL context if shaders aren't supported
Chun-wei Fan [Tue, 17 Aug 2021 07:13:38 +0000 (15:13 +0800)]
GDK-Win32: Reject WGL context if shaders aren't supported

When we initialize OpenGL, check whether we have OpenGL  2.0 or later; if not,
check whether we have the 'GL_ARB_shader_objects' extension, since we must be
able to support shaders if using OpenGL for GTK.

If we don't support shaders, as some Windows graphics drivers do not support
OpenGL adequately, notably older Intel drivers, reject and destroy the GL
context that we created, and so fallback to the Cairo GSK renderer, so that
things continue to run, albeit with an expected warning message that the GL
context cannot be realized.

Also, when we could not make the created dummy WGL context current during
initialization, make sure that we destroy the dummy WGL context as well.

Fixes issue #4165.

4 years agoMerge branch 'wip/otte/for-master' into 'master'
Benjamin Otte [Thu, 12 Aug 2021 12:36:28 +0000 (12:36 +0000)]
Merge branch 'wip/otte/for-master' into 'master'

gdk: Include Vulkan error code in vulkan_strerror()

See merge request GNOME/gtk!3844

4 years agogdk: Include Vulkan error code in vulkan_strerror()
Benjamin Otte [Thu, 12 Aug 2021 12:18:46 +0000 (14:18 +0200)]
gdk: Include Vulkan error code in vulkan_strerror()

4 years agoMerge branch 'matthiasc/for-master' into 'master'
Matthias Clasen [Tue, 10 Aug 2021 15:08:20 +0000 (15:08 +0000)]
Merge branch 'matthiasc/for-master' into 'master'

Handle the new line height pango attribute

See merge request GNOME/gtk!3840

4 years agoci: Add libjpeg-turbo-devel to the Fedora image
Matthias Clasen [Tue, 10 Aug 2021 12:13:57 +0000 (08:13 -0400)]
ci: Add libjpeg-turbo-devel to the Fedora image

This was getting downloaded from sourceforge every
time for the docs build, and that started failing.

4 years agoHandle the new line height pango attribute
Matthias Clasen [Sat, 7 Aug 2021 16:11:29 +0000 (12:11 -0400)]
Handle the new line height pango attribute

Update all the places where we switch over PangoAttributeType
to handle (and ignore, for now) the new line height attribute.

4 years agoMerge branch 'callback-annotation-again' into 'master'
Matthias Clasen [Tue, 10 Aug 2021 01:16:56 +0000 (01:16 +0000)]
Merge branch 'callback-annotation-again' into 'master'

widget: Change callback scope

See merge request GNOME/gtk!3796

4 years agoMerge branch 'wip/otte/for-master' into 'master'
Benjamin Otte [Sun, 8 Aug 2021 01:09:31 +0000 (01:09 +0000)]
Merge branch 'wip/otte/for-master' into 'master'

ngl: Make current when unrealizing

See merge request GNOME/gtk!3835

4 years agongl: Make current when unrealizing
Benjamin Otte [Sun, 8 Aug 2021 00:17:08 +0000 (02:17 +0200)]
ngl: Make current when unrealizing

The profiler (at least) discards GL objects and we want to discard them
on the right context.

4 years agoMerge branch 'matthiasc/for-master' into 'master'
Matthias Clasen [Sat, 7 Aug 2021 22:48:32 +0000 (22:48 +0000)]
Merge branch 'matthiasc/for-master' into 'master'

Cosmetics: Tweak css parser error messages

See merge request GNOME/gtk!3834

4 years agoCosmetics: Tweak css parser error messages
Matthias Clasen [Sat, 7 Aug 2021 22:16:19 +0000 (18:16 -0400)]
Cosmetics: Tweak css parser error messages

These show up in tooltips, so they should a) be capitalized
and b) not end with a period.

4 years agoBelarusian translation: Remove broken translation string
Andre Klapper [Sat, 7 Aug 2021 17:09:15 +0000 (19:09 +0200)]
Belarusian translation: Remove broken translation string

4 years agoKhmer translation: Strip some invisible bytes from setting translations
Andre Klapper [Sat, 7 Aug 2021 17:08:31 +0000 (19:08 +0200)]
Khmer translation: Strip some invisible bytes from setting translations

4 years agoMerge branch 'matthiasc/for-master' into 'master'
Matthias Clasen [Sat, 7 Aug 2021 16:56:56 +0000 (16:56 +0000)]
Merge branch 'matthiasc/for-master' into 'master'

gtk-demo: Spruce up the hypertext demo

See merge request GNOME/gtk!3832

4 years agoUpdate Hebrew translation
Yaron Shahrabani [Sat, 7 Aug 2021 16:51:31 +0000 (16:51 +0000)]
Update Hebrew translation

(cherry picked from commit 11e6ce175166364f7c807764a8de8619b65da82a)

4 years agogtk-demo: Spruce up the hypertext demo
Matthias Clasen [Sat, 7 Aug 2021 16:08:29 +0000 (12:08 -0400)]
gtk-demo: Spruce up the hypertext demo

Use the newish allow-breaks pango attribute
to make the text break better.

4 years agoUpdate Persian translation
Danial Behzadi [Sat, 7 Aug 2021 14:48:55 +0000 (14:48 +0000)]
Update Persian translation

4 years agoUpdate Persian translation
Danial Behzadi [Sat, 7 Aug 2021 14:44:44 +0000 (14:44 +0000)]
Update Persian translation

(cherry picked from commit b467881274d4917fcc29ace6c699786ffa74e909)

4 years agoMerge branch 'wip/chergert/revert-top-margin' into 'master'
Matthias Clasen [Fri, 6 Aug 2021 13:13:21 +0000 (13:13 +0000)]
Merge branch 'wip/chergert/revert-top-margin' into 'master'

Revert "textview: fix yoffset position when top_margin is set"

See merge request GNOME/gtk!3828

4 years agoMerge branch 'matthiasc/for-master' into 'master'
Matthias Clasen [Thu, 5 Aug 2021 19:17:54 +0000 (19:17 +0000)]
Merge branch 'matthiasc/for-master' into 'master'

settings: Default gtk-split-cursor to FALSE

See merge request GNOME/gtk!3827

4 years agoRevert "textview: fix yoffset position when top_margin is set"
Christian Hergert [Thu, 5 Aug 2021 18:52:45 +0000 (11:52 -0700)]
Revert "textview: fix yoffset position when top_margin is set"

This reverts commit 908b1e5e1214afc01440bc07a8d937222f411f38.

This commit broke top-margin altogether.

4 years agoMerge branch 'matthiasc/for-master' into 'master'
Matthias Clasen [Thu, 5 Aug 2021 18:45:39 +0000 (18:45 +0000)]
Merge branch 'matthiasc/for-master' into 'master'

text: Move setup code out of a loop

See merge request GNOME/gtk!3826

4 years agosettings: Default gtk-split-cursor to FALSE
Matthias Clasen [Thu, 5 Aug 2021 18:05:28 +0000 (14:05 -0400)]
settings: Default gtk-split-cursor to FALSE

According to Owen, this was the intention when the setting
was added in 2001. It only took us 20 years to fix the
default value.

4 years agoci: Disable treeview-headers-hidden reftest
Matthias Clasen [Thu, 5 Aug 2021 16:41:04 +0000 (12:41 -0400)]
ci: Disable treeview-headers-hidden reftest

Somebody needs to figure out why it fails in ci so
frequently.

4 years agoMerge branch 'wip/exalm/shadow-extents' into 'master'
Matthias Clasen [Thu, 5 Aug 2021 16:39:52 +0000 (16:39 +0000)]
Merge branch 'wip/exalm/shadow-extents' into 'master'

Shrink shadow extents

See merge request GNOME/gtk!3825

4 years agotext: Move setup code out of a loop
Matthias Clasen [Thu, 5 Aug 2021 16:29:24 +0000 (12:29 -0400)]
text: Move setup code out of a loop

Just a cleanup, no functional change.

4 years agoMerge branch 'fix-tab-not-captured-in-popover' into 'master'
Matthias Clasen [Thu, 5 Aug 2021 02:07:43 +0000 (02:07 +0000)]
Merge branch 'fix-tab-not-captured-in-popover' into 'master'

popovermenu: Cycle around focus also with (Shift+)Tab

Closes #3915

See merge request GNOME/gtk!3732

4 years agopopover: Cycle around focus with (Shift+)Tab
vanadiae [Mon, 5 Jul 2021 17:33:08 +0000 (19:33 +0200)]
popover: Cycle around focus with (Shift+)Tab

Same thing as the previous popovermenu commit, except for the base popover
because the popovermenu needs special behaviour with e.g. sides arrow so
we need to have the "cycle around" for regular popovers here too.

4 years agopopovermenu: Cycle around focus also with (Shift+)Tab
vanadiae [Mon, 5 Jul 2021 17:20:58 +0000 (19:20 +0200)]
popovermenu: Cycle around focus also with (Shift+)Tab

Currently when moving the focus with (Shift+)Tab, it also traverses the window's
widgets, although it would be expected that the focus stays within the popover,
as it's (almost) like it's a separate window. This would be consistent with
the behaviour of the Up/down arrows, which do cycle around the focus once it
reaches the end.

So this commit makes the popovermenu cycle around focus in any direction, apart
from left/right because they are used to open and close submenus and it wouldn't
make sense anyway to cycle horizontally as there's usually only one widget per
line.

4 years agoShrink shadow extents
Alexander Mikhaylenko [Wed, 4 Aug 2021 09:24:35 +0000 (14:24 +0500)]
Shrink shadow extents

Long time ago, Cairo shadows in both GTK3 and 4 were drawn at a size about
twice their radius. Eventually this was fixed but the shadow extents are
still calculated for the previous size and appear unreasonably large: for
example, 141px for a 50px radius shadow. This can get very noticeable in
places such as invisible window frame which gets included into screenshots.

https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3419 just divides the
radius by 2 when drawing a shadow with Cairo, do the same when calculating
extents.

See https://gitlab.gnome.org/GNOME/gtk/-/issues/3841

4 years agoMerge branch 'combobox-keynav' into 'master'
Matthias Clasen [Tue, 3 Aug 2021 11:20:56 +0000 (11:20 +0000)]
Merge branch 'combobox-keynav' into 'master'

treepopover: Add keynav

See merge request GNOME/gtk!3822

4 years agotreepopover: Start adding keynav
Matthias Clasen [Tue, 3 Aug 2021 03:49:05 +0000 (23:49 -0400)]
treepopover: Start adding keynav

Arrange for the items to be focusable, and add keyboard
activation. Still missing: cycling focus inside the
popover.

4 years agoMerge branch 'big-keysyms' into 'master'
Matthias Clasen [Tue, 3 Aug 2021 01:05:16 +0000 (01:05 +0000)]
Merge branch 'big-keysyms' into 'master'

imcontext: Treat keysyms as 32bit values

Closes #4149

See merge request GNOME/gtk!3819

4 years agoMerge branch 'surround-test' into 'master'
Matthias Clasen [Tue, 3 Aug 2021 01:00:13 +0000 (01:00 +0000)]
Merge branch 'surround-test' into 'master'

Remove an unimplemented function

Closes #4151

See merge request GNOME/gtk!3820

4 years agoAdd some GtkIMContext tests
Matthias Clasen [Tue, 3 Aug 2021 00:42:01 +0000 (20:42 -0400)]
Add some GtkIMContext tests

For now, these check that the surrounding handling
in GtkText and GtkTextView is sane.

Fixes: #4151
4 years agotextview: Fix the get_surrounding implementation
Matthias Clasen [Tue, 3 Aug 2021 00:16:50 +0000 (20:16 -0400)]
textview: Fix the get_surrounding implementation

This was, sadly, returning garbage.

4 years agoAdd a private getter for the textview key controller
Matthias Clasen [Tue, 3 Aug 2021 00:16:23 +0000 (20:16 -0400)]
Add a private getter for the textview key controller

This will be used in tests.

4 years agoRemove an unimplemented function
Matthias Clasen [Mon, 2 Aug 2021 23:46:31 +0000 (19:46 -0400)]
Remove an unimplemented function

_gtk_entry_get_im_context does not exist.

4 years agoimcontext: Treat keysyms as 32bit values
Matthias Clasen [Mon, 2 Aug 2021 23:15:16 +0000 (19:15 -0400)]
imcontext: Treat keysyms as 32bit values

Our compose table format is still limited to 16bit
values for keysyms, but what we see in key events
can be 32bit values, and we treat them as such now.

Fixes: #4149
4 years agoMerge branch 'fix-custom-widget-menu-focus' into 'master'
Matthias Clasen [Mon, 2 Aug 2021 22:21:08 +0000 (22:21 +0000)]
Merge branch 'fix-custom-widget-menu-focus' into 'master'

menusectionbox: Passthrough the focus function of custom widgets' gizmo

Closes gnome-text-editor#93

See merge request GNOME/gtk!3817

4 years agoMerge branch 'wip/otte/for-master' into 'master'
Matthias Clasen [Mon, 2 Aug 2021 22:19:39 +0000 (22:19 +0000)]
Merge branch 'wip/otte/for-master' into 'master'

video: Use cross-fade transition to avoid resizes

See merge request GNOME/gtk!3815

4 years agoMerge branch 'fix-4144' into 'master'
Matthias Clasen [Mon, 2 Aug 2021 22:17:20 +0000 (22:17 +0000)]
Merge branch 'fix-4144' into 'master'

gtkgesturerotate: Fix assertion

Closes #4144

See merge request GNOME/gtk!3818

4 years agogtkgesturerotate: Fix assertion
James Westman [Mon, 2 Aug 2021 21:38:11 +0000 (16:38 -0500)]
gtkgesturerotate: Fix assertion

Fixes #4144. An assertion would be printed when GtkGestureRotate was
used with a touchscreen.

4 years agomenusectionbox: Passthrough the focus function of custom widgets' gizmo
vanadiae [Mon, 2 Aug 2021 19:20:32 +0000 (21:20 +0200)]
menusectionbox: Passthrough the focus function of custom widgets' gizmo

It broke keyboard focusing any widget added through the custom widget
menu feature. So for example if you put e.g. a custom check box widget
in a menu, you won't be able to focus it.

This is because the gizmo is mostly used to custom drawing with e.g.
CSS for small visual elements like scale markers. That's probably why
gizmo's default focus overrides block the focus from going through
the children. So this commit fixes it by overriding those and passing
the focus through the children.

4 years agovideo: Use cross-fade transition to avoid resizes
Benjamin Otte [Mon, 2 Aug 2021 18:11:32 +0000 (20:11 +0200)]
video: Use cross-fade transition to avoid resizes

Slide animations cause changes in the size requests due to the
behavior of GtkRevealer. We can avoid those by using cross-fades, which
don't have that problem.

Besides, cross-fades look better anyway.

4 years agoMerge branch 'input-tweaks' into 'master'
Matthias Clasen [Mon, 2 Aug 2021 18:07:46 +0000 (18:07 +0000)]
Merge branch 'input-tweaks' into 'master'

imcontext: Tweak Compose sequence preedit

Closes #10, #4127, and #4124

See merge request GNOME/gtk!3799

4 years agoMerge branch 'fix-double-underscore-mnemonic' into 'master'
Matthias Clasen [Mon, 2 Aug 2021 03:54:29 +0000 (03:54 +0000)]
Merge branch 'fix-double-underscore-mnemonic' into 'master'

label: Ignore __ for mnemonics

Closes #4129

See merge request GNOME/gtk!3814

4 years agoAvoid pango deprecations
Matthias Clasen [Mon, 2 Aug 2021 02:43:43 +0000 (22:43 -0400)]
Avoid pango deprecations

This function has been deprecated on the main
branch of pango. Since we don't want to bump our
pango dependency to 1.49 yet, ignore the deprecation.

4 years agoAdd more label parsing tests
Matthias Clasen [Mon, 2 Aug 2021 03:18:27 +0000 (23:18 -0400)]
Add more label parsing tests

Test various combinations of underline and markup
parsing.

4 years agolabel: Ignore __ for mnemonics
Matthias Clasen [Mon, 2 Aug 2021 02:14:12 +0000 (22:14 -0400)]
label: Ignore __ for mnemonics

We were not ignoring double underscores for mnemonics
in one place, as we should.

Fixes: #4129
4 years agoMerge branch 'titlebar-gesture' into 'master'
Matthias Clasen [Mon, 2 Aug 2021 01:14:08 +0000 (01:14 +0000)]
Merge branch 'titlebar-gesture' into 'master'

Delegate titlebar action to the compositor if possible

See merge request GNOME/gtk!3797

4 years agoUpdate Polish translation
Piotr Drąg [Sun, 1 Aug 2021 12:21:25 +0000 (14:21 +0200)]
Update Polish translation

4 years agoMerge branch 'color-glyph-fixes' into 'master'
Matthias Clasen [Sat, 31 Jul 2021 20:54:39 +0000 (20:54 +0000)]
Merge branch 'color-glyph-fixes' into 'master'

gsk: Make color glyphs

Closes #4141

See merge request GNOME/gtk!3812

4 years agoMerge branch 'fix-iconhelper' into 'master'
Matthias Clasen [Sat, 31 Jul 2021 20:35:08 +0000 (20:35 +0000)]
Merge branch 'fix-iconhelper' into 'master'

iconhelper: Fix the paintable implementation

Closes #4140

See merge request GNOME/gtk!3809

4 years agogsk: Use harfbuzz for color fonts
Matthias Clasen [Sat, 31 Jul 2021 19:22:14 +0000 (15:22 -0400)]
gsk: Use harfbuzz for color fonts

harfbuzz has all the information we need, so we
can avoid poking directly at freetype apis. Also
drop the caching of color glyph information until
it turns out to be a problem.

4 years agoBump the harfbuzz dep
Matthias Clasen [Sat, 31 Jul 2021 19:22:49 +0000 (15:22 -0400)]
Bump the harfbuzz dep

We need 2.1.0, which has the hb_ot_color apis that we
are going to use in the next commit.

4 years agogsk: Cache per-glyph color information
Matthias Clasen [Sat, 31 Jul 2021 16:23:50 +0000 (12:23 -0400)]
gsk: Cache per-glyph color information

We don't really want to load the bitmaps every time
we create a render node, so do it once and cache the
information on the PangoFont.

4 years agongl: Use per-glyph color information
Matthias Clasen [Sat, 31 Jul 2021 15:41:43 +0000 (11:41 -0400)]
ngl: Use per-glyph color information

Decide per-glyph whether we need color nor not.

Fixes: #4141
4 years agogsk: Mark color glyphs
Matthias Clasen [Sat, 31 Jul 2021 15:41:08 +0000 (11:41 -0400)]
gsk: Mark color glyphs

Steal a bit from PangoGlyphVisAttr to mark glyphs
that have color.

4 years agoMerge branch 'update-docs' into 'master'
Emmanuele Bassi [Sat, 31 Jul 2021 18:39:52 +0000 (18:39 +0000)]
Merge branch 'update-docs' into 'master'

docs: Update the URL for related documentation

See merge request GNOME/gtk!3813

4 years agodocs: Update the URLs of related projects for GTK
Emmanuele Bassi [Sat, 31 Jul 2021 18:08:34 +0000 (19:08 +0100)]
docs: Update the URLs of related projects for GTK

And install the gi-docgen project file as well.

4 years agodocs: Update the URLs of related projects for GSK
Emmanuele Bassi [Sat, 31 Jul 2021 18:07:18 +0000 (19:07 +0100)]
docs: Update the URLs of related projects for GSK

And install the gi-docgen project file.

4 years agodocs: Update the URL for related documentation
Emmanuele Bassi [Sat, 31 Jul 2021 18:05:33 +0000 (19:05 +0100)]
docs: Update the URL for related documentation

And install the gi-docgen project files for GDK.

4 years agoMerge branch 'docs-trigger' into 'master'
Emmanuele Bassi [Sat, 31 Jul 2021 17:16:26 +0000 (17:16 +0000)]
Merge branch 'docs-trigger' into 'master'

ci: Trigger a pages build

See merge request GNOME/gtk!3811

4 years agoci: Trigger a pages build
Emmanuele Bassi [Sat, 31 Jul 2021 16:08:56 +0000 (17:08 +0100)]
ci: Trigger a pages build

Do not publish the API reference directly, but trigger a CI pipeline for
the docs-gtk-org branch, which will then do the publishing.

4 years agoMerge branch 'iter-is-valid-docs' into 'master'
Emmanuele Bassi [Sat, 31 Jul 2021 13:07:07 +0000 (13:07 +0000)]
Merge branch 'iter-is-valid-docs' into 'master'

docs: Fix iter_is_valid() description

See merge request GNOME/gtk!3810

4 years agodocs: Fix iter_is_valid() description
Emmanuele Bassi [Sat, 31 Jul 2021 12:41:13 +0000 (13:41 +0100)]
docs: Fix iter_is_valid() description

Drop the "WARNING" and the block quote, and follow the existing
documentation style guidelines.

4 years agoiconhelper: Fix the paintable implementation
Matthias Clasen [Sat, 31 Jul 2021 11:46:54 +0000 (07:46 -0400)]
iconhelper: Fix the paintable implementation

get_current_image was recursing due to an obvious typo.

Fixes: #4140
4 years agoMerge branch 'glyph-cache-mystery' into 'master'
Matthias Clasen [Sat, 31 Jul 2021 00:38:41 +0000 (00:38 +0000)]
Merge branch 'glyph-cache-mystery' into 'master'

ngl: Bypass pango for glyph cache rendering

See merge request GNOME/gtk!3807

4 years agongl: Bypass pango for glyph cache rendering
Matthias Clasen [Fri, 30 Jul 2021 17:51:02 +0000 (13:51 -0400)]
ngl: Bypass pango for glyph cache rendering

We can just use cairo directly here,
and cut out some layers of pango in the middle.

4 years agoMerge branch 'check-activate' into 'master'
Matthias Clasen [Fri, 30 Jul 2021 23:39:17 +0000 (23:39 +0000)]
Merge branch 'check-activate' into 'master'

checkbutton: Some fixes when used with GActions

See merge request GNOME/gtk!3805

4 years agoMerge branch 'fix/wm_class' into 'master'
Matthias Clasen [Fri, 30 Jul 2021 23:25:08 +0000 (23:25 +0000)]
Merge branch 'fix/wm_class' into 'master'

x11: set a default value for program_class

Closes #4138

See merge request GNOME/gtk!3806

4 years agoMerge branch 'wip/otte/for-master' into 'master'
Matthias Clasen [Fri, 30 Jul 2021 22:43:29 +0000 (22:43 +0000)]
Merge branch 'wip/otte/for-master' into 'master'

widget-factory: Expand the video to cover the whole frame

See merge request GNOME/gtk!3804

4 years agox11: set a default value for program_class
Vincent Bernat [Fri, 30 Jul 2021 21:21:19 +0000 (23:21 +0200)]
x11: set a default value for program_class

This was also the behaviour with GTK 3. We use the capitalized program
name.

Fixes #4138

Signed-off-by: Vincent Bernat <vincent@bernat.ch>
4 years agowidget-factory: Propagate natural size for text styles
Benjamin Otte [Fri, 30 Jul 2021 18:54:58 +0000 (20:54 +0200)]
widget-factory: Propagate natural size for text styles

This avoids them requiring scrolling.

4 years agowidget-factory: Make frames cooler
Benjamin Otte [Fri, 30 Jul 2021 18:41:30 +0000 (20:41 +0200)]
widget-factory: Make frames cooler

Instead of havoing a label for the video frame that clashes with the
background of the video, add a frame around the text styles box and add
a label for them. As a side benefit, it also makes it more obvious that
it is scrollable.

Note: Most of this patch is just reindenting.

4 years agowidget-factory: Expand the video to cover the whole frame
Benjamin Otte [Fri, 30 Jul 2021 18:37:34 +0000 (20:37 +0200)]
widget-factory: Expand the video to cover the whole frame

1. This looks way cooler.

2. Since the frame is rounded, it adds a very visible test for our
   clipping of rounded rectangles.

4 years agocheckbutton: Activate when moving focus
Florian Müllner [Fri, 30 Jul 2021 18:18:36 +0000 (20:18 +0200)]
checkbutton: Activate when moving focus

Currently we update the :active property on both the previous and
new focus button. That "visually activate" the button and will
emit ::toggled, but if the button is associated with an action,
the action state won't change.

Fix that by activating the new focus instead of explicitly fiddling
with the :active property.

4 years agocheckbutton: Delegate ::activate to the helper if appropriate
Florian Müllner [Fri, 30 Jul 2021 05:40:48 +0000 (07:40 +0200)]
checkbutton: Delegate ::activate to the helper if appropriate

If the button is associated with an action, the action is currently
only activated when the button is clicked, not when it is activated.

4 years agoMerge branch 'wip/chergert/fix-4134' into 'master'
Matthias Clasen [Fri, 30 Jul 2021 13:41:30 +0000 (13:41 +0000)]
Merge branch 'wip/chergert/fix-4134' into 'master'

textview: fix yoffset position when top_margin is set

Closes #4134

See merge request GNOME/gtk!3801

4 years agoimcontext: Code cleanup
Matthias Clasen [Thu, 29 Jul 2021 23:59:08 +0000 (19:59 -0400)]
imcontext: Code cleanup

4 years agocomposetable: Allow multiple dead keys
Matthias Clasen [Thu, 29 Jul 2021 20:36:25 +0000 (16:36 -0400)]
composetable: Allow multiple dead keys

Remove the limitation on the number of dead keys
that we match, and allow the result be be multiple
characters.

Regenerate the builtin sequences, since this changes
what dead key sequences we can reproduce algorithmically.

Update tests to match.

Fixes: #10
4 years agotextview: fix yoffset position when top_margin is set
Christian Hergert [Thu, 29 Jul 2021 23:45:04 +0000 (16:45 -0700)]
textview: fix yoffset position when top_margin is set

This doesn't need to be included in the calculation or it will cause the
yoffset to continually shift while the window is resized.

Fixes #4134

4 years agocomposetable: Change an API
Matthias Clasen [Thu, 29 Jul 2021 19:47:04 +0000 (15:47 -0400)]
composetable: Change an API

Make gtk_check_algorithmically take a GString
for the result. This is in preparation for allowing
multi-character results here, in the future.

Update all callers.

4 years agogtk/windowhandle: Delegate titlebar action to the compositor if possible
Florian Müllner [Thu, 29 Jul 2021 02:00:22 +0000 (04:00 +0200)]
gtk/windowhandle: Delegate titlebar action to the compositor if possible

Delegating the action to the compositor not only improves consistency
with server-side decorations, but also allows for actions that aren't
available client-side (like lower-in-middle-click).

https://gitlab.gnome.org/GNOME/mutter/-/issues/602

4 years agogdk/toplevel: Add gdk_toplevel_titlebar_gesture()
Florian Müllner [Thu, 29 Jul 2021 01:55:36 +0000 (03:55 +0200)]
gdk/toplevel: Add gdk_toplevel_titlebar_gesture()

Where supported, this allows delegating the titlebar action to the
compositor instead of trying to replicate its behavior client-side.

https://gitlab.gnome.org/GNOME/mutter/-/issues/602

4 years agoimcontext: Handle Escape in Compose sequence
Matthias Clasen [Thu, 29 Jul 2021 12:39:17 +0000 (08:39 -0400)]
imcontext: Handle Escape in Compose sequence

Treat Escape the same in hex sequences and in
Compose sequence: reset the state.

4 years agoimcontext: Tweak Compose sequence handling
Matthias Clasen [Thu, 29 Jul 2021 12:24:14 +0000 (08:24 -0400)]
imcontext: Tweak Compose sequence handling

When we don't have any matches for a Compose sequence
anymore, beep, and keep the preedit as it was for the
last match.

Fixes: #4127
4 years agocomposetable: Add a prefix api
Matthias Clasen [Thu, 29 Jul 2021 12:23:40 +0000 (08:23 -0400)]
composetable: Add a prefix api

Add a function that computes the longest prefix
of a buffer for which a compose table has matches.

4 years agocomposetable: Reduce the scope of a variable
Matthias Clasen [Thu, 29 Jul 2021 12:22:52 +0000 (08:22 -0400)]
composetable: Reduce the scope of a variable

'prefix' is not a good name for a file-scope variable,
move it into the sole function using it.

4 years agoMerge branch 'source-static-name' into 'master'
Matthias Clasen [Thu, 29 Jul 2021 11:59:02 +0000 (11:59 +0000)]
Merge branch 'source-static-name' into 'master'

Avoid copying static debug strings

See merge request GNOME/gtk!3789

4 years agoimcontext: Tweak Compose sequence preedit
Matthias Clasen [Thu, 29 Jul 2021 11:36:48 +0000 (07:36 -0400)]
imcontext: Tweak Compose sequence preedit

When sequences contain multiple Compose keys,
don't hide the first one. This is a very fringe
case, but it matches the behavior of IBus.

Fixes: #4124
4 years agoci: Collect tools test output
Matthias Clasen [Wed, 28 Jul 2021 17:41:33 +0000 (13:41 -0400)]
ci: Collect tools test output

This should help understanding why some of them fail.

4 years agotestsuite: Set TEST_RESULT_DIR for tools tests
Matthias Clasen [Wed, 28 Jul 2021 17:21:03 +0000 (13:21 -0400)]
testsuite: Set TEST_RESULT_DIR for tools tests

4 years agoAvoid copying static debug strings
Matthias Clasen [Mon, 26 Jul 2021 21:03:15 +0000 (17:03 -0400)]
Avoid copying static debug strings

The g_source_set_name calls were showing up as a
major source of strdups in our profiles. Avoid that
by using new GLib api when available.

4 years agowidget: Change callback scope
Florian Müllner [Wed, 28 Jul 2021 19:48:01 +0000 (21:48 +0200)]
widget: Change callback scope

Look who changed his mind since commit 8e2ffb3b46 :-)

The "call" scope means that the callback is only used during the
function call itself (here: gtk_widget_class_install_action()).

That's clearly wrong here, as the callback is invoked every time
the action is activated.

Arguably the "notified" scope is a better match here, where the
lack of a GDestroyNotify parameter suggests that the callback may
be used forever (which is the case here).

Related: #3498

4 years agoMerge branch 'compose-parse-msvc' into 'master'
Matthias Clasen [Wed, 28 Jul 2021 10:38:25 +0000 (10:38 +0000)]
Merge branch 'compose-parse-msvc' into 'master'

compose-parse.c: Include stdlib.h (fix build on Visual Studio)

See merge request GNOME/gtk!3794

4 years agoUpdate Friulian translation
Fabio Tomat [Wed, 28 Jul 2021 09:11:12 +0000 (09:11 +0000)]
Update Friulian translation

(cherry picked from commit 16aa8dbad74ac7dd29fa2e807e57c34f00eef3a7)

4 years agocompose-parse.c: Include stdlib.h
Chun-wei Fan [Wed, 28 Jul 2021 07:10:37 +0000 (15:10 +0800)]
compose-parse.c: Include stdlib.h

That is needed for exit(), and it may not have been included by the
other headers.

4 years agoMerge branch 'gi-fix' into 'master'
Emmanuele Bassi [Tue, 27 Jul 2021 17:38:28 +0000 (17:38 +0000)]
Merge branch 'gi-fix' into 'master'

gdk: add missing Since annotation

See merge request GNOME/gtk!3790