gtk4.git
4 years agocolorbutton: No nested drag sources, please
Matthias Clasen [Mon, 13 Dec 2021 03:23:31 +0000 (22:23 -0500)]
colorbutton: No nested drag sources, please

This is causing trouble on X11.

4 years agodragicon: Make color icons work in X11
Matthias Clasen [Mon, 13 Dec 2021 02:01:40 +0000 (21:01 -0500)]
dragicon: Make color icons work in X11

We need to disable the DND support in
GtkColorSwatch completely for this to work
in X11.

4 years agocolorswatch: Make drag source optional
Matthias Clasen [Mon, 13 Dec 2021 02:01:01 +0000 (21:01 -0500)]
colorswatch: Make drag source optional

When using a colorswatch as a drag icon,
this can get in the way, so make it optional.

4 years agoMerge branch 'matthiasc/for-main' into 'main'
Matthias Clasen [Mon, 13 Dec 2021 02:43:48 +0000 (02:43 +0000)]
Merge branch 'matthiasc/for-main' into 'main'

dragicon: Provide default icons for paintables

See merge request GNOME/gtk!4243

4 years agodragicon: Provide default icons for more types
Matthias Clasen [Mon, 13 Dec 2021 01:43:50 +0000 (20:43 -0500)]
dragicon: Provide default icons for more types

Provide default icons for paintables and files.
This is easy to do, and makes sense.

fixup drag icon

4 years agodragicon: No events, please
Matthias Clasen [Mon, 13 Dec 2021 02:28:34 +0000 (21:28 -0500)]
dragicon: No events, please

We run into trouble on X11 if the widgets
in the drag icon have drop targets attached.
Prevent this by suppressing event delivery
to drag icons outright.

4 years agoMerge branch 'wip/otte/for-main' into 'main'
Benjamin Otte [Mon, 13 Dec 2021 01:17:00 +0000 (01:17 +0000)]
Merge branch 'wip/otte/for-main' into 'main'

x11: Fix a deadlock in INCR transfers

See merge request GNOME/gtk!4242

4 years agox11: Don't delete important signal handlers randomly
Benjamin Otte [Mon, 13 Dec 2021 00:54:21 +0000 (01:54 +0100)]
x11: Don't delete important signal handlers randomly

We finish the write to the output stream long after the stream has been
closed, so we want to keep the event handler around to do just that.

Instead, remove the handler on finalize.

4 years agox11: Explicitly track end of stream
Benjamin Otte [Mon, 13 Dec 2021 00:52:30 +0000 (01:52 +0100)]
x11: Explicitly track end of stream

The OutputStream needs to write a 0 byte end of stream Property. We need
to track if that has been written, and we do that with that new
property.

We also use that property to always request flushes when the stream is
being closed, so that we don't wait for another flush() call.

4 years agox11: Explicitly close_async() the output stream
Benjamin Otte [Mon, 13 Dec 2021 00:43:24 +0000 (01:43 +0100)]
x11: Explicitly close_async() the output stream

We need to be very careful when writing data, because if we aren't, sync
functions will be called on the output stream and X11 does not like that
at all.

4 years agox11: Keep a reference to the SelectionOutputStream while writing
Benjamin Otte [Mon, 13 Dec 2021 00:41:04 +0000 (01:41 +0100)]
x11: Keep a reference to the SelectionOutputStream while writing

This ensures close() isn't called from dispose() while we're still busy
writing.

In theory this should never happen, but in practice it just did.

4 years agoMerge branch 'clipboard-demo-improvements' into 'main'
Matthias Clasen [Sun, 12 Dec 2021 23:51:30 +0000 (23:51 +0000)]
Merge branch 'clipboard-demo-improvements' into 'main'

inspector: Show more datatypes for the clipboard

See merge request GNOME/gtk!4241

4 years agogdk: Drop some pointless code
Matthias Clasen [Sun, 12 Dec 2021 23:27:58 +0000 (18:27 -0500)]
gdk: Drop some pointless code

There is no point in sorting png first when
registering (de)serializers, since we ignore
the png format now when walking the list.

4 years agoinspector: Show more datatypes for the clipboard
Matthias Clasen [Sun, 12 Dec 2021 23:01:50 +0000 (18:01 -0500)]
inspector: Show more datatypes for the clipboard

It is easy enough to show colors, files and pixbufs.

4 years agoMerge branch 'clipboard-demo-improvements' into 'main'
Matthias Clasen [Sun, 12 Dec 2021 21:42:31 +0000 (21:42 +0000)]
Merge branch 'clipboard-demo-improvements' into 'main'

droptarget: Improve the docs

See merge request GNOME/gtk!4240

4 years agogtk-demo: Add dnd back to the clipboard demo
Matthias Clasen [Sun, 12 Dec 2021 21:25:07 +0000 (16:25 -0500)]
gtk-demo: Add dnd back to the clipboard demo

4 years agodroptarget: Improve the docs
Matthias Clasen [Sun, 12 Dec 2021 21:26:00 +0000 (16:26 -0500)]
droptarget: Improve the docs

Add the signal connection to the example.

4 years agoMerge branch 'clipboard-demo-improvements' into 'main'
Matthias Clasen [Sun, 12 Dec 2021 18:58:07 +0000 (18:58 +0000)]
Merge branch 'clipboard-demo-improvements' into 'main'

gtk-demo: Small followup fixes

See merge request GNOME/gtk!4239

4 years agogtk-demo: Small followup fixes
Matthias Clasen [Sun, 12 Dec 2021 18:41:24 +0000 (13:41 -0500)]
gtk-demo: Small followup fixes

Make image copy work remotely.

4 years agoMerge branch 'new-clipboard-demo' into 'main'
Matthias Clasen [Sun, 12 Dec 2021 18:30:27 +0000 (18:30 +0000)]
Merge branch 'new-clipboard-demo' into 'main'

docs: Small improvement

See merge request GNOME/gtk!4238

4 years agogtk-demo: Rewrite the clipboard demo
Matthias Clasen [Sun, 12 Dec 2021 18:13:11 +0000 (13:13 -0500)]
gtk-demo: Rewrite the clipboard demo

This is more in line with the current clipboard
api, and shows handling colors and files.

4 years agoUpdate Ukrainian translation
Yuri Chornoivan [Sun, 12 Dec 2021 17:18:14 +0000 (17:18 +0000)]
Update Ukrainian translation

4 years agoUpdate Portuguese translation
Hugo Carvalho [Sun, 12 Dec 2021 16:26:05 +0000 (16:26 +0000)]
Update Portuguese translation

4 years agodocs: Small improvement
Matthias Clasen [Sun, 12 Dec 2021 14:03:11 +0000 (09:03 -0500)]
docs: Small improvement

I could not find the attributes of the <binding>
element mentioned anywhere in the docs.

4 years agoUpdate POTFILES.in and POTFILES.skip
Piotr Drąg [Sun, 12 Dec 2021 12:54:41 +0000 (13:54 +0100)]
Update POTFILES.in and POTFILES.skip

4 years agoMerge branch 'wip/otte/inspector' into 'main'
Benjamin Otte [Sat, 11 Dec 2021 22:46:30 +0000 (22:46 +0000)]
Merge branch 'wip/otte/inspector' into 'main'

inspector: Add a clipboard page

See merge request GNOME/gtk!4237

4 years agocontentformats: Make sure 0 elements means the array is NULL
Benjamin Otte [Sat, 11 Dec 2021 22:21:53 +0000 (23:21 +0100)]
contentformats: Make sure 0 elements means the array is NULL

Don't return arrays with 0 elements, return NULL.

4 years agoinspector: Add a clipboard page
Benjamin Otte [Thu, 19 Aug 2021 16:38:27 +0000 (18:38 +0200)]
inspector: Add a clipboard page

Shows all the formats supported by the clipboard (and primary clipboard)
and allows displaying them (by potentially downloading them)

4 years agoMerge branch 'fix-textchild-abi' into 'main'
Matthias Clasen [Sat, 11 Dec 2021 16:32:45 +0000 (16:32 +0000)]
Merge branch 'fix-textchild-abi' into 'main'

Restore the GtkTextchild abi

Closes #4531

See merge request GNOME/gtk!4236

4 years agoRestore the GtkTextchild abi
Matthias Clasen [Sat, 11 Dec 2021 15:55:55 +0000 (10:55 -0500)]
Restore the GtkTextchild abi

Move the new chars field to a private struct.

Fixes: #4531
4 years agoMerge branch 'deprecate-device-source' into 'main'
Matthias Clasen [Fri, 10 Dec 2021 18:35:00 +0000 (18:35 +0000)]
Merge branch 'deprecate-device-source' into 'main'

Deprecate GdkDevice:source

See merge request GNOME/gtk!4207

4 years agoMerge branch 'fix-printer-enumeration' into 'main'
Matthias Clasen [Fri, 10 Dec 2021 18:01:59 +0000 (18:01 +0000)]
Merge branch 'fix-printer-enumeration' into 'main'

Fix dialog-less printing

Closes #4439

See merge request GNOME/gtk!4215

4 years agoMerge branch 'bump-meson-dep' into 'main'
Matthias Clasen [Fri, 10 Dec 2021 18:00:50 +0000 (18:00 +0000)]
Merge branch 'bump-meson-dep' into 'main'

Require meson 0.59

Closes #4486

See merge request GNOME/gtk!4230

4 years agoMerge branch 'missing-since-tag' into 'main'
Matthias Clasen [Fri, 10 Dec 2021 17:15:32 +0000 (17:15 +0000)]
Merge branch 'missing-since-tag' into 'main'

Add a missing since tag

See merge request GNOME/gtk!4229

4 years agoci: Use meson 0.59 for msvc
Matthias Clasen [Fri, 10 Dec 2021 17:14:04 +0000 (12:14 -0500)]
ci: Use meson 0.59 for msvc

4 years agoci: Use meson 0.59 on macos
Matthias Clasen [Fri, 10 Dec 2021 17:12:52 +0000 (12:12 -0500)]
ci: Use meson 0.59 on macos

4 years agoFix the targets variable in pc files
Matthias Clasen [Fri, 10 Dec 2021 16:36:07 +0000 (11:36 -0500)]
Fix the targets variable in pc files

This is meant as a space-separated list of
string, so escaping the spaces is uncalled
for.

Fixes: #4486
4 years agoRequire meson 0.59
Matthias Clasen [Fri, 10 Dec 2021 16:34:23 +0000 (11:34 -0500)]
Require meson 0.59

This is needed to fix a regression in our pc file
generation.

4 years agoAdd a missing since tag
Matthias Clasen [Fri, 10 Dec 2021 13:26:59 +0000 (08:26 -0500)]
Add a missing since tag

gtk_text_child_anchor_new_with_replacement was
recently added.

4 years agoFix dialog-less printing
Matthias Clasen [Wed, 1 Dec 2021 03:07:02 +0000 (22:07 -0500)]
Fix dialog-less printing

We were sometimes ending printer enumeration prematurely,
and the code was confused about the meaning of found_printer.

The new setup follows these rules:
- We *only* end the search prematurely if found_printer
  is set, which indicates that we found the right printer
- We *always* call find_printer_idle exactly once, and
  make it return less than perfect matches like the
  default printer, or the first printer we found

Fixes: #4439
4 years agoMerge branch 'wip/jimmac/unfocused-selection-dejavu' into 'main'
Matthias Clasen [Fri, 10 Dec 2021 13:17:32 +0000 (13:17 +0000)]
Merge branch 'wip/jimmac/unfocused-selection-dejavu' into 'main'

Revert "styling: Have unfocused selections"

Closes #4393

See merge request GNOME/gtk!4228

4 years agoselections: have unfocused state
Jakub Steiner [Fri, 10 Dec 2021 11:00:12 +0000 (12:00 +0100)]
selections: have unfocused state

- text selections for unfocused elements - textview, label, entry,
  spinbutton

fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/4393

4 years agoRevert "styling: Have unfocused selections"
Jakub Steiner [Fri, 10 Dec 2021 10:36:10 +0000 (11:36 +0100)]
Revert "styling: Have unfocused selections"

This reverts commit 96f63a6bf343d1f2fbdbcbdaca9835fa675351dc.

4 years agoMerge branch 'bilelmoussaoui/header' into 'main'
Matthias Clasen [Thu, 9 Dec 2021 23:50:21 +0000 (23:50 +0000)]
Merge branch 'bilelmoussaoui/header' into 'main'

gdk: drop removed method from the header

See merge request GNOME/gtk!4225

4 years agoMerge branch 'wip/chergert/fix-macos-crash' into 'main'
Matthias Clasen [Thu, 9 Dec 2021 23:49:39 +0000 (23:49 +0000)]
Merge branch 'wip/chergert/fix-macos-crash' into 'main'

macos: fix crash in imcontextquartz

See merge request GNOME/gtk!4226

4 years agogdk: drop removed method from the header
Bilal Elmoussaoui [Thu, 9 Dec 2021 20:29:17 +0000 (20:29 +0000)]
gdk: drop removed method from the header

4 years agomacos: fix crash in imcontextquartz
Christian Hergert [Thu, 9 Dec 2021 20:26:33 +0000 (12:26 -0800)]
macos: fix crash in imcontextquartz

4 years agoMerge branch 'fix-picture-natural-size-0' into 'main'
Benjamin Otte [Wed, 8 Dec 2021 19:33:28 +0000 (19:33 +0000)]
Merge branch 'fix-picture-natural-size-0' into 'main'

picture: Return natural size 0 for size 0

See merge request GNOME/gtk!4177

4 years agoreftests: Add center-center reftests without GtkOverlay
Benjamin Otte [Wed, 8 Dec 2021 18:09:29 +0000 (19:09 +0100)]
reftests: Add center-center reftests without GtkOverlay

4 years agoreftests: Rename a bunch of tests
Benjamin Otte [Wed, 8 Dec 2021 17:14:59 +0000 (18:14 +0100)]
reftests: Rename a bunch of tests

They use a GtkOverlay, so reflect that in the name.

4 years agopicture: Return natural size 0 for size 0
Ivan Molodetskikh [Fri, 19 Nov 2021 13:26:07 +0000 (16:26 +0300)]
picture: Return natural size 0 for size 0

It was returning the full natural size (same as -1) due to default value
handling in the code below.

Tests have been updated to match this output.

4 years agoMerge branch 'wip/chergert/fix-recursive-action-muxer' into 'main'
Matthias Clasen [Wed, 8 Dec 2021 10:47:40 +0000 (10:47 +0000)]
Merge branch 'wip/chergert/fix-recursive-action-muxer' into 'main'

actionmuxer: avoid duplicate and recursive work

Closes #4422, #4519, and gnome-text-editor#220

See merge request GNOME/gtk!4223

4 years agoMerge branch 'wip/chergert/layout-marshaller' into 'main'
Matthias Clasen [Wed, 8 Dec 2021 10:46:35 +0000 (10:46 +0000)]
Merge branch 'wip/chergert/layout-marshaller' into 'main'

surface: add missing va_marshaller for layout signal

See merge request GNOME/gtk!4221

4 years agoMerge branch 'wip/chergert/reduce-action-muxer-allocations' into 'main'
Matthias Clasen [Wed, 8 Dec 2021 10:45:56 +0000 (10:45 +0000)]
Merge branch 'wip/chergert/reduce-action-muxer-allocations' into 'main'

menutracker: reduce allocations and signal emission

See merge request GNOME/gtk!4222

4 years agoactionmuxer: avoid duplicate and recursive work
Christian Hergert [Wed, 8 Dec 2021 08:31:49 +0000 (00:31 -0800)]
actionmuxer: avoid duplicate and recursive work

If we've already done the tracking into the parent muxer, there is no need
to do it again. This can save a great deal of recursive work when adding
items to the muxer.

This makes showing the context menu in gnome-text-editor repeatedly fast
even as spelling corrections are changed.

It is likely that this could fix #4422 as well.

Fixes #4519
Fixes https://gitlab.gnome.org/GNOME/gnome-text-editor/-/issues/220

4 years agomenutracker: reduce allocations and signal emission
Christian Hergert [Wed, 8 Dec 2021 06:33:20 +0000 (22:33 -0800)]
menutracker: reduce allocations and signal emission

When handling action-added callbacks the code was previously using a
freeze_notify/thaw_notify in all cases. This turns out to allocate a
significant amount of memory when called a lot.

That said, it shouldn't be getting called this much but given the current
state of affairs elsewhere in GtkActionMuxer, this brought temporary
allocations down from 9MiB to 9KiB in gnome-text-editor after showing
the context menu a few times.

Related #4422

4 years agosurface: add missing va_marshaller for layout signal
Christian Hergert [Wed, 8 Dec 2021 06:21:19 +0000 (22:21 -0800)]
surface: add missing va_marshaller for layout signal

I saw this coming across through a ffi boundary in Sysprof, and we wanted
to keep most things within GDK using native marshalling to improve
profiler results when frame pointers are not used.

4 years agoMerge branch 'wip/otte/viewport' into 'main'
Benjamin Otte [Tue, 7 Dec 2021 23:31:06 +0000 (23:31 +0000)]
Merge branch 'wip/otte/viewport' into 'main'

viewport: Handle things differently

See merge request GNOME/gtk!4220

4 years agoviewport: Allocate properly
Benjamin Otte [Tue, 7 Dec 2021 23:12:35 +0000 (00:12 +0100)]
viewport: Allocate properly

Instead of allocation width for height for width for height or whatever
that code was doing, actually allocate the size we were given or the
requested size, whatever is larger.

4 years agoRevert "viewport: Actually report the size we're gonna allocate"
Benjamin Otte [Tue, 7 Dec 2021 22:52:21 +0000 (23:52 +0100)]
Revert "viewport: Actually report the size we're gonna allocate"

This reverts commit b8468af4117974fd2af14e863865f494b021f29c.

4 years agoMerge branch 'wip/otte/viewport' into 'main'
Benjamin Otte [Tue, 7 Dec 2021 21:19:58 +0000 (21:19 +0000)]
Merge branch 'wip/otte/viewport' into 'main'

viewport: Use array for member variables

See merge request GNOME/gtk!4219

4 years agoviewport: Actually report the size we're gonna allocate
Benjamin Otte [Tue, 7 Dec 2021 20:54:02 +0000 (21:54 +0100)]
viewport: Actually report the size we're gonna allocate

Don't just pass on measure() calls, but actually behave in the way we
behave during size allocate.

This should improve cases where GtkScrolledWindow is used with GTK_POLICY_NEVER.

4 years agoviewport: Use array for member variables
Benjamin Otte [Tue, 7 Dec 2021 20:25:37 +0000 (21:25 +0100)]
viewport: Use array for member variables

That way we can index them by orientation in future commits.

4 years agoMerge branch 'wip/otte/for-main' into 'main'
Benjamin Otte [Tue, 7 Dec 2021 15:30:48 +0000 (15:30 +0000)]
Merge branch 'wip/otte/for-main' into 'main'

gtktypes: GTK_INVALID_LIST_POSITION should be an int

See merge request GNOME/gtk!4218

4 years agogtktypes: GTK_INVALID_LIST_POSITION should be an int
Benjamin Otte [Tue, 7 Dec 2021 15:15:17 +0000 (16:15 +0100)]
gtktypes: GTK_INVALID_LIST_POSITION should be an int

GListModel uses guint, so the macros we define for it should match that.

Related: !3738

4 years agoMerge branch 'gi-const' into 'main'
Emmanuele Bassi [Tue, 7 Dec 2021 14:22:40 +0000 (14:22 +0000)]
Merge branch 'gi-const' into 'main'

gtk: fix GTK_INVALID_LIST_POSITION type

See merge request GNOME/gtk!3738

4 years agoUpdate Portuguese translation
Hugo Carvalho [Sat, 4 Dec 2021 19:46:16 +0000 (19:46 +0000)]
Update Portuguese translation

4 years agoUpdate Ukrainian translation
Yuri Chornoivan [Sat, 4 Dec 2021 16:46:08 +0000 (16:46 +0000)]
Update Ukrainian translation

4 years agoMerge branch 'check-for-unknown-duration' into 'main'
Benjamin Otte [Sat, 4 Dec 2021 09:45:34 +0000 (09:45 +0000)]
Merge branch 'check-for-unknown-duration' into 'main'

gstmediafile: Correctly report unknown duration

See merge request GNOME/gtk!4217

4 years agoUpdate Swedish translation
Anders Jonsson [Sat, 4 Dec 2021 09:34:37 +0000 (09:34 +0000)]
Update Swedish translation

4 years agogstmediafile: Correctly report unknown duration
Ivan Molodetskikh [Sat, 4 Dec 2021 08:48:30 +0000 (11:48 +0300)]
gstmediafile: Correctly report unknown duration

When loading .mp3 files the duration is initially unknown. Before this
change it was reported as a large integer (since GST_CLOCK_TIME_NONE is
-1). Now it's correctly reported as 0.

4 years agoMerge branch 'wip/carlosg/im-wayland-module-priority' into 'main'
Matthias Clasen [Fri, 3 Dec 2021 23:55:31 +0000 (23:55 +0000)]
Merge branch 'wip/carlosg/im-wayland-module-priority' into 'main'

gtkimcontextwayland: Set a higher IO extension priority

Closes #4443

See merge request GNOME/gtk!4216

4 years agogtkimcontextwayland: Set a higher IO extension priority
Carlos Garnacho [Fri, 3 Dec 2021 23:15:54 +0000 (00:15 +0100)]
gtkimcontextwayland: Set a higher IO extension priority

We want this to take precedence in the wayland platform to other
modules that might be loaded via the IO extension point. None of
those is going to bode well in this platform.

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4443
4 years agoMerge branch 'wip/hadess/listbox-fixes' into 'main'
Matthias Clasen [Fri, 3 Dec 2021 23:05:13 +0000 (23:05 +0000)]
Merge branch 'wip/hadess/listbox-fixes' into 'main'

listbox: Explain behaviour of GtkListBoxCreateWidgetFunc

See merge request GNOME/gtk!4194

4 years agoMerge branch 'wip/chergert/inspector-im-module' into 'main'
Matthias Clasen [Fri, 3 Dec 2021 22:51:32 +0000 (22:51 +0000)]
Merge branch 'wip/chergert/inspector-im-module' into 'main'

inspector: add im-module

Closes #4512

See merge request GNOME/gtk!4214

4 years agoMerge branch 'textview-im-surrounding' into 'main'
Matthias Clasen [Fri, 3 Dec 2021 20:26:54 +0000 (20:26 +0000)]
Merge branch 'textview-im-surrounding' into 'main'

textview: Provide more context to input methods

See merge request GNOME/gtk!4209

4 years agoinspector: add im-module
Christian Hergert [Fri, 3 Dec 2021 20:11:25 +0000 (12:11 -0800)]
inspector: add im-module

This adds a new row to the Global/Information section which displays the
GTK im-module that is likely to be in use unless changed by an application.
It responds to updates of GtkSettings:gtk-im-module unless the
GTK_IM_MODULE environment variable is set.

Fixes #4512

4 years agoMerge branch 'text-scroll-test' into 'main'
Matthias Clasen [Fri, 3 Dec 2021 20:00:05 +0000 (20:00 +0000)]
Merge branch 'text-scroll-test' into 'main'

Improve scroll-to mark behavior

Closes #4325

See merge request GNOME/gtk!4208

4 years agotextview: Provide more context to input methods
Matthias Clasen [Thu, 2 Dec 2021 03:38:19 +0000 (22:38 -0500)]
textview: Provide more context to input methods

When returning surrounding context to input methods,
include at least 2 words before and after the insertion
point.

Update the affected input method tests.

4 years agoMerge branch 'text-anchor-replacement-char' into 'main'
Matthias Clasen [Fri, 3 Dec 2021 16:02:49 +0000 (16:02 +0000)]
Merge branch 'text-anchor-replacement-char' into 'main'

textchildanchor: allow to specify replacement character

See merge request GNOME/gtk!4213

4 years agotextchildanchor: allow to specify replacement character
Georg Vienna [Fri, 3 Dec 2021 16:02:48 +0000 (16:02 +0000)]
textchildanchor: allow to specify replacement character

4 years agoMerge branch 'better-tabs-demo' into 'main'
Matthias Clasen [Fri, 3 Dec 2021 13:30:22 +0000 (13:30 +0000)]
Merge branch 'better-tabs-demo' into 'main'

Beef up the tabs demo

See merge request GNOME/gtk!4200

4 years agoBeef up the tabs demo
Matthias Clasen [Mon, 29 Nov 2021 14:25:32 +0000 (09:25 -0500)]
Beef up the tabs demo

Show various alignments, including numeric.

4 years agoMerge branch 'gtk4-win32-egl' into 'main'
Benjamin Otte [Fri, 3 Dec 2021 10:48:50 +0000 (10:48 +0000)]
Merge branch 'gtk4-win32-egl' into 'main'

Fix running GTK4 under EGL on Windows

See merge request GNOME/gtk!4188

4 years agogskglcompiler.c: Force GLSL version 300 es as needed
Chun-wei Fan [Tue, 23 Nov 2021 10:22:55 +0000 (18:22 +0800)]
gskglcompiler.c: Force GLSL version 300 es as needed

For libANGLE to work with our shaders, we must use "300 es" for
the #version directive in our shaders, as well as using the non-legacy/
non-GLES codepath in the shaders.  In order to check whether we are
using the GLSL 300 es shaders, we check whether we are using a GLES 3.0+
context.  As a result, make ->glsl_version a const char* and make sure
the existing shader version macros are defined apprpriately, and add a
new macro for the "300 es" shader version string.

This will allow the gtk4 programs to run under Windows using EGL via
libANGLE.  Some of the GL demos won't work for now, but at least this
makes things a lot better for using GL-accelerated graphics under Windows
for those that want to or need to use libANGLE (such as those with
graphics drivers that aren't capable of our Desktop (W)GL requirements in
GTK.

4 years agogdksurface-win32.c: Call gdk_surface_set_egl_native_window()
Chun-wei Fan [Tue, 23 Nov 2021 08:19:34 +0000 (16:19 +0800)]
gdksurface-win32.c: Call gdk_surface_set_egl_native_window()

.. when creating the surface (with the HWND associated with the
newly-created surface) as well as destroying the surface (with NULL,
since the HWND is going to be destroyed), so that we can tie the EGL
calls to the HWND that we want to do the EGL stuff.

4 years agoBump pango req
Matthias Clasen [Mon, 29 Nov 2021 14:27:00 +0000 (09:27 -0500)]
Bump pango req

Require pango 1.50.

4 years agoMerge branch 'issue-4376' into 'main'
Matthias Clasen [Thu, 2 Dec 2021 17:38:16 +0000 (17:38 +0000)]
Merge branch 'issue-4376' into 'main'

Update placeholder visibility when setting a buffer

Closes #4376

See merge request GNOME/gtk!4211

4 years agoUpdate placeholder visibility when setting a buffer
Emmanuele Bassi [Thu, 2 Dec 2021 17:17:12 +0000 (17:17 +0000)]
Update placeholder visibility when setting a buffer

If we set the placeholder text before setting a buffer, we end up with
both the placeholder *and* the buffer's contents visible at the same
time.

Fixes: #4376
4 years agoMerge branch 'wip/carlosg/tablet-fixes' into 'main'
Matthias Clasen [Thu, 2 Dec 2021 16:34:35 +0000 (16:34 +0000)]
Merge branch 'wip/carlosg/tablet-fixes' into 'main'

Wayland tablet device modifier fixes

Closes #4103 and #4102

See merge request GNOME/gtk!4210

4 years agogesturestylus: Use GtkEventControllerEvent events to track changes
Carlos Garnacho [Thu, 2 Dec 2021 16:00:10 +0000 (17:00 +0100)]
gesturestylus: Use GtkEventControllerEvent events to track changes

We use gtk_gesture_get_last_event() underneath at places that need to
work during ::proximity emission. Since GtkGesture only tracks events
while there are button/touch presses involved, this is not going to
bring the right result there.

Use gtk_event_controller_get_current_event() consistently inside,
which always pokes at the event being handled (which is the correct
intent here).

4 years agogdk/wayland: Unset GDK_BUTTON1_MASK on proximity_in
Carlos Garnacho [Thu, 2 Dec 2021 15:53:47 +0000 (16:53 +0100)]
gdk/wayland: Unset GDK_BUTTON1_MASK on proximity_in

In some circumstances (e.g. activating with a stylus something that
closes a window), we can receive zwp_tablet_tool.proximity_out without
receiving a zwp_tablet_tool.up beforehand.

In those cases, we are not expecting neither .up nor .button, so
reset the stylus device button modifiers on proximity_out.

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4103
4 years agogdk/wayland: Use right modifiers for tablet button events
Carlos Garnacho [Thu, 2 Dec 2021 15:19:16 +0000 (16:19 +0100)]
gdk/wayland: Use right modifiers for tablet button events

We are looking up the seat logical pointer modifiers (i.e. the wl_pointer),
not the ones for the tablet tool device. This breaks accounting further
along in GTK leaving stuck implicit grabs.

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4102
4 years agotextview: Improve scroll-to-mark behavior
Matthias Clasen [Thu, 2 Dec 2021 00:35:11 +0000 (19:35 -0500)]
textview: Improve scroll-to-mark behavior

The idea of within-margin is to scroll as little
as possible to bring the mark within the margins
defined by the factor. The code was achieving
that when scrolling down, but not when scrolling
up. This change makes things symmetrical.

Fixes: #4325
4 years agoAdd a testcase for scroll-to-mark
Matthias Clasen [Wed, 1 Dec 2021 22:20:52 +0000 (17:20 -0500)]
Add a testcase for scroll-to-mark

This should help for figuring out #4325.

4 years agoDeprecate GdkDevice:source
Matthias Clasen [Wed, 1 Dec 2021 19:04:35 +0000 (14:04 -0500)]
Deprecate GdkDevice:source

GdkDeviceTool is more consistently supported across
backends, and provides the same information.

4 years agoMerge branch 'matthiasc/for-main' into 'main'
Matthias Clasen [Wed, 1 Dec 2021 02:59:10 +0000 (02:59 +0000)]
Merge branch 'matthiasc/for-main' into 'main'

textbuffer: Fix pasting text

Closes #4357

See merge request GNOME/gtk!4205

4 years agotextbuffer: Try harder to fix pasting
Matthias Clasen [Wed, 1 Dec 2021 02:42:19 +0000 (21:42 -0500)]
textbuffer: Try harder to fix pasting

It turns out we can't just use the size returned
by the memory stream as-is, since it may contain
unfilled garbage at the end, which utf8 validation
will choke on. So, cut it off at the first '\0'
we find.

4 years agotextbuffer: Fix pasting text
Matthias Clasen [Wed, 1 Dec 2021 01:37:25 +0000 (20:37 -0500)]
textbuffer: Fix pasting text

The memory stolen from a memory outputstream
isn't guaranteed to be 0-terminated, so don't
make that assumption.

Fixes: #4357
4 years agoMerge branch 'update_focus_indicators_in_popovers' into 'main'
Matthias Clasen [Wed, 1 Dec 2021 01:21:32 +0000 (01:21 +0000)]
Merge branch 'update_focus_indicators_in_popovers' into 'main'

update focus indicators in popovers

See merge request GNOME/gtk!4124