Compare commits

...

1101 Commits

Author SHA1 Message Date
Daniel Boles 5cc7ce0ef0 Expander: Fix parent map caused input to collapsed
…child, because we were not calling update_child_mapped(), so the hidden
child still floated in the aether silently waiting to wrongly take input

Close https://gitlab.gnome.org/GNOME/gtk/-/issues/2069
2023-04-29 21:58:00 +01:00
Matthias Clasen 90472dc481 Merge branch 'application-signal-cleanup-for-3' into 'gtk-3-24'
Fix a crash

See merge request GNOME/gtk!5887
2023-04-29 11:28:00 +00:00
Matthias Clasen a76ae3eb85 Fix a crash
Fix an oversight from fc1643956b.
2023-04-29 06:40:50 -04:00
Matthias Clasen de1660132e Merge branch 'application-signal-cleanup-for-3' into 'gtk-3-24'
application: Clean up signal handlers

See merge request GNOME/gtk!5871
2023-04-26 12:38:22 +00:00
Matthias Clasen fc1643956b application: Clean up signal handlers
This is the right thing to do and might help for #5775.
2023-04-26 14:09:44 +02:00
Yosef Or Boczko 2a7877277e Update Hebrew translation 2023-04-21 09:12:18 +00:00
Fran Dieguez 4986c622c1 Update Galician translation 2023-04-13 16:57:52 +00:00
Мирослав Николић b6dc66159d Update Serbian translation 2023-04-09 11:36:47 +00:00
Alexander Shopov d3aaf9ed03 Update Bulgarian translation 2023-04-07 16:28:17 +00:00
Luca Bacci 048d23c36d Merge branch 'ole2-dnd-check-for-move' into 'gtk-3-24'
OLE2 DND: Check if move is supported

See merge request GNOME/gtk!5748
2023-04-06 12:46:11 +00:00
Luca Bacci 71fcbce0d7 OLE2 DND: Check if move is supported 2023-04-06 14:18:30 +02:00
Nart Tlisha afeded7e95 Update Abkhazian translation 2023-04-05 09:38:22 +00:00
Nart Tlisha f0c12ee7b8 Update Abkhazian translation 2023-04-05 09:03:53 +00:00
Danial Behzadi d6f42d167a Update Persian translation 2023-04-03 12:54:19 +00:00
Aleksandr Melman 7f74f15b5e Update Russian translation 2023-04-03 07:28:04 +00:00
Aurimas Černius 77216107dd Update Lithuanian translation 2023-04-02 19:44:42 +00:00
Matthias Clasen 66a94161bd Merge branch 'gtk-3-24' into 'gtk-3-24'
Address regression in 3.24.37 (issue 5711) by checking that the context is not NULL.

See merge request GNOME/gtk!5754
2023-03-30 23:35:56 +00:00
Phil Stopford 60d197fca8 Address issue 5711 by checking that the context is not NULL. 2023-03-30 22:34:55 +00:00
Matthias Clasen b497382659 Merge branch 'mcatanzaro/fix-xdg-activation' into 'gtk-3-24'
wayland: Don't crash without xdg_activation_v1

See merge request GNOME/gtk!5743
2023-03-29 01:08:39 +00:00
Michael Catanzaro d8190aae3f wayland: Don't crash without xdg_activation_v1
This backports 3cdb639210 to GTK 3.

See: #5701
2023-03-28 19:42:53 -05:00
Matthias Clasen 1afbe2d08b Merge branch 'backport-mr-5721' into 'gtk-3-24'
wayland: Don't crash on cursor size 0 (Backport !5721)

See merge request GNOME/gtk!5739
2023-03-28 18:05:39 +00:00
Matthias Clasen ff892684c8 wayland: Don't crash on cursor size 0
The cursor-theme-size setting is documented as
'0 means the default size'. Make it so by using
size 24 if we see a 0. Its better than crashing.

Fixes: #5700
(cherry picked from commit 7adbbe6f35)
2023-03-28 18:38:34 +02:00
Matthias Clasen 433356856e Merge branch 'notify-initial-setting-change' into 'gtk-3-24'
gdkscreen-wayland: Notify initial setting change from org.gtk.Settings

See merge request GNOME/gtk!5733
2023-03-28 13:56:55 +00:00
Gaël Bonithon a40126e1f9 gdkscreen-wayland: Notify initial setting change from org.gtk.Settings 2023-03-27 22:08:59 +02:00
Emin Tufan Çetin 58b91ca254 Update Turkish translation 2023-03-27 12:19:30 +00:00
Guillaume Bernard 2c3388112e Update French translation 2023-03-27 08:48:03 +00:00
Matthias Clasen b5f27d2e9c Merge branch 'ebassi/issue-5691' into 'gtk-3-24'
gdk: Swap Cairo calls when reading back from a GdkWindow

See merge request GNOME/gtk!5727
2023-03-26 15:19:23 +00:00
Emmanuele Bassi bda80c4e41 docs: Try to steer people away from gdk_pixbuf_get_from_window()
It's a bad function, and people should feel bad about using it.
2023-03-26 15:59:14 +01:00
Emmanuele Bassi 789d202720 gdk: Swap Cairo calls when reading back from a GdkWindow
First we flush the surface, then we mark it dirty.

Don't look at me: this makes sense in Cairo, apparently.

Fixes: #5691
2023-03-26 15:57:56 +01:00
Nathan Follens 2e09856d63 Update Dutch translation 2023-03-26 13:25:07 +00:00
Asier Sarasua Garmendia 1ce6c7f73c Update Basque translation 2023-03-26 08:31:38 +00:00
Jordi Mas 3bf883b979 Update Catalan translation 2023-03-26 08:48:06 +02:00
Kukuh Syafaat ac882269a5 Update Indonesian translation 2023-03-26 06:40:13 +00:00
John Ralls f2c8b8b0d2 Merge branch 'issue5593' into gtk-3-24 2023-03-25 13:41:08 -07:00
Alexander Shopov 007299ccc8 Update Bulgarian translation 2023-03-25 17:26:16 +00:00
Matthias Clasen 8e48e6548b Merge branch 'doc-link-fixes' into 'gtk-3-24'
docs: Fix some links

See merge request GNOME/gtk!5718
2023-03-25 14:20:24 +00:00
Matthias Clasen 19c2e87627 docs: Fix some links
The links to the overview sections were all broken.
Fix them.
2023-03-25 10:09:00 -04:00
Balázs Úr da15d2186b Update Hungarian translation 2023-03-24 23:40:51 +00:00
Hugo Carvalho 06e8cf40f9 Update Portuguese translation 2023-03-24 22:49:36 +00:00
Christian Kirbach 00296bde4d Update German translation 2023-03-24 22:47:48 +00:00
Anders Jonsson 0302894039 Update Swedish translation 2023-03-24 22:30:52 +00:00
Piotr Drąg cfe2a829f1 Update Polish translation 2023-03-24 17:51:41 +01:00
Yuri Chornoivan af9bea059a Update Ukrainian translation 2023-03-24 13:07:48 +00:00
Martin c74c4adbce Update Slovenian translation 2023-03-24 08:45:13 +00:00
Ekaterine Papava 74540525c7 Update Georgian translation 2023-03-24 05:10:33 +00:00
Matthias Clasen 2ebdce8633 Merge branch 'wip/jtojnar/inspector-immodule-backport' into 'gtk-3-24'
inspector: Add pango backend and im module

See merge request GNOME/gtk!5706
2023-03-24 03:03:59 +00:00
Christian Hergert c26a209283 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

(cherry picked from commit 6be352f446)
2023-03-23 21:26:33 +01:00
John Ralls 33fd9eb472 [quartz] Convert frame_link, windows_awaiting_frame to GSList.
We were't using GList's prev member; worse, we weren't setting it
and that broke g_list_remove_link so that the link wasn't removed
in _gdk_quartz_display_remove_frame_callback.

Closes #5593
2023-03-23 11:44:33 -07:00
Matthias Clasen 22dd7189bb inspector: Show the pango backend
(cherry picked from commit 7eb5dfd294)
2023-03-23 18:59:40 +01:00
Emmanuele Bassi f1b6556aac Merge branch 'fix-issue-5678' into 'gtk-3-24'
GdkWin32: Zero-out memory of an allocated struct

See merge request GNOME/gtk!5690
2023-03-21 11:29:04 +00:00
Luca Bacci 22b091047f GdkWin32: Zero-out memory of an allocated struct
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/5678
2023-03-21 10:50:09 +01:00
Changwoo Ryu a7ff289302 Update Korean translation 2023-03-15 10:04:25 +00:00
Daniel a4ceb296a6 Revert "Updated Spanish translation"
This reverts commit ec1551c854.
2023-03-14 12:41:15 +01:00
Daniel ec1551c854 Updated Spanish translation 2023-03-14 12:38:08 +01:00
Luca Bacci 7776052c46 Merge branch 'check-egl-support-at-runtime' into 'gtk-3-24'
GdkWin32GLContext: Check availability of EGL at runtime

See merge request GNOME/gtk!5629
2023-03-13 17:51:03 +00:00
Luca Bacci 8a5619d981 Merge branch 'windows-gles-debug-fix' into 'gtk-3-24'
gdkglcontext-win32.c: Fix running under GLES with GDK_DEBUG=opengl

See merge request GNOME/gtk!5622
2023-03-13 17:50:45 +00:00
Matthias Clasen 2e299d3808 Merge branch 'ebassi/gtk3-file-attrs' into 'gtk-3-24'
Check for attribute availability before accessing it

See merge request GNOME/gtk!5645
2023-03-13 13:13:08 +00:00
Emmanuele Bassi c1fa916e88 Check for attribute availability before accessing it
Starting from GLib 2.76, the standard attribute getters in the GFileInfo
object will warn if the attribute is unset, instead of silently bailing
out and returning a default value.
2023-03-13 11:54:01 +00:00
Guillaume Bernard fb364dd84b Update French translation 2023-03-13 10:20:54 +00:00
Daniel 3e460253ad Updated Spanish translation 2023-03-13 10:50:33 +01:00
Matthias Clasen 6ea6391581 Merge branch 'dark_theme_caret_color_evince' into 'gtk-3-24'
dark theme: create $caret_color and use it

See merge request GNOME/gtk!5642
2023-03-13 07:40:54 +00:00
Nelson Benítez León 2c951f122d dark theme: create $caret_color and use it
Fixes Evince showing a dark caret when using
dark theme, which makes it almost invisible.

This is in css node "textview text" of Evince
annotation window (a GtkScrolledWindow).

We create a new $caret_color var based on
$text_color and use it accordingly.

Fixes evince#1842
2023-03-12 18:50:56 -04:00
Alexander Shopov 9dc0e6c4d0 Update Bulgarian translation 2023-03-12 18:37:37 +00:00
Alan Mortensen 7afaf5d2ae Update Danish translation 2023-03-11 14:56:00 +00:00
Luca Bacci cf3e037e64 GdkWin32GLContext: check for EGL support at runtime 2023-03-10 15:48:05 +01:00
Chun-wei Fan 2ebf7c29e1 gdkglcontext-win32.c: Fix running under GLES
...when GDK_DEBUG=opengl is enabled.  There was an extraneous "legacy: %s" in
the GDK_NOTE (OPENGL, g_message("...")) line that should not have been there,
due to a copy-and-paste mishap.  Get rid of it.
2023-03-09 11:14:58 +08:00
Matthias Clasen bc1f17972c Merge branch 'fix-filetransfer-mimetype' into 'gtk-3-24'
selection: Use the right mime type

See merge request GNOME/gtk!5604
2023-03-07 11:31:34 +00:00
Matthias Clasen 5fee632386 selection: Use the right mime type
The correct mime type for portal file transfers
is application/vnd.portal.filetransfer.

Fixes: #5643
2023-03-06 23:07:53 -05:00
Fran Dieguez 8a946fd1a4 Update Galician translation 2023-03-06 20:17:11 +00:00
Yosef Or Boczko b668e6d8a1 Update Hebrew translation 2023-03-04 18:47:16 +00:00
Matthias Clasen b2d761f706 Post-release version bump 2023-03-02 19:43:01 -05:00
Matthias Clasen 013b629a2e 3.24.37 2023-03-02 19:31:52 -05:00
Benjamin Otte b56202937a liststore: Fix gtk_list_store_iter_is_valid()
The iter may be invalid, so we may not read from it.

testsuite/gtk/treemodel tests this and valgrind is shouting about it,
but it never crashed until I just ran it...

This bug is from 2004 and the test is from 2007. I guess invalid memory
accesses don't get caught by CI much.
2023-03-02 19:29:42 -05:00
Matthias Clasen e38800ad3e NEWS: Updates 2023-03-02 19:21:26 -05:00
Matthias Clasen 6402137bbf impcontextsimple: Return from GTask
GLib complains about this now, so do it.
2023-03-02 19:18:34 -05:00
Matthias Clasen 24ea83e55e Stop using GTestDBus
It is causing tests to timeout when libraries we are using
leak bus connections, and it turns out our tests run fine
without a session bus.

Backport of 1b265a7971.
2023-03-02 19:18:34 -05:00
Matthias Clasen e2f2076bf2 Merge branch 'wip/carlosg/activation-regression-fix-3-24' into 'gtk-3-24'
gtkwindow: Fix fallbacks through xdg_activation_v1

See merge request GNOME/gtk!5581
2023-03-01 17:09:56 +00:00
Carlos Garnacho a3c604d5cc gtkwindow: Fix fallbacks through xdg_activation_v1
When activating a window, avoid the "old" gdk_notify_startup_complete*()
API that does not fallback into xdg_activation on wayland (as this is still
deferred here until show vs present happens on the surface). This was
mistakenly changed wrt the original commit backported from GTK4.

Fixes: a067938589 ("gtkwindow: Minor refactor")
2023-03-01 17:14:01 +01:00
Matthias Clasen a1f0d64287 Merge branch 'file-transfer-portal-gtk3' into 'gtk-3-24'
selection: Support the file transfer portal

See merge request GNOME/gtk!5554
2023-02-26 21:25:26 +00:00
Matthias Clasen 8562476872 Mention file transfer in the NEWS 2023-02-25 08:41:07 -05:00
Matthias Clasen 6de506f277 Add a test client for file transfer portal 2023-02-25 08:41:07 -05:00
Matthias Clasen 9f81db139d selection: Support the file transfer portal
When the selection target is application/vnd.portal.files,
send files through the file transfer portal.
2023-02-25 08:41:07 -05:00
Matthias Clasen bae6a37ed9 Belated post-release bump 2023-02-25 08:05:42 -05:00
Luca Bacci 20964a3fa6 Merge branch 'backport-mr-4620-to-gtk-3-24' into 'gtk-3-24'
GdkWin32: Mouse events fixes

See merge request GNOME/gtk!5493
2023-02-13 15:34:24 +00:00
Luca Bacci 53f8a2ef93 GdkWin32: Generate crossing event after button release
This is a backport of commit cb0c1b3f to gtk-3-24
2023-02-13 16:15:04 +01:00
Luca Bacci 783af2e3bf GdkWin32: Correct generation of crossing events when holding an implicit grab
This is a backport of commit 91f20016 to gtk-3-24
2023-02-13 16:14:54 +01:00
Matthias Clasen 8369148c3b Merge branch 'ebassi/issue-5482' into 'gtk-3-24'
Mark surface as dirty before flushing it

See merge request GNOME/gtk!5505
2023-02-12 20:04:04 +00:00
Emmanuele Bassi fba09dbfc7 Mark surface as dirty before flushing it
If we're trying to read back the contents of a GdkWindow that was
created from a foreign windowing system surface, we are going to
forcibly mark it as dirty before flushing the Cairo state.

To avoid regressing any further in the future of the 3.x branch, let's
leave a comment.

Fixes: #5482
2023-02-12 19:19:25 +00:00
John Ralls f931c73316 [quartz] Silence two compiler warnings.
One unused function, one return type mismatch.
2023-02-11 12:57:08 -08:00
John Ralls 312e5781f3 [quartz] Set the sRGB colorspace on the IOSurface.
Enables colorspace tranformation in Core Animation. This transform
is executed on the GPU and unlike the Core Graphics one has no
affect on performance.

Fixes #5579
2023-02-11 12:52:38 -08:00
Matthias Clasen 4fcf3b3a7d Merge branch 'gtk-3-24-focus-to-modal-parant-and-transient-for' into 'gtk-3-24'
Solution for focus loss problem for complex multi Window UI in Broadway backend

See merge request GNOME/gtk!3990
2023-02-10 11:37:49 +00:00
Matthias Clasen 1562ce4ebd Merge branch 'backport-mr-5489' into 'gtk-3-24'
Backport !5489 to gtk-3-24

See merge request GNOME/gtk!5490
2023-02-10 11:37:11 +00:00
Gaël Bonithon 857f734d83 searchengine: Emit a simple warning when tracker init failed
Failure is allowed by nature of GInitable, and this avoids unnecessary
crashing of programs running with G_DEBUG=fatal-criticals.

(cherry picked from commit 6215b38e64)
2023-02-09 23:21:04 +01:00
Gaël Bonithon 8497425535 searchengine: Add missing sanity check
(cherry picked from commit 41490f9624)
2023-02-09 23:20:47 +01:00
Piotr Drąg 3fd14b444a Update POTFILES.in 2023-02-04 16:14:22 +01:00
Matthias Clasen dbdfac0310 Merge branch 'wip/carlosg/no-legacy-im-3-24' into 'gtk-3-24'
input: Drop legacy text input module

See merge request GNOME/gtk!5476
2023-02-04 12:37:03 +00:00
Carlos Garnacho 11c4cc235f input: Drop legacy text input module
This wayland protocol was merely some scaffolding until the
text_input protocol shaped up and took over. Nowadays this
could only ever help with really old versions of Mutter
(pre 3.28). This can be simply removed nowadays.
2023-02-04 10:17:50 +00:00
Matthias Clasen 5554113c74 Merge branch 'gtk-3-24' into 'gtk-3-24'
Fixes incorrect grabbing behaviour causing subsequent rejection of input

See merge request GNOME/gtk!5212
2023-01-28 17:46:05 +00:00
hrdl 15f0ac6f93 Remove warning 2023-01-28 14:20:49 +01:00
Matthias Clasen 37ea15e81f Merge branch 'revert-5aaa373b' into 'gtk-3-24'
Revert "Revert "wayland: Add support for gtk_surface1_titlebar_gesture()""

See merge request GNOME/gtk!5452
2023-01-28 12:59:27 +00:00
Alexander Mikhaylenko 384d9a75cd Revert "Revert "wayland: Add support for gtk_surface1_titlebar_gesture()""
This reverts commit 5aaa373b70
2023-01-28 09:41:34 +00:00
Matthias Clasen b24e43a1f7 Merge branch 'revert-titlebar-gestures' into 'gtk-3-24'
Revert "wayland: Add support for gtk_surface1_titlebar_gesture()"

See merge request GNOME/gtk!5451
2023-01-28 03:03:51 +00:00
Matthias Clasen 5aaa373b70 Revert "wayland: Add support for gtk_surface1_titlebar_gesture()"
This reverts commit 45ba6e9329.

This caused regressions in libhandy-using applications.

Fixes: #5389
2023-01-27 21:34:44 -05:00
Carlos Garnacho 13647e0144 Merge branch 'fix-xdg-activation-set-surface-gtk-3-24' into 'gtk-3-24'
Backport "gdk/wayland: set requesting surface to xdg-activation" to gtk-3-24

See merge request GNOME/gtk!5398
2023-01-27 19:05:39 +00:00
Matthias Clasen a23dfcd4c1 Merge branch 'gl-sync-gtk3' into 'gtk-3-24'
gl: Synchronize when calling MakeCurrent

See merge request GNOME/gtk!5448
2023-01-27 16:21:21 +00:00
Joan Bruguera 41827d9f72 gdk/wayland: set requesting surface to xdg-activation
The argument to xdg_activation_token_v1_set_surface is documented to be the
surface requesting the activation, not the surface to be activated, which is
given later when calling xdg_activation_v1_activate.
(c.f. https://gitlab.freedesktop.org/wayland/wayland-protocols/-/commit/36cee4bdbcaf3a75f567315809953b5e21d703da)

Use the same logic as in gdk_wayland_app_launch_context_get_startup_notify_id,
i.e. if we have a surface with focus, set that, otherwise set NULL.

This fixes requesting urgent/focus on wlroots (compositors like Sway, etc.),
which was blocked as the surface requesting the activation didn't have focus.

Backport of: 43c1a433aa

Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
2023-01-27 14:53:41 +00:00
Matthias Clasen 9811485990 gl: Synchronize when calling MakeCurrent
When making out GL context current, wait
until the GPU is done with commands from
the previous context.

Fixes: #5517
2023-01-27 07:09:34 -05:00
Matthias Clasen b6795f8ff9 Merge branch 'wip/carlosg/startup-vs-focus-3-24' into 'gtk-3-24'
Consider startup vs focus requests for the Wayland platform [3.24]

See merge request GNOME/gtk!5443
2023-01-25 13:09:17 +00:00
Carlos Garnacho 79e11bed1a gtkapplication: Do not call gdk_display_notify_startup_complete()
This should do nothing worthwhile anymore, the X11/Wayland GtkApplication
implementations do already pass the startup ID from the platform_data
via windowing specific APIs, and the application handling the request
via show()/present() should trigger the activation request.

(cherry-picked from commit 3526d8b299)
2023-01-25 11:22:40 +01:00
Carlos Garnacho 2a47038635 gtkwindow: Shuffle gdk_window_set_startup_id() calls
While this used to be tangential to windows showing or requesting
focus, the xdg-activation Wayland protocol does merge both concepts
together.

But also, for a correct interaction with the compositor, the
toolkit should ideally merge the activation request resulting from
both into the same one, so that the gdk_window_focus() request
replies to the startup token that started the application and
correct focus-stealing prevention/etc happens, instead making up
one just in time for the focus request.

This kind of requires doing things in the right order, a show()
request on the GtkWindow should activate any pending activation
token on the toplevel, a present() request should additionally
create a new token if there was none pending. And
xdg_activation_v1_activate() should happen once on both.

Shuffle the gdk_window_set_startup_id() calls so that this
happens in the right order for Wayland, while making X11 happy
too.

(cherry-picked from commit e8adfa2a88)
2023-01-25 11:22:40 +01:00
Carlos Garnacho 6ccd786a93 gdk/x11: Emit "remove" s-n message from gdk_toplevel_set_startup_id
In the way towards deprecating gdk_display_notify_startup_complete(),
make gdk_toplevel_set_startup_id() on X11 perform this piece of messaging
itself. It should be harmless that the message is emitted twice, if
callers do still use that API.

(cherry-picked from commit 7fab1b85ad)
2023-01-25 11:22:40 +01:00
Carlos Garnacho f5a5480fe2 gdk/wayland: Perform xdg_activation on gdk_window_set_startup_id
This call has everything to perform activation as specified by the
xdg_activation protocol, notably a surface to activate as opposed to
gdk_notify_startup_complete().

Make activation happen here, so that the surface gets activated when
its gets a startup ID assigned.

(cherry-picked from commit 5aeabdb3d4)
2023-01-25 11:22:40 +01:00
Carlos Garnacho a067938589 gtkwindow: Minor refactor
Move the handling of the startup ID to a separate function, since
this will be called from several places.

(cherry-picked from commit 6f01f846dc)
2023-01-25 11:22:40 +01:00
Matthias Clasen 1a17e71432 Merge branch 'fix-unscaled-fallback-icon' into 'gtk-3-24'
Take UI scale into acount when loading "image-missing" fallback

See merge request GNOME/gtk!5438
2023-01-22 00:01:07 +00:00
Brian J. Tarricone 89c7d5fe4b Take UI scale into acount when loading "image-missing" fallback
Fallback icons loaded were loading at half size (for a 2x scale) and for
cases where it mattered, were being positioned off-center.
2023-01-21 12:47:40 -08:00
Aurimas Černius 128cdaa113 Update Lithuanian translation 2023-01-19 21:09:54 +00:00
John Ralls f60359c183 [quartz] GdkWindow, GdkNSView frame and cairo surface same size.
The cairo surface must be padded to 4 pixels in order to
transfer correctly to the GPU. The GdkWindow and GdkNSView's
content frame must be the same width, otherwise there's a mismatch
that causes either the GdkWindow to draw wider than the frame or the
frame to be clipped narrower than the title bar.

Fixes #5535.
2023-01-19 10:37:55 -08:00
Matteo Percivaldi 6a2fb84446 gtkcssanimatedstyle: Fix return of new_advance()
This was causing animation and transition to stop randomly and reset
their state to initial state.

This issue has existed since commit
7b68bdb831.

Closes #4426
2023-01-13 15:20:01 -05:00
Emin Tufan Çetin 7a9f88ee48 Update Turkish translation 2023-01-11 06:57:09 +00:00
Matthias Clasen f2a8878570 Merge branch 'win-file-ext-3-24' into 'gtk-3-24'
Backport "filechoosernativewin32: Set default extension"

See merge request GNOME/gtk!5403
2023-01-08 12:57:00 +00:00
robxnano c1aec7f100 filechoosernativewin32: Set default extension
Setting the default extension before a filter is selected allows
the IFileDialog to automatically change the extension when the
filter is changed. See:
https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-setdefaultextension
2023-01-07 18:21:54 +00:00
John Ralls 10689066e3 [quartz] Fix typo to call function. 2023-01-06 10:13:02 -08:00
Nart Tlisha a5198dd935 Update Abkhazian translation 2023-01-05 12:36:09 +00:00
Nart Tlisha 459f5537b3 Update Abkhazian translation 2023-01-05 12:24:58 +00:00
Emmanuele Bassi f1471ea033 Merge branch 'fix-4913-for-gtk3' into 'gtk-3-24'
Treat XKB_MOD_NAME_LOGO as super key

See merge request GNOME/gtk!5387
2023-01-03 18:07:17 +00:00
Thomas Jost 0f55e9552f Treat XKB_MOD_NAME_LOGO as super key
Loosely based on !5304, which fixes #4913 for GTK3.
2023-01-03 17:09:04 +01:00
Thomas Jost 7a41da3a6e tests: make accel tests easier to debug 2023-01-03 16:58:18 +01:00
Matthias Clasen 8a76236f13 Merge branch 'gtk-3-24' into 'gtk-3-24'
build: Fix build_gir logic

See merge request GNOME/gtk!5371
2023-01-03 12:29:27 +00:00
Staudey 7e4a2a5724 Fix build_gir logic 2022-12-27 04:54:52 +00:00
Matthias Clasen 35516a5e86 3.24.36 2022-12-22 09:01:18 -05:00
Matthias Clasen feb38ce112 Revert "Treat XKB_MOD_NAME_LOGO as super key"
This reverts commit 3a871c9184.

This broke one of our tests.
2022-12-22 09:00:37 -05:00
Matthias Clasen 6057e2141c Merge branch 'gtk-3-24-clipboard_eol' into 'gtk-3-24'
clipboard: improve EOL conversion of plain text

See merge request GNOME/gtk!5366
2022-12-22 13:31:26 +00:00
Ignazio Pillai 82e8605627 clipboard: improve EOL conversion of plain text
Handle the case of clipboard text with CR line endings
2022-12-22 10:26:34 +01:00
Matthias Clasen 6c70b5a43d Merge branch 'wip/gtk3-fix-delete-surrounding' into 'gtk-3-24'
[GTK3] gtkimcontextwayland: Convert byte based offset to char based offset in delete_surrounding_text

See merge request GNOME/gtk!5255
2022-12-20 02:19:39 +00:00
Alynx Zhou 9651546b97 gtkimcontextwayland: Convert byte based offset to char based offset in delete_surrounding_text
ClutterInputFocus/GtkIMContext uses char based offset for
delete_surrounding, however, text_input_v3 uses byte based offset for
it. Currently only GTK with mutter can work correctly via text_input_v3
because they both forget to convert between char based offset and byte
based offset.

This commit fixes it in GTK by converting byte based offset to char
based offset with the UTF-8 encoded surrounding text.

Fixes <https://gitlab.gnome.org/GNOME/gtk/-/issues/4566>.
2022-12-20 09:46:52 +08:00
Danial Behzadi 56b8cf501c Update Persian translation 2022-12-14 12:32:57 +00:00
Matthias Clasen 115588128f Merge branch 'revert-cursor-changes-3-24' into 'gtk-3-24'
Revert "wayland: Look for cursor themes in $HOME"

See merge request GNOME/gtk!5329
2022-12-14 11:04:08 +00:00
Matthias Clasen f39dea3d57 Revert "Revert "wayland/cursor: Sanity check cursor image size""
This reverts commit 4432a03742.
2022-12-13 18:52:34 -05:00
Matthias Clasen 74bdb8d8a5 Revert "Make wayland load cursors on demand"
This reverts commit 66a199806c.
2022-12-13 18:52:29 -05:00
Matthias Clasen 89583c456d Revert "wayland: Look for cursor themes in $HOME"
This reverts commit 3f1536632f.
2022-12-13 18:51:16 -05:00
Matthias Clasen 2f6d0792f8 Merge branch 'gtk3_fix_chooser_dead_tilde_trigger_location' into 'gtk-3-24'
Fix open location entry when pressing '~'

See merge request GNOME/gtk!4971
2022-12-13 13:00:36 +00:00
Matthias Clasen 3b9531d3d3 Merge branch 'ebassi/no-more-autotools-redux' into 'gtk-3-24'
Drop the Autotools build

See merge request GNOME/gtk!5299
2022-12-13 12:10:34 +00:00
Emmanuele Bassi 5304d1c8d1 Merge branch 'basename' into 'gtk-3-24'
Use @basename@ in enumeration type templates

See merge request GNOME/gtk!5324
2022-12-12 13:32:03 +00:00
Ross Burton 8eb4e59613 Use @basename@ in enumeration type templates
The @filename@ directive will use the full path of the file being parsed
for enumeration types; we should use @basename@, instead, as it improves
the reproducibility of the build by using only the file name.

Backport of 4040f76529 from main.
2022-12-12 13:09:53 +00:00
Matthias Clasen efdc6b81e6 Merge branch 'issue5305' into 'gtk-3-24'
[quartz] Work around macOS 13 not sending trackingArea events.

See merge request GNOME/gtk!5280
2022-12-11 04:02:14 +00:00
Matthias Clasen 5b8553fae5 Merge branch 'issue5393' into 'gtk-3-24'
[quartz] Set GdkQuartzView wantsLayer.

See merge request GNOME/gtk!5309
2022-12-11 04:02:00 +00:00
Olga Smirnova dc201938b5 Add Interlingue translation 2022-12-09 17:44:15 +00:00
Olga Smirnova 2c56d0491d Add Interlingue translation 2022-12-09 17:43:35 +00:00
Chun-wei Fan d819af3dbd meson: Clean up FreeType2 dependency search
Since we are using Meson 0.60.x now, make use of CMake's support for finding
FreeType in addition to pkg-config, which actually looks for FreeType2 via
looking at the headers and .lib's internally, so we don't have to reinvent
the wheel.

Sadly, we don't have similar support for Cairo and HarfBuzz in CMake, so we
have to stick with what we have now, since we still need to support older
HarfBuzz and Cairo versions as we are in a stable release series.
2022-12-09 12:41:10 +08:00
Chun-wei Fan f2bbaf4f32 README.win32.md: Update build instructions
Adapt the build instructions to reflect the change to building with
Meson only, and list the dependencies in a clearer list with the additional
tools that are needed to build them with Visual Studio.

Update the list of dependencies and their optional features that are needed to
enable optional features in the GTK build itself.
2022-12-09 12:24:24 +08:00
Luca Bacci 50b5144b0b Remove GTK version / interface age macros in config.h
They are present in gtk/gtkversion.h. This avoids macro redefinition
warnings.
2022-12-08 18:08:27 +00:00
Luca Bacci 302adb0ad2 Remove config.h.meson
Meson can generate a configuration file better than a human can.
2022-12-08 18:07:21 +00:00
John Ralls 5d91434f38 [quartz] Set GdkQuartzView wantsLayer.
Apparently wantsUpdateLayer by itself isn't sufficient.
Also #ifdef wantsUpdateLayer for macOS X 10.8 and later; earlier
versions don't provide it.

Fixes #5393
2022-12-08 10:04:56 -08:00
Emmanuele Bassi 783d4d7577 docs: Remove the separate commit document
It's part of the contribution guide.
2022-12-08 18:04:05 +00:00
Emmanuele Bassi ef8eaef429 docs: Remove old, pre-1.0 news file 2022-12-08 18:03:52 +00:00
Emmanuele Bassi 26b2a45b2b docs: Remove outdated files
The maintainers are listed in the DOAP file, and the authors are listed
in the commits history.
2022-12-08 18:02:39 +00:00
Emmanuele Bassi 7938570be2 docs: Replace HACKING with a contribution guide
The HACKING file is woefully out of date.
2022-12-08 18:01:55 +00:00
Emmanuele Bassi 78daa17a89 docs: Update the build instructions 2022-12-08 17:58:29 +00:00
Emmanuele Bassi a89bb5bd9b docs: Update the README 2022-12-08 17:58:29 +00:00
Emmanuele Bassi 6e88d10a35 docs: Update the installation instructions 2022-12-08 17:58:29 +00:00
Matthias Clasen bc67f7a6fc Merge branch 'emoji-recent-empty' into 'gtk-3-24'
emojichooser: Actually disable the recent section

See merge request GNOME/gtk!5307
2022-12-08 13:10:53 +00:00
Matthias Clasen c6321e52df Merge branch 'backport-mr-5088-to-gtk-3-24' into 'gtk-3-24'
Treat XKB_MOD_NAME_LOGO as super key

See merge request GNOME/gtk!5304
2022-12-08 12:14:55 +00:00
Guido Günther 900454e9d9 emojichooser: Actually disable the recent section
The loop sets empty = FALSE when there are emojis but for that
to work we need to initialize the value to TRUE initially.

Fixes: 7928532bc5
(cherry picked from commit 89c816a614)
2022-12-08 13:12:54 +01:00
Matthias Clasen 71e138c201 Merge branch 'wip/carlosg/convert-mimetypes-to-atoms' into 'gtk-3-24'
gdk/wayland: Convert selection mimetypes back to atoms, if needed

See merge request GNOME/gtk!5300
2022-12-08 12:10:30 +00:00
Emmanuele Bassi 2b0a605c5d build: Remove the Autotools build
CI and downstream packagers have been using the Meson build for a while
now, and we checked that it's idempotent to the Autotools build.

Having two build systems in tree doesn't make maintaining and releasing
GTK any easier, even if it's the stable/frozen branch.
2022-12-08 11:57:39 +00:00
Emmanuele Bassi 4b8cdeec09 build: Conditionally generate introspection
We not only want to use the "introspection" option: we also want to
avoid building when cross-compiling, and if the introspection tools
are not available.

GTK's main development branch already has a fairly well tested check, so
let's backport it.
2022-12-08 11:37:16 +00:00
Po Lu 3a871c9184 Treat XKB_MOD_NAME_LOGO as super key
Based on !5088. See also #4913.
2022-12-07 17:34:17 +01:00
Carlos Garnacho eca445672a gdk/wayland: Convert selection mimetypes back to atoms, if needed
Commit 0c1ea92219 took care of converting STRING/UTF8_STRING to mimetype
strings when letting selection targets known to the outer world through
wl_data_source/zwp_primary_selection_source_v1, but it missed the conversion
of those mimetypes back to the old atom strings, depending on the
application, the mimetype counterparts might not be known or handled, so
requests to paste from this app could go ignored.

Fixes: 0c1ea92219 - wayland: Translate STRING/UTF8_STRING selection atoms to mimetypes

Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5397
2022-12-07 00:49:18 +01:00
Emmanuele Bassi d960720156 ci: Dist using Meson 2022-12-06 22:21:43 +00:00
Emmanuele Bassi 880dd62c09 docs: Update installation instructions
Mention Meson.
2022-12-06 22:13:23 +00:00
Emmanuele Bassi b24550abc0 x11: Remove unused header file
The XInput 1.x support was removed 10 years ago.
2022-12-06 22:01:51 +00:00
Emmanuele Bassi ec156ad5b7 broadway: Remove unused file 2022-12-06 21:57:21 +00:00
Emmanuele Bassi a3e82f20a1 Use the right type when calling GtkWidget methods
Let's avoid complaints from the compiler.
2022-12-06 21:50:30 +00:00
Emmanuele Bassi 03afe9be4e Add missing annotation for GdkAtom 2022-12-06 21:50:30 +00:00
Emmanuele Bassi 75cb21e448 Use the same argument name in the header and source files
They must match so the introspection scanner can do its job.
2022-12-06 21:50:30 +00:00
Emmanuele Bassi f8669d55c6 Remove unnecessary gitignore file
The .gitignore file is only needed for the Autotools build, and it gets
generated by git.mk, so we don't need to have the file in the
repository.
2022-12-06 21:50:30 +00:00
Emmanuele Bassi 7b02682b1d wayland: Fix argument's constness
The compiler was pointing out we were dropping the const modifier.
2022-12-06 21:50:30 +00:00
Emmanuele Bassi 01ac1bbaae Drop unnecessary volatile modifier
It's completely useless, and just generates compiler warnings with
recent GLib versions.
2022-12-06 21:50:30 +00:00
Emmanuele Bassi 04bed1d3ab build: Don't dist generated example files with Autotools
The generated resources.c file should not be part of the dist tarball.
2022-12-06 21:50:30 +00:00
Emmanuele Bassi b310ee1eac build: Drop Meson version checks
We depend on a new enough version of Meson.
2022-12-06 21:50:30 +00:00
Emmanuele Bassi 4b16634e0e build: Add missing 512 icons to the Autotools build 2022-12-06 21:50:30 +00:00
Emmanuele Bassi 48ed99e14d build: Use a recent version of Meson
And fix the project name, while we're at it.
2022-12-06 21:18:03 +00:00
Emmanuele Bassi 2b095b501f build: Add missing argument to add_languages()
We need to specify whether we want a native compiler or not.
2022-12-06 20:47:55 +00:00
Emmanuele Bassi ca1dfc7092 build: Replace deprecated get_pkgconfig_variable()
Use get_variable(pkgconfig:...) instead.
2022-12-06 20:45:58 +00:00
Matthias Clasen e95f0aa73b Merge branch 'backport-mr-5148-to-gtk-3-24' into 'gtk-3-24'
label: Tweak selection behavior

See merge request GNOME/gtk!5289
2022-12-03 23:11:02 +00:00
Matthias Clasen 3bcdbc3fb2 label: Tweak selection behavior
Arrange for double-click-followed-by-drag to do
select by words, not select-and-dnd. This matches
the behavior in GtkTextView better and feels
intuitive.

Fixes: #2024
2022-12-03 11:19:29 +01:00
Asier Sarasua Garmendia 6b3b068ab0 Update Basque translation 2022-12-03 09:44:45 +00:00
Nart Tlisha 903464f1d1 Add Abkhazian translation 2022-12-02 10:50:36 +00:00
Nart Tlisha aef02551e3 Update Abkhazian translation 2022-12-02 10:15:27 +00:00
Matthias Clasen 9c60b8d4d4 Merge branch 'example-links' into 'gtk-3-24'
Update links to current versions

See merge request GNOME/gtk!5283
2022-11-30 23:35:56 +00:00
Guido Günther 785e2ab168 docs: Use main branch instead of master
The old name still works but let's use the current name.
2022-11-30 10:02:50 +01:00
Guido Günther 47bfc83931 docs: Switch example to gtk-3-24 branch
Let's use recent examples.
2022-11-30 10:00:15 +01:00
Guido Günther fb72264a27 application: Switch links to gtk-3-24 branch
`master` doesn't exist anymore and we want to refer to a GTK3 example
2022-11-30 10:00:03 +01:00
John Ralls 7e1a3ffa37 [quartz] Work around macOS 13 not sending trackingArea events.
Fixes #5305
2022-11-29 11:58:17 -08:00
John Ralls ce99b56f25 [quartz] Update known and latest macOS version to macOS 13 Ventura. 2022-11-29 11:45:39 -08:00
John Ralls 307945fbe4 [quartz]Use new (since 10.5) NSTrackingArea instead of older tracking rect. 2022-11-29 10:32:19 -08:00
John Ralls cf53a34db4 [quartz] Fix some compile warnings. 2022-11-29 10:31:39 -08:00
Rafael Fontenelle 7d89e5e92a Update Brazilian Portuguese translation 2022-11-28 12:13:58 +00:00
Matthias Clasen 91c37c8692 Merge branch 'backport-mr-3708-to-gtk-3-24' into 'gtk-3-24'
wayland: Look for cursor themes in $HOME

See merge request GNOME/gtk!5262
2022-11-25 14:42:47 +00:00
Matthias Clasen 3f1536632f wayland: Look for cursor themes in $HOME
We should look in the same places that libXcursor does,
so add $XDG_DATA_HOME/icons and $HOME/.icons to the list.

Fixes: #4080
2022-11-25 15:18:39 +01:00
Simon McVittie 5beaf8d014 Merge branch 'wip/smcv/xfail-gtk3' into 'gtk-3-24'
[GTK 3] testsuite: Avoid using should_fail

See merge request GNOME/gtk!5249
2022-11-24 13:42:53 +00:00
Simon McVittie cdb598793a testsuite: Don't create .test files for flaky or failing tests
These tests can be run manually, but are not suitable for use as an
acceptance test, so let's not make frameworks like Debian's autopkgtest
run these when they run ginsttest-runner in the most obvious way.

a11ytests.test doesn't seem to be reliable enough to be used as a QA
acceptance criterion, and has been disabled as a build-time test in both
Gitlab-CI and Debian since 2019. a11ystate.test is not set up to be run
at build time at all, and has been marked as flaky on ci.debian.net
since 2018.

The rest of the testsuite/a11y directory seems to have been
reliable in practice, at least on ci.debian.net, so try leaving them
enabled as installed-tests.

In principle this could be made finer-grained by having a separate .test
file and a separate Meson test() for each .ui file, but that would
require more active maintenance of GTK 3.

Signed-off-by: Simon McVittie <smcv@debian.org>
2022-11-24 12:09:21 +00:00
Simon McVittie a1cd0f71d9 testsuite: Try enabling a11y tests, other than those known to be unstable
At least some of the tests implemented via the accessibility-dump
executable are known to be unstable, but the tests based on separate
executables (tree-performance.c, etc.) have been reasonably consistently
passing on ci.debian.net for several years, so hopefully they are also
reliable enough for upstream CI and we don't need to mark them as flaky?

Signed-off-by: Simon McVittie <smcv@debian.org>
2022-11-24 12:09:21 +00:00
Jordi Mas 6af43f823e Update Catalan translation 2022-11-23 22:29:34 +01:00
Simon McVittie 820d72ffb8 testsuite: Avoid using should_fail
There are two possible interpretations of "expected failure": either
the test *must* fail (exactly the inverse of an ordinary test, with
success becoming failure and failure becoming success), or the test
*may* fail (with success intended, but failure possible in some
environments). Autotools had the second interpretation, which seems
more useful in practice, but Meson has the first.

In GTK 3.24.35, if the environment is such that the label-sizing.ui
reftest happens to be successful, the overall result of the test suite
is failure. This seems unlikely to have been the intention.

Instead of using should_fail, put the tests in one of two new suites:
"flaky" is intended for tests that succeed or fail unpredictably
according to the test environment or chance, while "failing" is for
tests that ought to succeed but currently never do as a result of a
bug or missing functionality. With a sufficiently new version of Meson,
the flaky and failing tests are not run by default, but can be requested
with a command like:

    meson test --setup=unstable_tests --suite=flaky --suite=failing

This arrangement is inspired by GNOME/glib!2987, which was contributed
by Marco Trevisan.

Signed-off-by: Simon McVittie <smcv@debian.org>
2022-11-23 18:54:02 +00:00
Emmanuele Bassi 4bdfb11d1f Merge branch 'gtk-issue-4456' into 'gtk-3-24'
Flush drawable surface when getting a pixbuf

See merge request GNOME/gtk!5244
2022-11-23 12:07:08 +00:00
Thomas Zajic e413f5c432 Flush drawable surface when getting a pixbuf
When getting the drawable surface to get its pixels we should be
flushing the Cairo state, not mark it dirty.

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4456
2022-11-23 11:37:14 +00:00
Matthias Clasen b2ad8d2aba Dist gdk/wayland/cursor/meson.build
This file was missing from the 3.24.35 tarball.
Oops.
2022-11-23 06:24:40 -05:00
Matthias Clasen 14cf55f98d 3.24.35 2022-11-22 13:43:03 -05:00
Matthias Clasen 9bda1e9e13 Merge branch 'ebassi/app-default-flags' into 'gtk-3-24'
Do not use new G_APPLICATION_DEFAULT_FLAGS enum value

See merge request GNOME/gtk!5245
2022-11-22 18:41:17 +00:00
Emmanuele Bassi 46a43461c1 Do not use new G_APPLICATION_DEFAULT_FLAGS enum value
The merge request !5235 switched tests and examples from
G_APPLICATION_FLAGS_NONE, which has been deprecated in GLib 2.74, to
G_APPLICATION_DEFAULT_FLAGS. Sadly, it was done unconditionally, which
means we'd have to bump the required version of GLib.

To avoid that, let's just use the numeric value of the enum member.
2022-11-22 18:09:29 +00:00
Мирослав Николић 8d9d4434dc Update Serbian translation 2022-11-20 18:43:24 +00:00
Мирослав Николић f6c649b143 Update Serbian translation 2022-11-20 14:31:19 +00:00
Christian Kirbach 9b9e989ea9 Update German translation 2022-11-20 10:35:54 +00:00
Matthias Clasen 9cdeff6a18 Merge branch 'replace-deprecations' into 'gtk-3-24'
examples, tests: Replace deprecations

See merge request GNOME/gtk!5235
2022-11-19 23:25:45 +00:00
Anders Jonsson 9ac36cea3c Update Swedish translation 2022-11-19 20:10:37 +00:00
Akbarkhon Variskhanov b7a1941ab5 examples, tests: Replace deprecations
‘G_APPLICATION_FLAGS_NONE’ is deprecated: Use
'G_APPLICATION_DEFAULT_FLAGS' instead.
2022-11-19 23:23:50 +05:00
Simon McVittie 433b72fa21 Merge branch 'wip/smcv/3-24-autotools' into 'gtk-3-24'
[3.24] build: Define USE_XDG_ACTIVATION conditional when Wayland is disabled

See merge request GNOME/gtk!5226
2022-11-18 19:44:48 +00:00
Simon McVittie 20f2c13b2b build: Define USE_XDG_ACTIVATION conditional when Wayland is disabled
This fixes Autotools builds that disable Wayland, such as non-Linux
operating systems and the minimal "udeb" (micro-.deb) package used in
Debian's installer.

Signed-off-by: Simon McVittie <smcv@debian.org>
2022-11-18 11:49:49 +00:00
Matthias Clasen f8d26e2acc Merge branch 'libwayland-cursor-in-tree-gtk-3-24' into 'gtk-3-24'
Make wayland load cursors on demand

See merge request GNOME/gtk!5192
2022-11-18 03:55:52 +00:00
Emin Tufan Çetin c930d8361b Update Turkish translation 2022-11-15 18:29:44 +00:00
Emin Tufan Çetin bfddd4795b Update Turkish translation 2022-11-15 18:22:43 +00:00
hrdl 5c6d2c8e87 Fixes incorrect grabbing behaviour causing subsequent rejection of input
mouse_location can be set to NULL in gtk_range_update_mouse_location(). This
causes a match with stepper_?_gadget in gtk_range_multipress_gesture_pressed(),
as both are NULL. This leads to a grab being added internally and as well, a
critical error message, and a subsequent rejection of touch inputs. Returning
early when mouse_location is NULL prevents this.

Closes #4947
2022-11-11 12:17:51 +01:00
Michael Catanzaro 2fcc114870 Merge branch 'gtk-3-gles' into 'gtk-3-24'
gdk_wayland_display_init_gl: use GLES API if required

See merge request GNOME/gtk!5062
2022-11-10 13:44:34 +00:00
Luca Bacci 66a199806c Make wayland load cursors on demand
Add and use a modified libwayland-cursor in-tree,
just as done in the main branch for GTK4
2022-11-04 15:16:06 +01:00
Luca Bacci 4432a03742 Revert "wayland/cursor: Sanity check cursor image size"
This reverts commit da4066774b.
2022-11-04 10:58:37 +01:00
Kjartan Maraas d3c39fb438 Update Norwegian Bokmål translation 2022-11-04 07:49:02 +00:00
Kukuh Syafaat 56eaeff89d Update Indonesian translation 2022-11-03 03:47:01 +00:00
Nathan Follens 230718c326 Update Dutch translation 2022-11-01 23:08:40 +00:00
Aleksandr Melman d0f49d9f9d Update Russian translation 2022-10-31 12:28:26 +00:00
Nart Tlisha 13cdfb7476 Update Abkhazian translation 2022-10-31 09:48:33 +00:00
Piotr Drąg e6ce24125c Update Polish translation 2022-10-30 12:37:05 +01:00
Balázs Úr ae42ed0a18 Update Hungarian translation 2022-10-30 00:00:03 +00:00
Hugo Carvalho 2d76cd4b2b Update Portuguese translation 2022-10-29 15:46:12 +00:00
Yuri Chornoivan bd736aed8c Update Ukrainian translation 2022-10-29 05:46:25 +00:00
Martin 89ea9ba600 Update Slovenian translation 2022-10-28 06:33:43 +00:00
Matthias Clasen b009366e21 Merge branch 'keypad-accels' into 'gtk-3-24'
Differentiate keypad keysyms in accelerators

See merge request GNOME/gtk!5176
2022-10-28 04:02:48 +00:00
Matthias Clasen 6cc0552ab8 Differentiate keypad keysyms in accelerators
When displaying accelerators, differentiate keypad
symbols with a 'KP' prefix. Fixing a 17 year old bug.

Backport of c58d9446f4.
2022-10-27 14:57:01 -04:00
Matthias Clasen 2703e420ae Merge branch 'wip/carlosg/xdg-activation-3-24' into 'gtk-3-24'
gdk/wayland: Support the xdg-activation wayland protocol (3.24)

See merge request GNOME/gtk!3489
2022-10-26 22:15:11 +00:00
Jonas Ådahl 0b4b9f6136 Merge branch 'tooltips-x11-scale-cursor-size' into 'gtk-3-24'
GtkTooltip: Scale the cursor size on X11

See merge request GNOME/gtk!5173
2022-10-26 15:41:23 +00:00
Luca Bacci bbce00f3a3 GtkTooltip: Scale the cursor size on X11
GtkSettings/X11 takes the values as provided by
XSettings. Unlike other backends, the values of
XSettings are in physical size (that's because
X11 doesn't support mixed-DPI setups anyway).

Take that in account when retrieving the cursor
size in gtk_tooltip_position ().

Note that this discrepancy between the X11 and
other backends has been fixed in GTK4.

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/5223
2022-10-26 15:21:38 +02:00
Joan Bruguera 22c95cd1e9 gdk/wayland: Enable xdg-activation only if wayland-protocols >= 1.21
This way we can keep the same wayland-protocols requirement, so the latest GTK3
still builds on distributions shipping older versions of wayland-protocols,
such as Debian Bullseye.

Should fix CI builds as well.
2022-10-25 23:52:47 +02:00
Carlos Garnacho 3b25f9a662 gdk/wayland: Check the GdkSurface wl_surface before using it for activation
Double check the GdkSurface has a wl_surface before using it as the activation
token source, since we cannot use NULL surfaces here.

Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1862
Backport-of: 4b41d4f78c
Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
2022-10-25 15:54:05 +02:00
Carlos Garnacho 7fa87abf8a gdk/wayland: Dispatch GdkAppLaunchContext activation token in its own queue
Use a separate queue to dispatch the token object exclusively, just like we
do on the GdkSurface activation paths.

Backport-of: fb68600d88
Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
2022-10-25 15:53:57 +02:00
Carlos Garnacho 45f0b5d052 wayland: Use xdg-activation for non-startup initiated focus requests
Currently, we have all the plumbing in place so that GTK consumes the
startup notification ID when focusing a window through the xdg-activation
protocol.

This however misses the case that a window might be requested to be
focused with no startup ID (i.e. via interaction with the application,
not through GApplication or other application launching logic).

In this case, we let the application create a token that will be
consumed by itself. The serial used is that from the last
interaction, so the compositor will still be able to do focus prevention
logic if it applies.

Since we already do have a last serial at hand, prefer xdg-activation
all the way over the now stale gtk-shell focusing support. The timestamp
argument becomes unused, but that is a weak argument to prefer the
private protocol over the standard one. The gtk-shell protocol support
is so far left for interaction with older Mutter.

Backport-of: 4dcacff312
Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
2022-10-25 15:53:49 +02:00
Guido Günther e80251e751 wayland: Keep startup_notification_id around long enough
When using xdg_activation we need to keep the id around until we send
the first activate to signal succesful startup.

Backport-of: 999509be61
Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
2022-10-25 15:53:36 +02:00
Guido Günther 54348c5270 wayland: xdg-activation: Don't assume there's a focus surface
Tools like gtk4-launch can't set surface on the activation token so
don't require it. If the compositor requires it we can't do anything
about it anyway. This avoids a critical:

   (gtk4-launch:23497): Gdk-CRITICAL **: 17:07:24.704: gdk_wayland_surface_get_wl_surface: assertion 'GDK_IS_WAYLAND_SURFACE (surface)' failed

Fixes: be4216e051 ("gdk/wayland: Support the xdg-activation wayland protocol")

Signed-off-by: Guido Günther <agx@sigxcpu.org>
Backport-of: 4d741bac98
Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
2022-10-25 15:53:26 +02:00
Carlos Garnacho a79d6972e0 gdk/wayland: Support the xdg-activation wayland protocol
This protocol implements the IPC necessary to focus application
windows across launcher/launchee. Add support for it.
2022-10-25 15:50:02 +02:00
Matthias Clasen 84a3ea5ec4 Merge branch 'gtk-cursor-wayland-hotspot' into 'gtk-3-24'
[gtk3] [wayland] Fix hotspot positioning with scaled surface.

See merge request GNOME/gtk!5159
2022-10-21 17:29:31 +00:00
Emilio Cobos Álvarez 686864a118 [gtk3] [wayland] Fix hotspot positioning with scaled surface.
Fixes !5278 to behave the same way as X11.
2022-10-21 14:22:51 +02:00
Alexander Shopov 95cb7d04c7 Update Bulgarian translation 2022-10-07 09:08:40 +00:00
Carlos Garnacho 108343b037 Merge branch 'wl-ime-lockscreen-fixes' into 'gtk-3-24'
gtk3: Backport of !4962. !5050, !5012: gtkimcontextwayland: Refactor handling of client updates

See merge request GNOME/gtk!5091
2022-10-06 10:57:35 +00:00
Carlos Garnacho 92813e52cd gtkimcontextwayland: Shuffle full resets after IM changes
Doing reset() on the text widgets after commit and delete_surrounding
is still too eager for some IMs (e.g. those that expect being able
to commit text while keeping a preedit buffer shown).

However, reset() is more of a "synchronize state" action on Wayland,
and it is still desirable to do that after changes that do come from
the IM (e.g. requesting the new surrounding text and cursor/anchor
positions). Notably here, the text_input protocol may still come up
with a preedit string after this state synchronization happens.

Shuffle the code so that the text widgets do not reset() the IM
context after text is deleted or committed, but the Wayland IM does
apply its practical effects after these actions happen. This keeps
the Wayland IM fully up-to-date wrt text widget state, while not
altering the ::commit and ::delete-surrounding-text behavior for
other IM context implementations.
2022-10-06 17:40:38 +07:00
Carlos Garnacho a88e848306 gtktextview: Also reset IM context after IM surrounding text deletion
When the IM commands the GtkText to delete text, the cursor position
would change, and so would the surrounding text. Reset the IM context
so that these updates are properly picked up by the IM.

Fixes backspace	key behavior in	the GNOME Shell OSK, since that	relies
on the surrounding text	being properly updated for the next iteration.
2022-10-06 17:29:50 +07:00
Carlos Garnacho 018083fab7 gtkentry: Also reset IM context after IM surrounding text deletion
When the IM commands the GtkText to delete text, the cursor position
would change, and so would the surrounding text. Reset the IM context
so that these updates are properly picked up by the IM.

Fixes backspace key behavior in the GNOME Shell OSK, since that relies
on the surrounding text being properly updated for the next iteration.
2022-10-06 17:29:50 +07:00
Carlos Garnacho fa6aca2925 gtkentry: Avoid early IM reset on updates
Resetting the IM on IM updates is too eager and indeed the simple
IM context doesn't like that this happens in the middle of dead
key handling.

We however want to reset the IM after actual text buffer changes
(say, a committed string) moved the cursor position, altered the
surrounding text, etc. So that the IM implementation does know to
update its state.

Since there is going to be an actual IM reset anyways, it does
no longer make sense to try to preserve the old priv->need_im_reset
status during commit handling.
2022-10-06 17:29:50 +07:00
Carlos Garnacho 7b1f9a3b08 gtkentry: Avoid early IM reset on updates
Resetting the IM on IM updates is too eager and indeed the simple
IM context doesn't like that this happens in the middle of dead
key handling.

We however want to reset the IM after actual text buffer changes
(say, a committed string) moved the cursor position, altered the
surrounding text, etc. So that the IM implementation does know to
update its state.
2022-10-06 17:29:36 +07:00
Carlos Garnacho b0c4196f98 gtkentry: Shuffle the places doing IM reset
During entry widget manipulation (inserting or deleting text via keyboard)
the IM context is reset somewhat early, before the actual change took place.
This makes IM lag behind in terms of surrounding text and cursor position.

Shuffle these IM reset calls so that they happen after the changes, and
ensure that the IM is actually reset, since that is currently toggled on
a pretty narrow set of circumstances.
2022-10-06 17:28:25 +07:00
Carlos Garnacho 0a8b0025e3 gtktextview: Shuffle the places doing IM reset
During text widget manipulation (inserting or deleting text via keyboard)
the IM context is reset somewhat early, before the actual change took place.
This makes IM lag behind in terms of surrounding text and cursor position.

Shuffle these IM reset calls so that they happen after the changes, and
ensure that the IM is actually reset, since that is currently toggled on
a pretty narrow set of circumstances.

Also, fix a bug during GtkEventControllerKey::im-update where the condition
on cursor position editability to reset the IM context was inverted.
2022-10-06 17:16:39 +07:00
Carlos Garnacho a2f579eca8 gtkimcontextwayland: Refactor handling of client updates
Currently, the wayland IM context sends zwp_text_input_v3.commit from
a number of places, and some of them with partial data. In order to
make client state updates "atomic" and complete, make the communication
happen over an unified notify_im_change() function that happens on
a narrower set of circumstances:

  - The GtkIMContext is reset
  - The GtkIMContext is just focused
  - The gesture to invoke the OSK is triggered
  - The IM context is reacting to changes coming from the compositor

Notably, setting the cursor location or the surrounding text do not try
to commit state on their own, and now will be flushed with the corresponding
IM update or reset. But also, these requests won't be prevented from
happening individually on serial mismatch, instead it will be the whole
state commit which is held off.

With these changes in place, all client-side updates are notified
atomically to the compositor under a single .commit request.
2022-10-06 17:16:33 +07:00
Matthias Clasen 293cee1724 Merge branch 'wip/carlosg/flush-uncompressed-motion' into 'gtk-3-24'
gdk: Ensure GdkFrameClock::flush-events with uncompressed motion

See merge request GNOME/gtk!5075
2022-10-03 20:48:10 +00:00
Carlos Garnacho 5ea961ed93 gdk: Ensure GdkFrameClock::flush-events with uncompressed motion
Sometimes, there may be motion events left in the queue, because at the
time of handlign these motion events the GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS
phase is not requested.

Ensure that, when finding motion events on a window that does not disable
motion compression, the events are anyways flushed, so they can be processed
early by the window/widget event handlers.

Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4946
2022-10-03 16:42:40 +02:00
Emmanuele Bassi 1ad49f238c Merge branch 'wip/carlosg/translate-string-selections' into 'gtk-3-24'
wayland: Translate STRING/UTF8_STRING selection atoms to mimetypes

See merge request GNOME/gtk!5072
2022-10-03 09:06:51 +00:00
Fabio Tomat 725ae0c878 Update Friulian translation 2022-10-03 08:39:31 +00:00
Carlos Garnacho 0c1ea92219 wayland: Translate STRING/UTF8_STRING selection atoms to mimetypes
Since the GDK API layer in 3.x is considerably tied to X11 details,
it makes sense to provide this bit of translation in case the app
uses these exclusively and does not use actual mimetype strings.
Provide this bit of translation of X11 selection atoms to mimetypes.

While at it, use the right zwp_primary_selection_source_v1 API with
primary selection data sources. From the looks of it, this just
happened to work.

Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5217
2022-10-03 10:35:48 +02:00
Goran Vidović 67432fe3bc Update Croatian translation 2022-10-02 14:37:54 +00:00
Zurab Kargareteli 0bd5cfb1ce Update Georgian translation 2022-10-02 10:38:04 +00:00
Matthias Clasen 80d8970072 Merge branch 'wip/titlebar-gesture-gtk3' into 'gtk-3-24'
[3-24] wayland: Add support for gtk_surface1_titlebar_gesture()

See merge request GNOME/gtk!5070
2022-10-01 01:34:33 +00:00
Jonas Ådahl 45ba6e9329 wayland: Add support for gtk_surface1_titlebar_gesture()
This adds a private GDK API that GTK calls using GDK_PRIVATE_CALL(). It
is more or less a copy of the GdkSurface::titlebar_gesture() API, and
achieves the same. If the backend or compositor doesn't support titlebar
gestures, the existing path is used as a fallback.
2022-09-30 22:38:03 +02:00
Nart Tlisha 1a745a6b35 Update Abkhazian translation 2022-09-29 15:16:17 +00:00
Goran Vidović 4c77925af6 Update Croatian translation 2022-09-29 12:16:17 +00:00
Goran Vidović d388d65eb7 Update Croatian translation 2022-09-29 12:14:26 +00:00
Dominique Martinet 0e5fe45ea2 gdk_wayland_display_init_gl: use GLES API if required
gdk_wayland_gl_context_realize properly checks for GLES and uses
eglBindAPI with the proper API, but before that init is always called
with regular GL interface which is not implemented for many embedded
devices.

This was fixed in GTK 4 with commit 482845b027 ("wayland: Remove
initial GL API bind"), but that commit cannot easily be applied because
the current version queries some GL properties during init so we would
need to backport more for it to be applicable.

This patch takes the minimal approach of initializing GLES context,
allowing the gtk3 demo OpenGL test (and real applications) to work
when GDK_GL=gles is set.

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3028
2022-09-28 14:34:41 +09:00
Luca Bacci 812b3930d0 Merge branch 'gdk-win32-fix-subclassing-gdk-win32-selection' into 'gtk-3-24'
GdkWin32: Fix subclassing for GdkWin32Selection

See merge request GNOME/gtk!5054
2022-09-26 12:52:32 +00:00
Luca Bacci 8f0d580cf9 GdkWin32: Fix subclassing for GdkWin32Selection 2022-09-26 14:28:03 +02:00
Carlos Garnacho 56100ab49a Merge branch 'work/zzag/kde-dnd' into 'gtk-3-24'
gdk/wayland: Update selection's offer before updating dnd targets

See merge request GNOME/gtk!5045
2022-09-23 09:09:22 +00:00
Vlad Zahorodnii 965aa2e65f gdk/wayland: Update selection's offer before updating dnd targets
gdk_wayland_drop_context_update_targets gets targets from the
selection's offer. In order to ensure that the drop context has
up-to-date targets, update the selection's offer before updating
targets.

This fixes drag-and-drop not working reliably when running Firefox in
Plasma Wayland session.
2022-09-23 11:12:41 +03:00
Matthias Clasen 4c991b8b39 Merge branch 'backport-mr-4776-to-gtk3' into 'gtk-3-24'
Recognize "stylus" devices as GDK_SOURCE_PEN

See merge request GNOME/gtk!5036
2022-09-20 10:57:20 +00:00
Sabri Ünal a533474dfe Update Turkish translation 2022-09-18 08:19:53 +00:00
Sabri Ünal 9c9920e46e Update Turkish translation 2022-09-18 08:19:45 +00:00
Nate Eldredge 8984b13d84 Recognize "stylus" devices as GDK_SOURCE_PEN
Add "stylus" to the list of substrings in a device name that cause it to be recognized
as a GDK_SOURCE_PEN device (previously "wacom", "pen" and "eraser").  Some devices
just use "stylus" in their name, and are otherwise recognized as
GDK_SOURCE_TOUCHSCREEN instead.

Fixes #4394.
2022-09-17 15:06:27 +02:00
Balázs Meskó 5f8ab17a0c Update Hungarian translation 2022-09-14 00:36:30 +00:00
Matthias Clasen cbfec14df4 Merge branch 'gtk3-fontchooser-fix' into 'gtk-3-24'
Fix a critical in GtkFontChooserWidget

See merge request GNOME/gtk!5027
2022-09-13 13:19:57 +00:00
Matthias Clasen ea9aa8ed82 Fix a critical in GtkFontChooserWidget
When the level doesn't include the style, we need
to work a bit harder to really get a face object
here.

Fixes: #5173
2022-09-13 08:54:09 -04:00
Jordi Mas 4a93875bbb Update Catalan translation 2022-09-11 14:30:21 +02:00
Cheng-Chia Tseng b425e724ee Update Chinese (Taiwan) translation 2022-09-10 09:21:40 +00:00
Matthias Clasen 9baae419f6 x11: Add a precondition
Trying to be helpful.
2022-09-09 14:50:39 -04:00
Piotr Drąg 1c375f72bc Update Polish translation 2022-08-28 23:32:39 +02:00
Goran Vidović 1df4b908a8 Update Croatian translation 2022-08-28 14:43:05 +00:00
Jordi Mas a02858a5e8 Fixes to Catalan translation 2022-08-26 20:49:42 +02:00
Nart Tlisha 12325f2e0a Update Abkhazian translation 2022-08-25 10:27:20 +00:00
John Ralls 7a56fa276b [quartz] find_toplevel_under_pointer should not return _gdk_root
The macOS WM has no root window. We fake one with a 1x1 window at the
origin that has no associated NSWindow. If the pointer is not on a
realized GdkWindow the hierarchical search will place it in the root
window even if it's nowhere near it. That's not valid, but returning it
from find_toplevel_under_pointer prevents Gdk from discovering when the
pointer is really over a GdkWindow. Return NULL instead so that the window
discovery is re-performed.
2022-08-22 08:58:08 -07:00
Nelson Benítez León 573636d84a Fix open location entry when pressing '~'
Recent changes in GTK default input method
makes ~ char to start as dead key, that's
why filechooser stopped detecting it for the
keybinding to open location entry.

We also make sure '~' appears in the location
entry (instead of being emtpy).

Fixes #4911 for GTK3
2022-08-21 15:26:06 -04:00
Matthias Clasen 784e93ba4a Merge branch 'wip/smcv/glib-2-74' into 'gtk-3-24'
[GTK 3] Avoid repeated g_log_set_writer_func in tests

See merge request GNOME/gtk!4968
2022-08-21 11:55:57 +00:00
Simon McVittie a4f45483b1 Avoid repeated g_log_set_writer_func in tests
Since GLib 2.73.0 it can only be called once per process.

Based on commit 78c153ae in GTK 4, but combining the icontheme test's
two custom log writers into one log writer that serves both purposes,
to avoid the need for a subprocess.

Co-authored-by: Matthias Clasen <mclasen@redhat.com>
Resolves: https://gitlab.gnome.org/GNOME/gtk/-/issues/5119
2022-08-20 19:34:05 +01:00
Matthias Clasen 84db04e6e1 Merge branch 'static-builds-hinstance' into 'gtk-3-24'
GdkWin32: Add support for static builds

See merge request GNOME/gtk!4538
2022-08-18 18:05:36 +00:00
Matthias Clasen 498cb3754c Merge branch 'fix_signal_blocked_on_update_relative_to' into 'gtk-3-24'
Unblock signal on update_relative_to in Gtk.Popover

See merge request GNOME/gtk!4589
2022-08-17 11:17:28 +00:00
Sergio Costas 4892c8901b Further simplification 2022-08-16 23:14:44 +02:00
Jordi Mas 187093f2a1 Update Catalan translation 2022-08-16 00:05:48 +02:00
Sergio Costas 02ea88bba2 Remove unneeded unblock
When a signal handler is disconnected, it doesn't matter if it
was blocked or not, so there's no need to unlock it before
disconnection.
2022-08-15 15:35:06 +02:00
Sergio Costas c9a3b42734 Unblock signal on update_relative_to in Gtk.Popover
When a Gtk.Popover loses the focus, it blocks the grab_notify
signal from the associated widget, and it unblocks it when it
regains the focus. To know whether the signal is or not blocked,
it uses the priv->grab_notify_blocked flag.

On the other hand, when the method update_relative_to() is
called, all the signals connected to the old associated widget
are disconnected, and connected to the new widget.

Unfortunately, the priv->grab_notify_blocked flag isn't updated,
which means that if update_relative_to() is called while the
Gtk.Popover doesn't have the focus (for example, because the
user switched into another application), when the focus is
regained, the code in window_focus_in() will see that
priv->grab_notify_blocked is TRUE and will unblock the handler;
but that handler wasn't blocked because the one that was blocked
was disconnected when update_relative_to() was called. This
shows a WARNING in the console:

GLib-GObject-WARNING **: ../../../gobject/gsignal.c:2692: handler '5146' of instance '0x556912f84f40' is not blocked

This patch fixes this.

Fix https://gitlab.gnome.org/GNOME/gtk/-/issues/4777
2022-08-15 09:31:24 +02:00
Matthias Clasen 0fd4906bf8 Merge branch 'wip/carlosg/seat-grab-pointer-hint' into 'gtk-3-24'
gdk/wayland: Drop motion hint mask from seat grab event masks

See merge request GNOME/gtk!4948
2022-08-12 16:37:03 +00:00
Carlos Garnacho 2c65884a5e gdk/wayland: Drop motion hint mask from seat grab event masks
At best, it's just an awkward event mask sitting there for a backend
that does not need it. At worst, this may result in motion events being
eaten away in the right set of circumstances.

Avoid the pointer motion hint mask, and rely on events being further
than hints.

Related: https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/534#note_1526935
2022-08-12 01:54:08 +02:00
Chun-wei Fan 8137d2148c Merge branch 'more-vs-proj-updates' into 'gtk-3-24'
More imrpovements to Visual Studio projects (docs and PangoFT2 support, code generation flexibility)

See merge request GNOME/gtk!4934
2022-08-08 12:24:57 +00:00
Chun-wei Fan 5515bde10a README.win32.md: Improve Visual Studio build instructions
Make the options and variable clearer to people.  Sorry, this was
a bit long overdue.
2022-08-08 19:51:06 +08:00
Chun-wei Fan 89287d5500 win32/config-msvc.mak: Improve flexibility
Allow one to specify INCLUDEDIR and LIBDIR to locate the headers needed
for generating sources, if they are not under $(PREFIX)\include and
$(PREFIX)\lib, repsectively.
2022-08-08 19:51:00 +08:00
Chun-wei Fan 713fab7596 win32/generate-msvcprojs.mak: Simplify enabling PangoFT2
... in the gtk-3 Visual Studio project.  This will allow one who wishes to use
the font features items that uses the older PangoFT2-based APIs that is used
before Pango 1.44.0 and HarfBuzz-2.2.0 an easier way to do that, by
regenerating the gtk-3 project files with the necessary items enabled.

The font features demo still needs to be explicitly enabled, though, as
before.
2022-08-08 18:56:24 +08:00
Chun-wei Fan e567d4a33a README.win32: Convert to MarkDown
Make it easier on the eye, and put together portions that are repetitive.
2022-08-08 17:28:22 +08:00
Chun-wei Fan 88c17ea509 Merge branch 'msvcproj-git' into 'gtk-3-24'
Support building with Visual Studio projects from a GIT checkout

See merge request GNOME/gtk!4928
2022-08-05 12:01:37 +00:00
Chun-wei Fan bc3770f108 README.win32: Mention about (re-)generating project files
This adds instructions to aid one to build with the Visual Studio projects
directly from a GIT checkout, or to re-generate the project files with
various options and features enabled (which are not enabled by default
in the release tarballs).
2022-08-05 19:25:32 +08:00
Chun-wei Fan 6dc2710a70 README_FEATURES_MSVC.md: Mention about enabling EGL
...in a more automated way, since the NMake Makefiles now support doing so.
2022-08-05 19:08:30 +08:00
Chun-wei Fan 8a999cad56 Visual Studio build instructions: Use MarkDown
Make the documentation for enabling features us MarkDown to make it easier on
the eye.
2022-08-05 19:02:39 +08:00
Chun-wei Fan 1b22c554f5 win32: Add NMake Makefile to bootstrap projects
This adds a NMake Makefile to generate the needed items that are normally
generated during `./configure`, as well as to generate the full Visual Studio
projects and property sheets, so that one can use the Visual Studio projects
to build GTK directly from a GIT checkout.  A 'clean' target is also provided
to remove these generated artifacts.  This also generates the headers that are
needed to build broadwayd, since they are currently dist'ed with the tarballs
but are not in the GIT repo.

This will not be dist'ed, as this is primarily meant for GIT checkouts only.
2022-08-05 18:40:00 +08:00
Chun-wei Fan aa90717c3d win32/gen-version-items.py: Retrieve version info from configure.ac
...and use that info if no version and/or interface age was specified.  This
way, we can use this script to help bootstrap builds from Visual Studio
projects directly from a GIT checkout.
2022-08-05 18:40:00 +08:00
Chun-wei Fan e767a03051 win32: Split out MSVC project generating
...into a NMake Makefile snippet of its own, to make things clearer and easier
to maintain.  The regenerating target should still be invoked using
generate-msvc.mak.
2022-08-05 18:40:00 +08:00
Chun-wei Fan a84e604bda win32/generate-msvc.mak: Clean up a bit again
Reduce some more repetitions.
2022-08-05 18:38:41 +08:00
Chun-wei Fan 36f1cd24d2 generate-msvc.mak: Support generating libgtk/gailutil projects
This adds rules to allow (re-)generating the libgtk and libgail-util Visual
Studio projects, which needed some tinkering since we don't want to fall into
the nasty U1095 error.
2022-08-05 18:38:41 +08:00
Chun-wei Fan 07e01fdae7 config-msvc.mak.in: Regroup items
Improve readability
2022-08-05 18:37:14 +08:00
Chun-wei Fan d21115cb90 generate-msvc.mak: Add rules to copy the static VS2010 projects
... for VS2012~2022, so that they can be ready for use to build with later
Visual Studio versions.
2022-08-05 18:37:14 +08:00
Chun-wei Fan b28f2094ce win32/generate-msvc.mak: Support generating all GDK projects
This extends the support to generate all the GDK Visual Studio projects, which
include GDK, GDK-Broadway and broadwayd, in addition to GDK-Win32.  The rule
to regenerate the GDK-Win32 project is now changed to regenerate all GDK
projects, with or without EGL support in GDK-Win32.

Also, remove extraneous blank spaces in win32/vs10/broadwayd.vcxprojin to avoid
errors when generating the full VS2010+ broadwayd Visual Studio projects with
this update.

Use inference rules and re-group things a bit, to make things cleaner and
clearer.
2022-08-05 18:37:14 +08:00
Chun-wei Fan 91985e6dfa win32/generate-msvc.mak: Add rules to create GDK-Win32 MSVC projects
This will allow one to quickly re-generate the Gdk-Win32 Visual Studio
projects with or without EGL/libANGLE support.  Since some rules are shared
with the ones that we use to generate the gtk3-demo projects, clean things
up a bit.
2022-08-05 18:34:14 +08:00
Chun-wei Fan 156ae72ed7 Visual Studio: Add .gitignore's
We don't need to track the project files and property sheets that are generated
from their templates, and we don't want to track the demos.h(.win32) that are
mainly used for the Visual Studio builds, which are also generated.
2022-08-05 18:32:55 +08:00
Chun-wei Fan 7f5ebd2878 Merge branch 'msvc-broadway-improvements' into 'gtk-3-24'
GDK-Broadway build improvements for Visual Studio

See merge request GNOME/gtk!4927
2022-08-05 10:30:01 +00:00
Chun-wei Fan 8954c60e89 Merge branch 'msvc-build-pot' into 'gtk-3-24'
win32/generate-msvc.mak: Add rules for gtk30[-properties].pot

See merge request GNOME/gtk!4926
2022-08-05 10:24:20 +00:00
Chun-wei Fan adf62ea491 Merge branch 'improve-demos-h-msg' into 'gtk-3-24'
generate-msvc.mak: Improve gtk-demo config message

See merge request GNOME/gtk!4925
2022-08-05 10:20:58 +00:00
Chun-wei Fan 8e7200f956 generate-msvc.mak: Improve gtk-demo config message
Make the messages to show the configuration when we (re-)generate the
demos.h.win32 and Visual Studio projects show at the beginning, and make the
messages clearer.
2022-08-05 17:56:25 +08:00
Chun-wei Fan 8289b18b4b win32/generate-msvc.mak: Add rules for gtk30[-properties].pot
This adds rules using xgettext to generate gtk30.pot and
gtk30-properties.pot.

Currently, the XGETTEXT=... must be supplied, since it will likely come
from a MSYS2 or Cygwin installation on Windows.

This will help us get closer to support building more directly from a
GIT checkout with the Visual Studio projects
2022-08-05 17:08:18 +08:00
Chun-wei Fan a27bacc1fe win32/generate-msvc.mak: Add rules to generate broadway headers
This allows one to (re-)generate clienthtml.h and broadwayjs.h that is needed
to build broadwayd with the NMake Makefiles.  Currently, since these headers
are currently dist'ed, the rules added here are mainly of use to build from a
GIT checkout.
2022-08-05 16:51:08 +08:00
Chun-wei Fan 3bd0e8ff2e gdk/broadway/Makefile.am: Correct build variable
They should be enclosed by $() not ${}.
2022-08-05 16:50:48 +08:00
Matthias Clasen 5da57e7631 Merge branch 'win32-nahimic-nv-notes-3' into 'gtk-3-24'
README.win32: Add note on using OpenGL on Windows

See merge request GNOME/gtk!4916
2022-08-02 11:10:04 +00:00
Chun-wei Fan 489f2190be README.win32: Add note on using OpenGL on Windows
...when running on a system with nVidia graphics with Nahimic installed, since
a known issue within the graphics drivers and/or Nahimic can cause random
crashes and issues when OpenGL (G[t|d]kGLArea) is being used.

This will close issue #4113--sadly, this issue is an issue that is beyond our
reach to try fixing within GTK.
2022-08-02 13:53:06 +08:00
Jordi Mas 2cb920a51b Update Catalan translation 2022-08-01 20:46:05 +02:00
Nart Tlisha 56314b46ea Update Abkhazian translation 2022-07-28 19:16:33 +00:00
Quentin PAGÈS d71549942b Update Occitan translation 2022-07-26 19:24:15 +00:00
Nart Tlisha 974f3141cd Add Abkhazian translation 2022-07-26 11:14:42 +00:00
Zurab Kargareteli 9d3addf2aa Update Georgian translation 2022-07-25 07:41:00 +00:00
Quentin PAGÈS f5b78522a1 Update Occitan translation 2022-07-22 22:23:11 +00:00
Matthias Clasen 75906cb8c3 Merge branch 'buffer-func-annotation' into 'gtk-3-24'
Fix annotation of serialize and deserialize function

See merge request GNOME/gtk!4893
2022-07-22 12:41:46 +00:00
Cédric Krier 31490df2b1 Remove annotation for GError 2022-07-20 09:52:40 +02:00
Cédric Krier 3d406fc446 Fix annotation of serialize and deserialize function 2022-07-20 00:02:42 +02:00
Matthias Clasen 8bbc24c165 Merge branch 'wip/swilmet/improve-style-context-docs' into 'gtk-3-24'
docs: improve doc of gtk_style_context_get()

See merge request GNOME/gtk!4867
2022-07-13 15:48:25 +00:00
Sébastien Wilmet fea466c13c docs: improve doc of gtk_style_context_get()
When using this function in GtkSourceView (for GTK 3), there was a
mistake for retrieving a GdkRGBA value.

So, better document the function to avoid further mistakes.
2022-07-13 17:12:42 +02:00
Danial Behzadi 5c02deb893 Update Persian translation 2022-07-09 02:10:39 +04:30
John Ralls 09dd73feeb [quartz] Remove extra reference on layer's cairo_surface. 2022-06-30 15:27:03 -07:00
John Ralls f48bed22db [quartz] shouldInheritContentsScale from 10.7+ instead of 10.14+. 2022-06-30 15:25:50 -07:00
Matthias Clasen 739aaa7add Merge branch 'gtk-3-24' into 'gtk-3-24'
gtkmodifierstyle.c: Release symbolic color memory

See merge request GNOME/gtk!4830
2022-06-24 19:28:14 +00:00
Xu Shaohua 13174cd70d gtkmodifierstyle.c: Release symbolic color memory 2022-06-24 10:05:07 +08:00
Matthias Clasen ab68cee090 Merge branch 'symbolic-hc-3' into 'gtk-3-24'
Wayland/screen: Don't force HighContrast icon theme

See merge request GNOME/gtk!4803
2022-06-23 18:19:00 +00:00
Florian Müllner b19269c9c1 wayland/screen: Don't force HighContrast icon theme
The theme is considered deprecated in favor of symbolic icons from
the regular theme.
2022-06-23 15:49:03 +02:00
Matthias Clasen f08173c5cf Merge branch 'matthiasc/gtk-bump-fedora' into 'gtk-3-24'
ci: Bump Fedora base image

See merge request GNOME/gtk!4826
2022-06-23 13:39:22 +00:00
Matthias Clasen 26ef6917c8 Merge branch 'bad-popup-extents-gtk3' into 'gtk-3-24'
[gtk3] [x11] Fix coordinate space of rect in gdk_x11_window_get_frame_extents when called on popups.

See merge request GNOME/gtk!4821
2022-06-23 12:00:11 +00:00
Matthias Clasen f5890c9151 Keep version numbers sequential
Our ci image versions don't correspond to Fedora
release numbers. Changing that just for one branch
would be more confusing than helpful, I think.
2022-06-23 07:44:39 -04:00
John Ralls 56d9dc95d9 [quartz] Fix build on macOS versions before 10.14.
shouldInheritContentScale was introduced in 10.14.
2022-06-20 17:15:49 -07:00
Emilio Cobos Álvarez c43e3c4339 [gtk3] [x11] Fix coordinate space of rect in gdk_x11_window_get_frame_extents when called on popups.
This is the same fix as !4820, but applied to the gtk 3 branch.
2022-06-20 10:43:06 +02:00
Matthias Clasen a108de6f61 Merge branch 'gtk3-adwaita-maximized-ssd-no-border' into 'gtk-3-24'
Adwaita: Hide SSD box-shadow border on maximized windows

See merge request GNOME/gtk!4819
2022-06-19 17:05:07 +00:00
Sebastian Keller 4873f63c07 Adwaita: Hide SSD box-shadow border on maximized windows
The 1px shadow was showing up on adjacent monitors when a SSD window was
maximized. Additionally this was causing mutter to skip direct scanout
of these windows, because they extend beyond the screen.

Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/2304
2022-06-19 16:24:59 +02:00
Florian Müllner fa8135d58a ci: Bump Fedora base image
F31 is EOL and no longer satisfies our ATK dependency. Bump it to
F35 to get gtk3's CI into a working state again.
2022-06-17 19:31:16 +02:00
Luca Bacci 04fe1c8e4e Merge branch 'gdk-win32-gtk-overlay-scrolling-gtk3' into 'gtk-3-24'
GdkWin32: Add code for gtk-overlay-scrolling setting

See merge request GNOME/gtk!4817
2022-06-17 09:49:39 +00:00
Luca Bacci b121fe8d51 GdkWin32: Add code for gtk-overlay-scrolling setting
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/4899
2022-06-17 11:04:54 +02:00
Chun-wei Fan 65f3fb7d89 Merge branch 'msvc-proj-more-data' into 'gtk-3-24'
Visual Studio projects: Make installed data files better match the autotools/Meson builds

See merge request GNOME/gtk!4814
2022-06-16 11:39:23 +00:00
Chun-wei Fan 4af19d4350 Visual Studio builds: Add optional rules to generate translations
Add a target in the install-msvc.mak file that enables one to generate
the translations (.mo) files using msgfmt from the .po catalog files.

Add an entry in config-msvc.mak[.in] so that one can use it to configure
a custom location for the msgfmt.exe program, since it is harder to
install with Visual Studio, so that one can use a prebuilt copy from
Cygwin or MSYS2, for instance.
2022-06-16 18:42:16 +08:00
Chun-wei Fan 52d01d63db MSVC projects: Generate and install Emoji GResource data
Generate the full GResource XML files for the Emoji data, and generate
the binary GResource data from them and copy them as appropriate.

At this point, the installed data files are in-line with what the Meson
builds install, sans the processed translation files.
2022-06-16 17:42:42 +08:00
Chun-wei Fan 857da46098 MSVC projects: Also copy the build auxiliary files
This does what the Meson build files also do, so that people can have
the m4 module, the ITS files as RelaxNG files if they choose to use them
anyways.
2022-06-16 17:42:42 +08:00
Chun-wei Fan a4f685c2db MSVC projects: Also "install" the gtk3-demo symbolic icon
Follows what is done in the Meson/autotools builds.
2022-06-16 17:42:42 +08:00
Jordi Mas 29386e22bf Update Catalan translation 2022-06-14 19:45:46 +02:00
John Ralls a2c54c739e [quartz] Ensure valid GdkWindowImplQuartz references.
In case of an offscreen window find its onscreen embedder, and NULL
any GdkWindowImpl that's not quartz, checking all return values.

This replaces 16ded683, removing its unnecessary search_for_nearest
functions.

Any unchecked cast of a GdkWindowImpl to GdkWindowImplQuartz risks at
least getting an invalid member reference, not just the ones in
gdk_quartz_window_get_foo, and all calls to gdk_quartz_window_get_foo need
to be checked, not just Gtk's internal calls. The motivation was that
transient_for was getting set on a Gimp offscreen window and that caused a
crash in raise_transient.
2022-06-09 13:22:59 -07:00
John Ralls 749c863073 [quartz] Ensure GdkWindowQuartz members are either valid or NULL. 2022-06-09 13:22:59 -07:00
John Ralls a5ad547b8b [quartz] ensure that the copy region is fully enclosed by the drawn surface. 2022-06-09 13:22:59 -07:00
John Ralls 8d4c4cdca4 [quartz] Handle scale changes using NSView::shouldInheritContentsScale.
Includes creating the CVPixelBuffer to supply the layer contents when
creating the cairo_image_surface, which reduces the number of them created
at the wrong scale.
2022-06-09 13:22:59 -07:00
Zurab Kargareteli b6c76028d6 Update Georgian translation 2022-06-05 17:13:20 +00:00
Chun-wei Fan 73ba8ce128 Merge branch 'msvcproj-demos' into 'gtk-3-24'
Visual Studio projects: Improve demos build process

See merge request GNOME/gtk!4781
2022-05-31 09:00:44 +00:00
Chun-wei Fan b9a3d3ef05 MSVC Projects: Build widget factory demo
Build the widget factory demo in the Visual Studio projects, and install
the icon files that it needs.
2022-05-31 15:32:44 +08:00
Chun-wei Fan e7efafcae7 MSVC Projects: Generate widget factory GResource sources
Add rules in the helper NMake Makefiles to generate the GResource
sources for gtk3-widget-factory.  This prepares for us to add project
files to build that demo program.
2022-05-31 15:32:31 +08:00
Chun-wei Fan 3c3b7e183a build: Don't generate icon browser MSVC project
The source listing is not likely to change for this one, so clean up the
build files a bit, and make the gtk3-icon-browser MSVC project a
complete one instead of a template.
2022-05-31 15:32:13 +08:00
Chun-wei Fan 67a3208d58 build: Do not generate gtk3-demo-application MSVC project
Clean up build files a bit, as there is not much point using a
'dist-hook' to generate the Visual Studio project file for this program.
2022-05-31 15:32:13 +08:00
Chun-wei Fan 6f7e3cb3f6 MSVC projects: Generate demo sources in IntDir
This is to reduce the pollution in the souce directories.  Update the
include paths accordingly.
2022-05-31 15:32:13 +08:00
Chun-wei Fan b58ba13a9e win32/generate-msvc.mak: Split up rule to regenerate demos.h.win32
This way, we can re-use items when we want to support generating project
files from the templates, such as building with project files directly
from a GIT checkout, or when we add sources and want to quickly add them
into the project files.
2022-05-31 15:32:13 +08:00
Chun-wei Fan 3292e9d67b MSVC Projects: Rename Makefile variable
Use VS1X instead of VS10 in the variable names in the NMake Makefiles,
since the VS2010 MSBuild Visual Studio project files really apply to all Visual
Studio versions at or after VS2010.

Also use variable substitution here to ease future maintenance.
2022-05-31 15:32:13 +08:00
Chun-wei Fan c8db9e1690 Merge branch 'msvcproj-nmake-robust' into 'gtk-3-24'
MSVC projects: Make helper NMake Makefiles more robust and faster

See merge request GNOME/gtk!4780
2022-05-31 07:28:16 +00:00
Chun-wei Fan 8d4c2708a0 Visual Studio projects: Speed up build
...for the sources and header generating phase, so that we can reduce
the number of times that we generate the source file lists that we need.
2022-05-31 14:56:31 +08:00
Chun-wei Fan 1f5bfb40ff Merge branch 'msvcproj-py3-req' into 'gtk-3-24'
Visual Studio projects: Make it clear that Python 3.x is now recommended

See merge request GNOME/gtk!4779
2022-05-31 06:28:43 +00:00
Chun-wei Fan 896a420da4 README.win32: Mention the possibility of using Python-2.7.x
It is probably still possible with older GLib and GObject-Introspection
versions, but it is certainly not recommended with the advent of Meson.

One will not be able to re-generate demos.h.win32 (for
enabling/disabling the Font Features Demo) with Python 2.7.x-Python 3.x
or PERL must be used.
2022-05-31 14:13:23 +08:00
Chun-wei Fan 86270ec423 MSVC projects: Make helper NMake Makefiles more robust
Append the detected Visual Studio version and target arch to the various
NMake Makefile snippets we generate on the fly, so that if multiple
items access the helper NMake Makefiles at the same time, we will be
much less prone to trouble.

This is not 100% fool-proof, but should make things much more robust when
attempting to build via different Visual Studio versions and configs at
the same time.
2022-05-31 10:46:36 +08:00
Chun-wei Fan a61ed05e32 Visual Studio projects: Make it clear Python 3.x is now required
The scripts that are used during the build to generate the sources now
do require Python 3.x to work, so make this clear to people.

In the Visual Studio projects, update the default Python installation to
correspond with Python 3.7.x or later, which is the lowest supported
version series of Python at this point.
2022-05-31 10:46:10 +08:00
Matthias Clasen 2152e76ec4 Merge branch 'gtk-3-24-fix-gimp' into 'gtk-3-24'
macos: Fix to offscreen window selections in Gimp 2.99

See merge request GNOME/gtk!4305
2022-05-27 21:26:51 +00:00
Lukas Oberhuber 16ded6835c macos: Fix to offscreen window selections in Gimp 2.99 2022-05-27 21:26:50 +00:00
Matthias Clasen 75d3095a6b Merge branch 'wayland-cursor-size' into 'gtk-3-24'
wayland/cursor: Sanity check cursor image size

See merge request GNOME/gtk!4381
2022-05-27 11:02:22 +00:00
Emmanuele Bassi 1cf58407be Merge branch 'dont-dist-gresource-srcs' into 'gtk-3-24'
Don't dist some generated sources

See merge request GNOME/gtk!4738
2022-05-25 13:22:23 +00:00
Luca Bacci 02b40fd64d Merge branch 'msvcproj-nmake-install' into 'gtk-3-24'
Cleanup Visual Studio project files a bit

See merge request GNOME/gtk!4734
2022-05-25 08:23:58 +00:00
Matthias Clasen eb4d736a4d Merge branch 'quartz-redraw-pixbuf' into 'gtk-3-24'
quartz: Use CALayer to back GdkQuartzView

See merge request GNOME/gtk!4728
2022-05-21 13:15:21 +00:00
John Ralls b94ed34f9c [quartz] Manage implementation surface lifetime.
To prevent leaking cairo surfaces while persisting the parts that
don't need to be redrawn.
2022-05-19 17:02:55 -07:00
John Ralls df94d0168d Use a CVPixelBuffer instead of a CGImage. 2022-05-19 16:58:39 -07:00
John Ralls be60902805 Draw window to image_surface and apply to CALayer. 2022-05-19 16:52:59 -07:00
John Ralls 2d3eb0c6a7 [quartz] Draw needs_display_region if available 2022-05-19 16:46:35 -07:00
John Ralls 8182c978db quartz: add CVDisplayLink based frame clock
This uses CVDisplayLink to drive the GdkFrameClock. A GdkWindow
can register a frame callback to thaw their frame clock as necessary
based on the next notification from CVDisplayLink.

CVDisplayLink notifies us on a high-priority thread. We use the same
NSEventas gdkeventloop-quartz.c to wakeup the main loop. This is done
so that we don’t pathologically wake up the select thread to then
continue notifying the main loop.

We use an embedded GList node in the GdkWindowImplQuartz so that we
can avoid allocating any lists or arrays for pending frame callbacks.
Compare this to the same design in GdkWindow for children.
2022-05-19 16:29:01 -07:00
Chun-wei Fan ff847c43ad Drop win32/Makefile.msvc-introspection
We no longer use the autotools 'dist-hook' to generate the items that we
need to build introspection with the Visual Studio projects, so drop the
autotools files and bits that we had to support this.  So, for
introspection on Visual Studio via the project files, it is purely via
NMake at this point.
2022-05-19 11:33:25 +08:00
Chun-wei Fan fe548537f9 build: Write introspection rules directly in NMake Makefiles
By doing so, we can drop the autotools rules that we use to generate the
file lists and rules for building introspection via NMake Makefiles for
Visual Studio builds via the project files.
2022-05-19 11:22:12 +08:00
Chun-wei Fan c05d21c9af gtk: Build: Prefix deprecated source listings
...with gtk_, so that they are distinguished from other names and is
more clear to people.
2022-05-19 10:58:01 +08:00
Chun-wei Fan 574bd57f72 gtk-sources.inc: Split base sources in two parts
Otherwise, NMake will choke when creating a filelist from it.  This
U1095 error is nasty! :|
2022-05-19 10:58:01 +08:00
Chun-wei Fan 7c2e4fa3b2 gdk: Move source listings to gdk-sources.inc
We want to share those listings with other non-autools build systems.
2022-05-19 10:57:55 +08:00
Chun-wei Fan f324c650a7 gdk/: Rename gdk-pub-headers.h to gdk-sources.inc
We want to make the sources listings for libgdk shared as well.
2022-05-19 09:41:48 +08:00
Chun-wei Fan 6e193eb141 win32/vs10/*.vcxproj: Consolidate project configs
Like what was done in the *.vcxprojin templates, consolidate project configs
that are repetitive, and use the 'Condition=' directive to distinguish between
configuration and/or target platform differences.
2022-05-19 09:41:48 +08:00
Chun-wei Fan 3bd1ed8c31 win32/vs10/*.vcxprojin: Consolidate project configs
We can use MSBuild "Condition" items to consolidate the configs, so that we can
clean up the project files a bit.
2022-05-19 09:41:48 +08:00
Chun-wei Fan 4c2cd5910f Visual Studio projects: Make property sheets shared
...for Visual Studio 2010 and later, since we used to copy them and
merely update the value of $(VSVer) during 'make dist' as needed.

Instead of doing that, move the property sheets for Visual Studio 2010,
which is the base version that we use, into a directory of its own, and
make the Visual Studio 2010~2022 projects look for them in that
directory, and set VSVer according to the toolset version identified by
each of the project files.

The ARM64-specific property sheet needed for VS2017 and the VS2008
property sheets will remain as they are.
2022-05-19 09:41:48 +08:00
Chun-wei Fan ac25eeb34a Visual Studio projects: Drop another property sheet
We can again use MSBuild trickery to do what was done in the dropped
property sheet.

Unfortunately, like the last commit, I couldn't figure out a way do to
something similar in the VS2008 project files... :|
2022-05-19 09:41:48 +08:00
Chun-wei Fan c50cd6f95c Visual Studio projects: Drop unneeded property sheet
We can use MSBuild trickery to do what the property sheet intends to
cover
2022-05-19 09:41:48 +08:00
Chun-wei Fan f4811ea1f1 build: Drop gtk3-install.[vsprops|props]
They are not used anymore, and are removed at this point.
2022-05-19 09:41:48 +08:00
Chun-wei Fan 455686a57f Visual Studio Projects: Use NMake Makefile to copy build results
... and so stop using gtk3-install.[vsprops|props], and remove that
property sheet from the dist and dist the NMake Makefile for the
purpose.

Also remove win32/vs10/gtk3-install.vcxproj.filters as well, as it is
no longer needed.

We will remove the gtk3-install.[vsprops|[props][.in] in a subsequent
commit.
2022-05-19 09:41:48 +08:00
Chun-wei Fan 3b5b8bbebe win32/: Add install-msvc.mak
This is an NMake Makefile that will replace the property sheets in the
Visual Studio project files so that we can call it from the project
files to "install" the binaries and introspection files that were built,
along with the header files and other data files, which aims to be
easier to maintain for the current approach.

This will also be expanded upon to optionally build the translation
files and make the installed files more in-line with what are done in
the Meson build files, where there could be compatibility problems with
older Visual Studio toolchains.
2022-05-19 09:41:48 +08:00
Chun-wei Fan 331090c148 win32/create-lists-msvc.mak: Pull in the newly-split source listings
We are going to use them to help us to use an NMake Makefile to copy the
built files and headers in our "install" directory.
2022-05-19 09:41:48 +08:00
Chun-wei Fan 8477c0e765 win32/create-lists-msvc.mak: Clean up a bit
We now have the theme CSS source listings in gtk/gtk-sources.inc, so
make use of it.  No need to repeat items from there.
2022-05-19 09:41:48 +08:00
Chun-wei Fan ea3b599d7f libgail-util: Split out sources listings
We want to share the listings with other non-autotools build systems.
2022-05-19 09:41:48 +08:00
Chun-wei Fan aa83f9fb42 gtk/Makefile.am: Split out more items
... to gtk-sources.inc, since we will want to share the items in the lists that
were split out.
2022-05-19 09:41:48 +08:00
Chun-wei Fan e21a578cb1 gtk: Rename gtk-mkenums-headers.mak to gtk-sources.inc
We want to reuse more sources listings in other non-autotools build
systems.
2022-05-19 09:41:48 +08:00
Chun-wei Fan def4b6c95f gdk/broadway: Split out sources listing
This way, we can reuse these lists in other non-autotools Makefile-based
build systems.
2022-05-19 09:41:47 +08:00
Chun-wei Fan cb494e0ad8 gdk/win32: Split out sources listing
This way, we can reuse this list in other non-autotools Makefile-based
build systems.
2022-05-19 09:41:47 +08:00
Matthias Clasen 4e3a3f0553 3.24.34 2022-05-18 14:52:03 -04:00
Chun-wei Fan 0264e2d6a6 demos: Fix distcheck
Make sure that we remove the files generated by glib-compile-resources
during distclean.
2022-05-18 17:48:16 +08:00
Chun-wei Fan bac9ff22f5 gtk/Makefile.am: Fix distcheck
Apparently distcheck expects the generated gtk.gresource.xml to be
there.
2022-05-18 15:32:21 +08:00
Chun-wei Fan dc9d60fc9a win32: Update Visual Studio projects
This is a follow-up commit so that the generated GResources sources for
the demos are included in the project files.

As a result, don't include demo_resources.c when regenerating
gtk3-demo.vc[x]proj for toggling on or off the font features demo, as it
would have been there.
2022-05-17 23:50:24 +08:00
Chun-wei Fan 472c40fd3f demos: Don't dist the generated GResource sources
The Visual Studio projects have support for generating these, especially
that the encoded string that result from them may become too big for the
Visual Studio compiler to handle (such as for gtk3-demo) and we are normally
supposed to generate the GResources sources for all builds, as the
generated code depends on the compiler being used).
2022-05-17 18:44:58 +08:00
Chun-wei Fan 39940e0892 gtk/: Don't distribute the generated sources
We already generate some of the sources for all builds, so extend this
to the other generated sources as well, since the Visual Studio projects
added support for generating these sources too.
2022-05-17 18:43:36 +08:00
Chun-wei Fan abbf7a3497 gdk/: Don't distribute the built sources
The Visual Studio projects have support for generating these items, so
we don't really need to distribute them with the sources.
2022-05-17 18:42:37 +08:00
John Ralls 3c721c5a80 quartz: drop beam sync penalty code
Now that we have a frame clock in place, we should be able to drop
the beam-sync penalty prevention code as we should be aligning our
draws with CVDisplayLink.
Originally by Christian Hergert <chergert@redhat.com>, flushWindow
corrections and improvements by John Ralls.
2022-05-05 16:19:02 -07:00
Christian Hergert 0c439e4b83 quartz: squash compiler warning about enums
We don’t care about the other enums, fine to squash the warning.
2022-05-05 16:08:54 -07:00
John Ralls b72e4437a2 quartz: Clean up two macOS deprecation warnings. 2022-05-05 16:07:47 -07:00
John Ralls acc1eb917b Quartz: Don't crash trying to release a NULL CGContext. 2022-05-05 16:04:42 -07:00
Matthias Clasen 01edbfb976 Merge branch '3-24-build-with-array-bounds' into 'gtk-3-24'
gtkimagedefinition: Check array bounds

See merge request GNOME/gtk!4677
2022-05-03 17:47:43 +00:00
Matthias Clasen 75beff2e13 Merge branch 'wip/carlosg/im-wayland-backports-3.24' into 'gtk-3-24'
gtk/imwayland: Use serial to control outbound messages

See merge request GNOME/gtk!4682
2022-05-03 16:36:10 +00:00
Matthias Clasen 3e4c9b1f04 Merge branch 'wip/another-randr-error-trap' into 'gtk-3-24'
[3.24] x11: Trap errors happening when getting output properties

See merge request GNOME/gtk!4680
2022-05-03 00:46:32 +00:00
Carlos Garnacho 5321fa25a5 imcontextwayland: Ignore preedit updates from NULL to NULL
If we get consecutive preedit string updates that announce a NULL
string, we still do end up issuing ::preedit-changed with those.
Ignore changes from NULL to NULL, it is the other combinations which
must issue this signal.
2022-05-02 23:34:09 +02:00
Carlos Garnacho 49b6410c26 imwayland: Do not defer commit() after set_surrounding_text()
For reasons that only apply to the old serial handling, asking for
the surrounding after IM changes resulted in lazy handling of
commit() afterwards.

With the recent interpretation of serials, this problem became more
apparent, since it is in fact very likely that the last interaction
step after an IM change is notifying of the changed surrounding
text after the IM change was applied.

Make handling of surrounding text similar to caret position changes,
always commit() after the state change, but skip through non-changes.

This makes the compositor state fully up-to-date after an IM change.

(cherry-picked from commit eb7c78aa48)
2022-05-02 23:34:09 +02:00
Carlos Garnacho 802a748e5b gtk/imwayland: Use serial to control outbound messages
Following the text-input protocol changes at
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/115,
use the serial number to have the client push changes to the
zwp_text_input_v3 object only after compositor/client states match.

This specifically is more lenient to compositors pushing multiple
.done events ahead of the client replying to them.

(cherry-picked from commit f108f053d4)

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4853
2022-05-02 23:33:37 +02:00
Jonas Ådahl 9addb14a83 x11: Trap errors happening when getting output properties
This is to avoid getting X11 errors (thus aborting/exiting with a
failure) during rapid hotplugs, which may happen during e.g. CI testing.
2022-05-02 16:49:23 +02:00
Peter Bloomfield 54d319bc32 gtkimagedefinition: Extend commit b38266c0
Similarly, uses casts in `gtk_image_definition_unref()`. Compilation
succeeds without them, unlike in `gtk_image_definition_ref()`, because
`gtk_image_definition_unref()` is not called internally, unlike
`gtk_image_definition_ref()`. But the build would fail if some function
defined in the module were changed in the future to call
`gtk_image_definition_unref()`, and we can future-proof it now. This
also removes an inconsistency in how we access the members of the union.
2022-04-30 13:09:04 -04:00
Peter Bloomfield a5d208adaf gtkimagedefinition: Check array bounds
`jhbuild build gtk+-3` with GCC 12 fails with:
```
In function ‘gtk_image_definition_ref’,
    inlined from ‘gtk_image_definition_new_empty’
    at ../../../../jhbuild/checkout/gtk+-3/gtk/gtkimagedefinition.c:107:10:
../../../../jhbuild/checkout/gtk+-3/gtk/gtkimagedefinition.c:241:13: error:
    array subscript ‘GtkImageDefinition {aka union _GtkImageDefinition}[0]’
    is partly outside array bounds of ‘GtkImageDefinitionEmpty[1]’
    {aka ‘struct _GtkImageDefinitionEmpty[1]’} [-Werror=array-bounds]
  241 |   def->empty.ref_count++;
      |   ~~~~~~~~~~^~~~~~~~~~
../../../../jhbuild/checkout/gtk+-3/gtk/gtkimagedefinition.c:
    In function ‘gtk_image_definition_new_empty’:
../../../../jhbuild/checkout/gtk+-3/gtk/gtkimagedefinition.c:105:34: note:
object ‘empty’ of size 8
  105 |   static GtkImageDefinitionEmpty empty = { GTK_IMAGE_EMPTY, 1 };
      |                                  ^~~~~
```
and many similar errors.

Fix it by casting `GtkImageDefinition` to `GtkImageDefinitionEmpty` or
similar, as appropriate.

Essentially backports 4dcd02e853 from main to gtk-3-24.
2022-04-30 13:08:32 -04:00
Charles Monzat a47f81804d Update French translation 2022-04-08 09:19:43 +00:00
Charles Monzat f52ceba88c Update French translation 2022-04-08 09:15:30 +00:00
Matthias Clasen 5ce7a4ab00 Merge branch 'mcatanzaro/set-current-folder-file' into 'gtk-3-24'
gtkfilechooser: add missing nullable annotation

See merge request GNOME/gtk!4610
2022-04-02 19:56:11 +00:00
Michael Catanzaro 56ada2f01f gtkfilechooser: add missing nullable annotation 2022-04-01 13:14:00 -05:00
Anders Jonsson 21eb3b2a6c Update Swedish translation 2022-03-27 09:57:22 +00:00
Nathan Follens 42e4c7f058 Update Dutch translation 2022-03-25 11:01:14 +00:00
Rūdolfs Mazurs 7c6a55c686 Update Latvian translation 2022-03-24 20:18:44 +00:00
Cheng-Chia Tseng 9accec627f Update Chinese (Taiwan) translation 2022-03-22 14:30:27 +00:00
John Ralls 8445653213 [quartz] Restore setting QUARTZ_RELOCATION in meson build.
This seems to have gotten lost in the migration from autotools.

Closes https://gitlab.gnome.org/GNOME/gtk/-/issues/4769
2022-03-18 11:13:34 -07:00
Kjartan Maraas ce02673b8b Update Norwegian Bokmål translation 2022-03-15 15:15:02 +00:00
Milo Casagrande 90a856a31f Update Italian translation 2022-03-14 14:46:06 +00:00
Christian Kirbach b833a05583 Update German translation 2022-03-14 01:08:30 +00:00
Baurzhan Muftakhidinov e003d4c506 Update Kazakh translation 2022-03-12 11:59:29 +00:00
Matthias Clasen 9d1d2f0a66 Merge branch 'wip/jimmac/legacy-icons-gtk3' into 'gtk-3-24'
icons: add legacy icons

See merge request GNOME/gtk!4562
2022-03-11 18:41:44 +00:00
Jakub Steiner 5a0ffbbb45 icons: add legacy icons
- add legacy hicolor icons relied on in testsuite

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/4754
2022-03-11 19:16:28 +01:00
Balázs Úr 6ebbdaddaf Update Hungarian translation 2022-03-11 01:16:17 +00:00
Christian Kirbach 044beca50b Update German translation 2022-03-08 21:03:01 +00:00
Ask Hjorth Larsen 166ec3f10b Updated Danish translation 2022-03-08 20:54:36 +01:00
Aurimas Černius adf486c26e Updated Lithuanian translation 2022-03-07 18:04:28 +02:00
Matthias Clasen 8ff9b2f83f 3.24.33 2022-03-04 21:53:36 -07:00
Matthias Clasen 57fb729c0e 3.24.32 2022-03-03 21:42:12 -07:00
Luca Bacci d53b6b858f GDK: Avoid using constructors on Win32
The constructors in GDK only have a meaning for UNIX, on Windows
they are useless.
2022-03-03 21:44:38 +01:00
Luca Bacci ef4e1c473c Define DLL_EXPORT and _GDK_EXTERN depending on whether we are building a shared or a static library
Static builds on Windows are only supported in the Meson build
2022-03-03 21:44:31 +01:00
Changwoo Ryu af22c3beae Update Korean translation 2022-03-03 12:42:48 +00:00
Luca Bacci 7644d7da27 Merge branch 'fix_missing_printer_libs_win32' into 'gtk-3-24'
Add missing Windows libs for printing during cross-compiling (GTK3)

See merge request GNOME/gtk!4526
2022-03-03 08:52:02 +00:00
Мирослав Николић 3a6dfa6808 Update Serbian translation 2022-03-03 04:23:19 +00:00
Luca Bacci d5ce63508f GdkWin32: Retrieve module HINSTANCE in static builds 2022-03-02 16:25:09 +01:00
Goran Vidović 90ceb6fecc Update Croatian translation 2022-03-01 12:41:57 +00:00
Luca Bacci a17a0c5452 Merge branch 'fix_dllMain_win32' into 'gtk-3-24'
Fix dllMain win32

See merge request GNOME/gtk!4524
2022-03-01 06:03:37 +00:00
Melroy van den Berg d13e05be93 Fix dllMain win32 2022-03-01 06:03:36 +00:00
John Ralls 07d847d174 [quartz] Fix use-before-init.
Thanks to Lukas Oberhuber for the patch.

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/4726
2022-02-28 10:05:47 -08:00
Luca Bacci c94837759e Merge branch 'win32-fix-4724-gtk3' into 'gtk-3-24'
gdkkeys-win32: Only perform substitution as last-resort [GTK3]

See merge request GNOME/gtk!4530
2022-02-28 08:44:44 +00:00
Philip Zander b85e60524f gdkkeys-win32: Only perform substitution as last-resort
Instead of performing keyboard layout substitution whenever we find a matching
entry in the registry, first try to load the original layout and only attempt
substitution when that fails.

See #4724
2022-02-27 16:32:59 +01:00
Asier Sarasua Garmendia f2f04ddd17 Update Basque translation 2022-02-27 08:04:17 +00:00
Melroy van den Berg d3ffdd59f8 Add missing Windows libs for printing - win32. During cross-compiling 2022-02-26 17:24:30 +01:00
Luca Bacci cf6627e11f Merge branch 'gdk-win32-fix-issue-1402' into 'gtk-3-24'
Fix last error reporting when calling GetClipboardOwner

See merge request GNOME/gtk!4520
2022-02-25 16:50:59 +00:00
Luca Bacci f19897e71f Fix last error reporting when calling GetClipboardOwner
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/1402
2022-02-25 17:02:26 +01:00
Luming Zh a238488966 Update Chinese (China) translation 2022-02-25 00:08:34 +00:00
Fran Dieguez e13ebcd7b3 Update Galician translation 2022-02-24 12:55:37 +00:00
Daniel Mustieles d72f3e9ec9 Updated Spanish translation 2022-02-24 12:53:52 +01:00
Yosef Or Boczko 3ae4467297 Update Hebrew translation 2022-02-22 20:50:54 +00:00
Matthias Clasen 0eec64aacc Merge branch 'fix_derefence_fault_gdk_x11_device_xi2_window_at_position' into 'gtk-3-24'
fix(dereference NULL ptr): Also tests "impl" in gdk_x11_device_xi2_window_at_position

See merge request GNOME/gtk!4408
2022-02-22 19:43:54 +00:00
Emmanuele Bassi 887c9dea94 Merge branch 'meson-use-gnome-post-install' into 'gtk-3-24'
Meson: Use gnome.post_install

See merge request GNOME/gtk!4379
2022-02-22 10:08:16 +00:00
Matej Urbančič d6e544bc02 Update Slovenian translation 2022-02-21 19:59:33 +00:00
Luca Bacci a4e482437f Merge branch 'gdk-win32-fix-ime-popup-position' into 'gtk-3-24'
Win32 IME: Use CFS_EXCLUDE to specify cursor position

See merge request GNOME/gtk!4497
2022-02-21 13:36:21 +00:00
Marek Černocký 186a85bdaa Updated Czech translation 2022-02-21 10:46:34 +01:00
Kukuh Syafaat 7abb4c6e01 Update Indonesian translation 2022-02-21 06:53:27 +00:00
Emin Tufan Çetin 1038e679fb Update Turkish translation 2022-02-20 15:02:09 +00:00
Piotr Drąg 9e668be546 Update Polish translation 2022-02-20 13:56:31 +01:00
Danial Behzadi 2196ee9867 Update Persian translation 2022-02-20 11:17:07 +00:00
Carlos Garnacho ed08a4e929 Win32 IME: Use CFS_EXCLUDE to specify cursor position
That mode of operation requires an exclude rectangle, which maps
better to the info provided on gtk_im_context_set_cursor_location(),
coincidentally also fixes the offset seen on the IME preedit window.

https://gitlab.gnome.org/GNOME/gtk/-/issues/374
https://bugzilla.gnome.org/show_bug.cgi?id=663096
2022-02-19 18:42:07 +01:00
Daniel Șerbănescu 45d265c851 Update Romanian translation 2022-02-19 13:38:52 +00:00
Claude Paroz a2e44d343e Updated French translation 2022-02-19 11:31:50 +01:00
Thibaud CANALE 0081dfc51d fix(dereference NULL ptr): Also tests "impl" in gdk_x11_device_xi2_window_at_position
Signed-off-by: Thibaud CANALE <thican@thican.net>
2022-02-18 21:10:41 +01:00
Aleksandr Melman b064bbd1e0 Update Russian translation 2022-02-18 19:34:13 +00:00
Jordi Mas 155bb07a4e Update Catalan translation 2022-02-18 07:33:17 +01:00
Rafael Fontenelle b10db12e49 Update Brazilian Portuguese translation 2022-02-18 00:05:36 +00:00
Anders Jonsson 1de15f8f38 Update Swedish translation 2022-02-17 22:10:05 +00:00
Hugo Carvalho bd2ae42d57 Update Portuguese translation 2022-02-17 21:28:19 +00:00
Yuri Chornoivan d75793b5af Update Ukrainian translation 2022-02-17 15:38:44 +00:00
Matthias Clasen 89b20b63cd Merge branch 'wip/hadess/app-id-inspector' into 'gtk-3-24'
inspector: Show app ID and resource path in the General tab

See merge request GNOME/gtk!4492
2022-02-17 13:37:23 +00:00
Bastien Nocera 5c92e6ddc6 inspector: Show app ID and resource path in the General tab
This makes it easier to figure out those values (which are mentioned in
the GtkApplication documentation) rather than working that out from the
way they're generated (or documented as being generated).
2022-02-17 12:27:19 +01:00
Luca Bacci 7394f6c720 Merge branch 'fix-issue-3690' into 'gtk-3-24'
Fix gdk_win32_window_get_frame_extents

See merge request GNOME/gtk!4478
2022-02-14 20:22:10 +00:00
Luca Bacci 4a8d96b95b GdkWin32: Fix gdk_win32_window_get_frame_extents
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/4690
2022-02-14 16:16:47 +01:00
Emmanuele Bassi 160ef56de4 Merge branch 'fix-cell-accessible-leak' into 'gtk-3-24'
Fix a leak of cell accessibles

See merge request GNOME/gtk!4471
2022-02-12 00:56:20 +00:00
Matthias Clasen cc977be580 Fix a leak of cell accessibles
gtk_container_cell_accessible_add_child is transfer none,
so we need to drop the reference we hold, otherwise it
leaks.
2022-02-11 18:39:55 -05:00
Luca Bacci e6a028bfca Merge branch 'win32-fix-ctrl-shift' into 'gtk-3-24'
gdkkeys-win32: Also ignore Ctrl + Shift (etc.)

See merge request GNOME/gtk!4456
2022-02-08 22:40:37 +00:00
Philip Zander a40f9261e9 gdkkeys-win32: Also ignore Ctrl + Shift (etc.)
Some Windows keymaps have bogus mappings for the Ctrl modifier. !4423 attempted
to fix this by ignoring the Ctrl layer, but that was not enough. We also need to
ignore combinations of Ctrl with other modifiers, i.e. Ctrl + Shift. For example,
Ctrl + Shift + 6 is mapped to the character 0x1E on a US keyboard (but it should
be treated as Ctrl + ^). Basically, always ignore Ctrl unless it is used in
conjunction with Alt, i.e. as part of AltGr.

Related issue: #4667
2022-02-08 20:44:35 +01:00
Matthias Clasen 38a1a23a53 Merge branch '3-24-30-api-additions-since-marker' into 'gtk-3-24'
Add `Since` markers for new API between 3.24.11 and 3.24.30

See merge request GNOME/gtk!4425
2022-02-08 00:15:10 +00:00
Matthias Clasen 5cdb9548d9 Merge branch 'tiled-border-fix-3-24' into 'gtk-3-24'
theme: Fix incorrect border color for tiled windows for 3.24

See merge request GNOME/gtk!4437
2022-02-08 00:13:27 +00:00
Matthias Clasen 08f47e0b01 Merge branch 'gtkcellrendererprogress-tabular' into 'gtk-3-24'
GtkCellRendererProgress: use tabular figures

See merge request GNOME/gtk!4444
2022-02-07 23:53:50 +00:00
Matthias Clasen 4621008326 Merge branch 'improve-gdk-screen-docs' into 'gtk-3-24'
gdkapplaunchcontext: Improve set_screen() docs

See merge request GNOME/gtk!4435
2022-02-07 23:37:33 +00:00
Benjamin Otte 807ae5cba8 Merge branch 'wip/hadess/inspector-search-by-pointer' into 'gtk-3-24'
inspector: Search by pointer address

See merge request GNOME/gtk!4441
2022-02-04 17:51:05 +00:00
Bastien Nocera 95e9d85716 inspector: Search by pointer address
Useful to find a widget that corresponds to a pointer address in gdb.
2022-02-04 18:16:50 +01:00
Joonas Henriksson 1b78ed4488 theme: Fix incorrect border color for tiled windows 2022-02-02 06:50:52 +02:00
Phaedrus Leeds c5c76ad327 gdkapplaunchcontext: Improve set_screen() docs 2022-02-01 11:24:04 -08:00
Boyuan Yang 3dc44becf0 Update Chinese (China) translation 2022-01-31 04:02:27 +00:00
Sebastian Dröge 133ff7687a Add Since marker for GtkHeaderBarAccessible
It was added in 3.24.11.
2022-01-30 19:09:50 +02:00
Sebastian Dröge a47bb16cff Add Since marker for gdk_wayland_window_set_application_id()
It was added in 3.24.22.
2022-01-30 19:07:42 +02:00
Sebastian Dröge 990d298720 Add Since marker to new accessibility API from 3.24.30
- GtkFileChooserWidgetAccessible
 - GtkPlugAccessible
 - GtkSocketAccessible
2022-01-30 18:56:55 +02:00
Luca Bacci 3ebf21c579 Merge branch 'win32-keys-ignore-ctrl' into 'gtk-3-24'
gdkkeys-win32: Ignore CTRL bit for key translation

See merge request GNOME/gtk!4423
2022-01-30 10:45:44 +00:00
Philip Zander cfc6d6ddb7 gdkkeys-win32: Ignore CTRL bit for key translation
Some keymaps on Windows contain bogus mappings for Ctrl+key for certain
keys, e.g. Ctrl+Backspace = Delete, or Ctrl+[ = 0x1B. These are never
used on Windows, so we should ignore them.

Fixes #4667
2022-01-29 22:36:40 +01:00
Lukas K 503e8f40b9 GtkCellRendererProgress: use tabular figures
yields more visually stable appearance
2022-01-28 19:52:47 +01:00
John Ralls 1b77a4dba9 Merge Lukas Oberhuber's 'fix-retina-cursors' into gtk-3-24. 2022-01-26 21:41:45 -08:00
Anders Jonsson f49bb510c7 Update Swedish translation 2022-01-22 14:18:12 +00:00
Matthias Clasen a106160251 Merge branch 'fix-warning' into 'gtk-3-24'
gdk/display-wayland: Don't bypass portal for theme entries

See merge request GNOME/gtk!4400
2022-01-19 13:48:23 +00:00
Florian Müllner de360b3745 gdk/display-wayland: Don't bypass portal for theme entries
When commit 49589e1da added support for the new high-contrast key,
it missed that the getter should only use the setting directly when
not going through the portal.

https://gitlab.gnome.org/GNOME/gtk/-/issues/4651
2022-01-19 02:17:43 +01:00
Matthias Clasen 248783c202 Merge branch 'fix-places-crash' into 'gtk-3-24'
gtkplacessidebar.c: add bookmark null checking

See merge request GNOME/gtk!4399
2022-01-18 23:50:47 +00:00
Geyslan G. Bem c7f9c80eb5 gtkplacessidebar.c: add bookmark null checking
This fixes nautilus crash and perhaps other callers issues.
Nautilus (and sometimes glib) crashes with malformed URI inside of the
bookmarks file .config/gtk-3.0/bookmarks when it has no LABEL.

This is result from the closed glib MR #2065 analysis and agreement.
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2065#note_1091979

Signed-off-by: Geyslan G. Bem <geyslan@gmail.com>

Fixes: #4643
2022-01-18 18:21:22 -05:00
Luca Bacci 2f00ceb492 Merge branch 'revert-fd6ce997' into 'gtk-3-24'
Revert "Bug 676077: Fix handling of Keyboard Input on Windows"

See merge request GNOME/gtk!4384
2022-01-17 09:43:21 +00:00
Chun-wei Fan 58e038f32e Revert "Bug 676077: Fix handling of Keyboard Input on Windows"
The actual code that does the IM context code handling on Windows now uses the
native Windows APIs to handle keystrokes, so this patch is no longer needed, as
it was found that it instead caused issues.

Pointed out in issue #2865.

This reverts commit fd6ce9975e.
2022-01-17 11:31:28 +08:00
Robert Mader da4066774b wayland/cursor: Sanity check cursor image size
On Wayland it is a protocol violation to upload buffers with
dimensions that are not an integer multiple of the buffer scale.

Until recently, Mutter did not enforce this. When it started
doing so, some users started seeing crashes in GTK apps because the
cursor theme ended up with e.g. a 15x16 pixel image at scale of 2.

Add a small sanity check for this case.
2022-01-14 20:49:28 +01:00
Luca Bacci b5d0c44a87 Meson: Use gnome.post_install
Only available on Meson 0.57.0 and later
2022-01-14 17:30:35 +01:00
Lukas Oberhuber 021cdf382d macos: correctly handle retina cursors
This change correctly sizes HiDPI curors on macOS.

Before this, the cursors would appear double the size of normal cursors
on non HiDPI screens.
Based in part on this comment:
https://gitlab.gnome.org/GNOME/gtk/-/issues/613#note_687914
2022-01-14 00:10:15 +00:00
Luca Bacci 8252f99e08 Merge branch 'win32-fix-altgr-gtk3' into 'gtk-3-24'
IMContextSimple: Fix AltGr not working on Win32 [GTK3]

See merge request GNOME/gtk!4374
2022-01-13 19:46:26 +00:00
Philip Zander f03bf55688 IMContextSimple: Fix AltGr not working on Win32
The old code assumed that any key press containing Ctrl or Alt cannot be
regular text input. This is not correct on Win32 as AltGr = Ctrl + Alt.
2022-01-13 13:43:23 +01:00
Matthias Clasen dac9baf3b1 Merge branch 'wip/keep-scale-3-24' into 'gtk-3-24'
wayland/window: Only update the scale if on any outputs

See merge request GNOME/gtk!4353
2022-01-12 19:45:50 +00:00
Matthias Clasen 7a35c5bd4e Merge branch '4627-printing-Unref-old-spool_io-before-setting-new-one-gtk3' into 'gtk-3-24'
printing: Unref old spool_io before setting new one

See merge request GNOME/gtk!4369
2022-01-12 19:37:38 +00:00
Marek Kasik 0387486407 printing: Unref old spool_io before setting new one
Unref private spool_io of GtkPrintJob before setting it to a new one
in gtk_print_job_set_source_file() and gtk_print_job_set_source_fd()
to prevent a leak.

Fixes: #4627
2022-01-12 12:46:27 +01:00
Matthias Clasen 8fc2af7bb3 Merge branch 'fontchooser-fix-3' into 'gtk-3-24'
docs: Fix gtk_tree_selection_get_selected_rows()

See merge request GNOME/gtk!4354
2022-01-12 02:49:27 +00:00
Luca Bacci 7e9935e381 Merge branch 'file-chooser-native-win32-grab-only-when-modal' into 'gtk-3-24'
GtkFileChooserNativeWin32: add GTK grab only when modal

See merge request GNOME/gtk!4364
2022-01-11 13:49:45 +00:00
Luca Bacci 0b26e8b8a3 GtkFileChooserNativeWin32: add GTK grab only when modal 2022-01-11 14:23:10 +01:00
Luca Bacci 84386c6466 Merge branch 'win32-keymap-fixes' into 'gtk-3-24'
GdkWin32Keymap bugfixes

See merge request GNOME/gtk!4359
2022-01-11 09:56:48 +00:00
David Hogan cc47262ccb gdkkeys-win32: Perform keyboard layout substitution
For some users, GetKeyboardLayoutNameA() returns an alias instead of the
fully resolved keyboard layout identifier. In that case, we have to
query the registry to resolve the alias before we can look up the DLL
path.

See comments under #4610
2022-01-10 03:34:59 +01:00
Philip Zander 4e9ddaf086 gdkkeys-win32: Fix handling of SGCAPS
Contrary to what you can read on the internet, SGCAPS keys don't work
by having capslock toggle the KBDCTRL bit, they actually have two
consecutive table entries, the first of which is for the normal
version and the second of which is for the capslocked version.

Background: SGCAPS is short for Swiss German caps because Swiss German
was the first layout to use this feature. For keys with the SGCAPS flag,
capslock has a different effect than pressing shift. For example:
Shift + ü = è,  CapsLock + ü = Ü,  CapsLock + Shift + ü = È
2022-01-09 12:36:47 +01:00
Philip Zander 8b1c334c4a gdkkeys-win32: Fix crash when keyboard DLL failed to load
DLL loading failures should not happen under normal circumstances, but
we should at least try not to crash and and print better diagnostic
messages if they do happen.

See #4610
2022-01-09 12:36:47 +01:00
Philip Zander 404229ad75 gdkkeys-win32: Add keysym mapping for capslock key
Add missing mapping between VK_CAPITAL and GDK_KEY_Caps_Lock, so
applications get a meaningful keyval rather than ffffff.
2022-01-09 12:36:47 +01:00
Philip Zander acf5db32f1 gdkkeys-win32: Fix capslock handling
Previously, we treated CapsLock and KanaLock as part of the global
keyboard state, much like NumLock and ScrollLock, rather than using
the supplied modifier mask. This was because GDK does not have a
modifier mask for KanaLock, only for CapsLock, so it would not have been
possible to properly support it.

However, this approach ended up causing problems, with certain keyboard
shortcuts not registering when capslock was active. This was first
observed in Inkscape [0] and appears to affect shortcuts consisting of a
single key (like 'a') with no additional modifiers (wheareas shortcuts
like 'ctrl+a' work).

So now we are using the supplied GDK_LOCK_MASK instead, and dropped
support for KanaLock, which we probably don't need anyway (since regular
text input should be handled by the IME input module -- the keymap is
mainly for shortcuts and keybindings, where you don't really want
KanaLock).

[0] https://gitlab.com/inkscape/inkscape/-/issues/3082
2022-01-09 12:36:32 +01:00
Luca Bacci 99c7cb11e5 Merge branch 'fix-4610' into 'gtk-3-24'
gdkkeys-win32: Fix uninitialized value (#4610)

See merge request GNOME/gtk!4355
2022-01-07 20:53:28 +00:00
Luca Bacci ed67e424f2 Merge branch 'win32-theme-flat-button-fix' into 'gtk-3-24'
GTK WIn32 theme - make buttons with .flat class appear flat and buttons in toolbar non-flat if they don't have said class

See merge request GNOME/gtk!4350
2022-01-07 19:58:47 +00:00
Philip Zander f81da43b00 gdkkeys-win32: Fix uninitialized value
gdk_win32_keymap_get_entries_for_keycode() did not initialize n_entries,
which led to a wrong number of items being returned in some cases.

/fixes #4610
2022-01-07 20:48:50 +01:00
Matthias Clasen b4eeada025 fontchooser: Fix axis name handling
This code was just broken.

Fixes: #4603
2022-01-07 14:27:17 -05:00
Jonas Ådahl b86e6bc38a wayland/window: Only update the scale if on any outputs
If we ended up on no output at all, keep the HiDPI scale as is, as it
likely means we were on a workspace that was switched away from. By
keeping the same scale, we avoid unnecessary scale changes that would
otherwise take place if the scale when on monitors would end up being
more than 1.
2022-01-07 19:33:33 +01:00
KrIr17 e9370d1dc8 make flat buttons look flat (and allow non-flat button in toolbars) 2022-01-07 16:59:24 +00:00
Luca Bacci 0e09bb75b5 Merge branch 'improve-font-features-msvc' into 'gtk-3-24'
Visual Studio projects: Simplify building font features demo

See merge request GNOME/gtk!4336
2022-01-06 05:11:53 +00:00
Luca Bacci 185f82c2ad Merge branch 'msvc-project-improvements' into 'gtk-3-24'
Improve Visual Studio projects (for gtk-3-24)

See merge request GNOME/gtk!4324
2022-01-05 14:12:57 +00:00
Chun-wei Fan eebc70bf27 Visual Studio projects: Simplify building font features demo
Improve the NMake Makefiles that is used to re-generate demos.h(.win32)
by re-generating the gtk3-demo Visual Studio projects, so that one would
no longer need to do that manually.

Update the build instructions accordingly.
2022-01-05 17:16:00 +08:00
Chun-wei Fan cef3293184 Visual Studio projects: Generate versioned sources
Instead of relying on the ones that are currently shipped with the tarballs,
generate them from their .in counterparts prior to the build.  This includes
the Resource Scripts (.rc) for libgdk/libgtk, as well as gtkversion.h, in
addition to gdkversionmacros.h which can now be generated during prebuild.
2022-01-04 14:17:38 +08:00
Chun-wei Fan 089cccc929 Visual Studio: Make gen-gdkversionmacros-h.py generic
Rename the script as gen-version-items.py, and so make things more generic and
usable by other items in the build.  We want to eventually to be able to
generate the .rc files and the *version*.h files from their *.in counterparts
using this script.
2022-01-04 11:14:49 +08:00
Chun-wei Fan fc8b70cbdf config-msvc.mak.in: Record the interface age
We want to make use of this so that we can generate the various versioned
sources easily, such as the Windows .rc scripts and the [gdk|gtk]version*.h.
2022-01-04 11:14:49 +08:00
Chun-wei Fan 6789ff7443 Visual Studio projects: Improve generating libgtk sources
This improves the source generating process by:

*  Generating the sources in the libgtk build directory, so that we do not
   pollute the source tree.
*  Support generating gtk[private]typebuiltins.[c|h] in the Visual Studio
   projects by using NMake internally.
*  Update the projects and the introspection build files so that the generated
   sources and headers can be found.
2022-01-04 11:14:41 +08:00
Chun-wei Fan 8eaddde310 gtk/build: Split out part of headers listings
This will enable us to share this list with the NMake Makefiles that will be
used to generate the gtk[private]typebuiltins.[c|h] in the Visual Studio
projects.
2022-01-04 11:07:28 +08:00
Chun-wei Fan 67f27409e0 GDK/build: Rename deprecated_h_sources to gdk_deprecated_h_sources
This will enable us to not confuse with the deprecated headers in
gtk/deprecated as those headers are also listed under deprecated_h_sources in
gtk/deprecated/Makefile.inc, when we include the makefile snippets in both
gdk/ and gtk/.
2022-01-04 11:07:28 +08:00
Chun-wei Fan 334333f779 Visual Studio projects: Improve generating GDK sources
This makes the rest of the sources that are generated being put in GDK's build
directory for the Visual Studio projects, instead of being placed in GDK's
source subdir, so that:

*  We can avoid polluting GDK's source tree.
*  The Visual Studio builds won't interfere with the Meson builds.

Update the project files to look for the generated sources and headers in the
right places, as well as making the introspection builds look for the generated
sources as well.

Also remove the gtk3-gen-srcs property sheets and put the relevant parts in the
corresponding gtk3-build-defines property sheets, to clean things up a bit.
2022-01-04 11:07:28 +08:00
Chun-wei Fan 74d43defc5 win32: Support (re-)generating gdkenumtypes.[c|h]
Add support in the NMake Makefiles used by the Visual Studio builds to generate
the enumeration sources in gdk/ in its own build directory.
2022-01-04 11:07:27 +08:00
Chun-wei Fan caa1c0e4e5 gdk: Split out public headers listing
This is so that we can share the list with other Makefile-based build systems
to generate the enumeration sources.
2022-01-04 11:07:27 +08:00
Chun-wei Fan 61dd680b02 win32: Re-organize NMake Makefiles a bit
This way, we can have the introspection NMake Makefiles share more items
with the source generating bits.

Update the Visual Studio projects accordingly
2022-01-04 11:07:27 +08:00
Luca Bacci 6671c20632 Merge branch 'winpointer-fix-key-state' into 'gtk-3-24'
Winpointer: Fix keyboard state

See merge request GNOME/gtk!4327
2022-01-03 18:49:13 +00:00
Luca Bacci 0603dbb466 Merge branch 'filechoosernative-win32-invisible' into 'gtk-3-24'
GTK grab for GtkFileChooserNativeWin32

See merge request GNOME/gtk!4326
2022-01-03 16:12:43 +00:00
Luca Bacci 46c12b2c92 Winpointer: Fix keyboard state
The dwKeyStates field of the POINTER_INFO structure is
always set to 0 no matter what.

Use GetKeyState instead.

Fixes https://gitlab.com/inkscape/inbox/-/issues/5946
2022-01-03 15:08:58 +01:00
Luca Bacci d3f46bcb16 Add GTK grab when opening GtkFileChooserNativeWin32
Implementation copied from gtkfilechoosernativeportal.c

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/4582
2022-01-03 14:51:57 +01:00
Luca Bacci 728f0e13a8 Merge branch 'fix_windows_build' into 'gtk-3-24'
Fix Windows build in gtk 3.24.31

See merge request GNOME/gtk!4292
2022-01-02 16:27:33 +00:00
Luca Bacci 23f49038e3 Merge branch 'fix-4565' into 'gtk-3-24'
Font features: Fix building with Pango before 1.44.0

See merge request GNOME/gtk!4302
2022-01-02 15:51:51 +00:00
Luca Bacci f6fe5d37a5 Merge branch 'more-vs2022-fixes' into 'gtk-3-24'
Some further Visual Studio 2022 build improvements (for gtk-3-24 only)

See merge request GNOME/gtk!4276
2022-01-02 15:50:25 +00:00
Luca Bacci 6ba7c50a7a Add hid.lib to GDK .pc file 2022-01-02 16:11:03 +01:00
Chun-wei Fan bec88ded5f demos/gtk-demo/font_features.c: Fix build on Pango < 1.44.x
The Pango headers prior to 1.44.0 do not include the HarfBuzz headers, so we
need to re-structure how we check for HarfBuzz 2.2.0 or later if we have Pango
1.44.x or later.

Fixes issue #4565.
2021-12-30 15:33:14 +08:00
Chun-wei Fan b0e3d03831 gtkfontchooserwidget.c: Fix build with pre-1.44.x Pango
Pango headers after 1.44.0 include hb.h automatically, but not before, so
re-structure the #if/#elif/#else checks for the availability of HarfBuzz 2.2.0
or later.

Pointed out in issue #4565.
2021-12-30 15:26:44 +08:00
Matthias Clasen cae257c9dc Merge branch 'meson-reftests' into 'gtk-3-24'
meson: Do not install reftests

See merge request GNOME/gtk!4280
2021-12-29 14:42:35 +00:00
Matthias Clasen 8fe3e09cfc Merge branch 'gtk-3-24-macos-dock-quit' into 'gtk-3-24'
macOS: Dock "Quit" invokes "app.quit" action

See merge request GNOME/gtk!4299
2021-12-29 14:28:47 +00:00
Matthias Clasen 8352dee082 Merge branch 'gtk-3-24-issue-4573' into 'gtk-3-24'
macOS: Fix QuartzCore linking and compiling with 10.11

See merge request GNOME/gtk!4298
2021-12-29 13:55:43 +00:00
Thomas Holder cbd9715c3c macOS: Dock "Quit" invokes "app.quit" action
Allows the application to handle "Dock icon > Quit" the same as
"Application menu > Quit".

Requires GtkApplication's `register-session` property.

Suitable replacement for gtk-mac-integration's
`NSApplicationBlockTermination` signal.
2021-12-29 13:51:01 +01:00
Thomas Holder 0ac6144369 macOS: Fix QuartzCore linking and compiling with 10.11
Follow-up on 10b5f8a0d6

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/4573
2021-12-29 11:33:50 +01:00
Melroy van den Berg 37f9af5805 Add define for GC_ALLGESTURES, in-case WINVER is not set. 2021-12-28 00:50:17 +01:00
Melroy van den Berg 4090306fd7 Lowercaps Windows.h -> windows.h 2021-12-28 00:47:28 +01:00
Luca Bacci e6e4f9e630 Merge branch 'fix_gtk_switch_cleanup' into 'gtk-3-24'
Fix: GTK Switch crash under Windows, on exit.

See merge request GNOME/gtk!4291
2021-12-27 20:39:05 +00:00
Melroy van den Berg 1ce49e48b2 Fix: GTK Switch crash under Windows, on exit. 2021-12-27 20:39:04 +00:00
David King 7f295eeb32 meson: Do not install reftests
Match the testsuite in the main branch.
2021-12-23 10:57:58 +00:00
Chun-wei Fan 04496cc535 win32/detectenv-msvc.mak: Add section on VS2022
This will make introspection builds via the Visual Studio 2022 projects work as
the NMake Makefiles were looking for VS2019 builds, which most probably did not
exist
2021-12-22 10:12:22 +08:00
Chun-wei Fan 92a8e10789 meson: Make VS2022 builds distinct from VS2019
Make sure that we append the 'vs17' suffix to the DLL filenames rather than
appending 'vs16', so that VS2022 builds are distinct from the VS2019 ones.
2021-12-22 10:12:12 +08:00
Matthias Clasen aa89959942 Merge branch 'fix-dist' into 'gtk-3-24'
gdk/win32/Makefile.am: Dist gdkkeys-win32.h

See merge request GNOME/gtk!4270
2021-12-21 19:25:50 +00:00
Matthias Clasen bae1a43710 Merge branch 'high-contrast-3' into 'gtk-3-24'
gdk/wayland: Support new `high-contrast` key

See merge request GNOME/gtk!4272
2021-12-21 19:25:32 +00:00
Matthias Clasen a4b522f6d7 Merge branch 'meson-fixes' into 'gtk-3-24'
Meson fixes

See merge request GNOME/gtk!4273
2021-12-21 19:25:16 +00:00
Matthias Clasen 01cb9b5ae6 Update meson build for recent changes
Adapt the meson build to the changes in
commit 93e1f7f1ec.
2021-12-21 14:22:45 -05:00
David King 208e115368 Revert "meson: simplify builtin_immodules build option"
This reverts commit 749a58ab26.

This maintains feature parity with the autotools build. To achieve the
equivalent of --with-included-immodules=wayland,
-Dbuiltin_immodules=wayland,waylandgtk can be used instead.
2021-12-21 14:36:16 +00:00
David King 2b566f0633 meson: Install example schema XML 2021-12-21 13:31:35 +00:00
Florian Müllner da8f634b25 gdk/wayland: Support new high-contrast key
We now have a boolean setting that determines whether the high-contrast
theme should be used. Support it by automatically setting the existing
`gtk-theme-name` and `gtk-icon-theme-name` properties when enabled.

With that, it is no longer necessary to change the regular theme settings
for high-contrast, so toggling between high-contrast and a non-default
theme finally works reliably.
2021-12-21 14:01:10 +01:00
David King 9bad0a2d5e meson: Remove missing reftests
Removed from autotools build in commit
93e1f7f1ec.
2021-12-21 10:09:29 +00:00
Chun-wei Fan 1a73728e04 gdk/win32/Makefile.am: Dist gdkkeys-win32.h
This was missing from the tarball.
2021-12-21 16:38:17 +08:00
Matthias Clasen ab45bde94c 3.24.31 2021-12-20 23:01:49 -05:00
Matthias Clasen 93e1f7f1ec Remove a bunch of failing reftests
Still not enough to make distcheck pass.
Giving up on it :(
2021-12-20 23:01:34 -05:00
Matthias Clasen 62768629f2 Fix distcheck 2021-12-20 17:18:55 -05:00
Matthias Clasen 7521de1d61 NEWS: Updates 2021-12-20 13:29:09 -05:00
Matthias Clasen 292be6c4bb Merge branch 'gtk-3-24-bigsur-perf' into 'gtk-3-24'
macOS: Big Sur performance patch

See merge request GNOME/gtk!4265
2021-12-20 15:42:52 +00:00
Lukas Oberhuber 10b5f8a0d6 macOS: Big Sur performance patch
One of 4 that were applied on Gimp 2.99. Original authorship
@DesMcGuiness and adapted to Gtk3 by @lukaso
2021-12-18 22:59:58 +00:00
Matthias Clasen c3b3f4711d Merge branch 'gtk-3-24' into 'gtk-3-24'
gdkquartz: fix crash on uninitialized attribute

See merge request GNOME/gtk!4257
2021-12-16 13:43:32 +00:00
Lukas Oberhuber 71e2821578 gdkquartz: fix crash on uninitialized attribute
`gdk_quartz_display_get_monitor_at_window` crashes when it tries to access the NSWindow on
an offscreen window. The attribute `toplevel` of `impl` is uninitialized and
causes a segfault.

This partially fixes: https://gitlab.gnome.org/GNOME/gimp/-/issues/7608
2021-12-16 13:00:02 +00:00
Sveinn í Felli fde4431559 Update Icelandic translation 2021-12-15 19:52:29 +00:00
Sveinn í Felli d45b11e8ea Update Icelandic translation 2021-12-15 19:48:09 +00:00
Luca Bacci ff06d5d59f Merge branch 'win32-rewrite-keymap-v2' into 'gtk-3-24'
Rewrite GdkWin32Keymap (V2)

See merge request GNOME/gtk!1051
2021-12-15 11:15:27 +00:00
Matthias Clasen ef95b58500 Merge branch 'gtk-3-24' into 'gtk-3-24'
textview: Add CSS letter spacing [GTK3]

See merge request GNOME/gtk!4254
2021-12-14 18:30:45 +00:00
Melroy van den Berg 70ef77a4c2 Add CSS letter spacing to textview 2021-12-14 17:04:38 +01:00
Carlos Garnacho 2800dc356b Merge branch 'gtk-3-24-x11-xi2.4-gestures' into 'gtk-3-24'
[GTK3] Touchpad gestures for X11 (XInput 2.4, X Server 21.1)

See merge request GNOME/gtk!4212
2021-12-13 13:21:09 +00:00
Philip Zander e658e3c449 gdk/win32: Fix modifiers sometimes being consumed for special keys
Windows keymaps contain some bogus mappings, e.g. Ctrl+Backspace=Delete.
Previously, we correctly identified the key as Backspace, but the Ctrl
was still consumed, so the Ctrl+Backspace keybinding did not work.
2021-12-10 01:14:47 +01:00
Philip Zander b3fcfa4bbc gdk/win32: Fix group parameter not being used by translate_keyboard_state
gdk_win32_keymap_translate_keyboard_state erroneously used the active
group rather than the specified group, which caused shortcuts not to
work in Inkscape when using a Cyrillic layout.
2021-12-09 12:29:19 +01:00
Philip Zander 4601d3aee4 gdk/win32: Add licensing boilerplate to gdkkeys-win32 2021-12-09 12:29:15 +01:00
Philip Zander 64eedbfaf4 gdk/win32: Remove unneeded struct _GdkWin32KernelCPUFuncs
It only had a single member and was only used internally by one
function.
2021-12-08 22:46:52 +01:00
Chun-wei Fan 4a55c527d7 gdk/win32: Consolidate CPU detection in one place
This consolidates the check for the running CPU in one single location,
to make things a bit cleaner, as:

* We can make use of IsWow64Process2(), if available, to check both
  whether we are running on an ARM64 CPU, and whether we are running as
  a WOW64 process.  This is also the function to use to properly check
  whether we are running as a WOW64 process on ARM64 systems, as
  IsWow64Process() does not work as we want on ARM64 systems.

* If we don't have IsWow64Process2() (which is absent from Windows prior
  to Windows 10 1511, where ARM64 Windows is introduced), we can fall
  back to  IsWow64Process(), which will tell us whether we are running
  as an WOW64 process (but clearly not on an ARM64 system).

Also clean up things a bit so that we can reduce reliance on global
variables.
2021-12-08 22:46:49 +01:00
Philip Zander aa3e6bb0a3 GdkWin32Keymap: Be more robust against DLL loading failures
Fixes failure on the CI servers when generating GIR files
2021-12-08 22:44:20 +01:00
Philip Zander 4039153ca7 Rewrite GdkWin32Keymap (load table directly from layout DLL)
The old code used repeated calls to `ToUnicodeEx` to populate
the translation table, which is slow and buggy. The new code
directly loads the layout driver DLLs from Windows.

Associated issues: #2055 #1033
Merge request: !1051

GdkWin32Keymap cleanup

Conform to C89, improve comments, whitespace
2021-12-08 22:44:17 +01:00
Carlos Garnacho 068df4874a Merge branch 'wayland-clipboard-fix' into 'gtk-3-24'
wayland: Ensure clipboard handling doesn't lock up in certain corner cases

See merge request GNOME/gtk!4058
2021-12-06 11:16:54 +00:00
msizanoen1 e23b4dd21b wayland: Ensure clipboard handling doesn't lock up in certain corner cases
When a selection request fails to be converted to the requested format in the
GTK layers, the wayland backend would miss bumping the machinery to handle
further pending selection requests. Fix this by reacting to
GdkDisplay::send_selection_notify with target=GDK_NONE (i.e. a failed
conversion as hinted from the upper layers) to do that.

This ensures the clipboard handling doesn't lock up in the following
scenarios:
  - GTK returned with a mismatching type to the one requested
  - GTK fails to convert to the requested type

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4340
2021-12-06 11:30:11 +01:00
Povilas Kanapickas a94baf4c3d gdk/x11: Report XI2 version on the server 2021-12-03 00:04:10 +02:00
Povilas Kanapickas a1a2f8ab56 gdk/x11: Implement XI2.4 touchpad gesture support 2021-12-03 00:04:10 +02:00
Quentin PAGÈS 2db8f64ca7 Update Occitan translation 2021-12-02 15:48:19 +00:00
Matthias Clasen 15d9b3c7d6 Merge branch 'backport-font-feature-pango-hb' into 'gtk-3-24'
Backport font features code utilizing Pango with HarfBuzz integration (1.44.x) for gtk-3-24

See merge request GNOME/gtk!4206
2021-12-01 15:47:30 +00:00
Matthias Clasen 1b789197e5 fontchooser: Avoid setting variations needlessly
Setting variations to their default value causes
them to show up in the serialization of the font
description - a font description has no idea about
the default values, so can't filter them out.

Avoid that.
2021-11-29 13:05:02 +08:00
Chun-wei Fan 28337d68a3 Visual Studio projects: Update README for additional features
Rename README_EGL_MSVC.txt to README_FEATURES_MSVC.txt, as we now have
more features that can be included in the builds using the Visual
Studio projects, which require additional depedencies and manual
enabling.

Specifically, this outlines how the font tweaking feature in libgtk can
be enabled and for people who wish to do so, how to enable the Font
Features demo in gtk3-demo.exe.
2021-11-29 12:25:53 +08:00
Chun-wei Fan f82eb198f2 Meson: Enable font features demo on later Pango versions
...even if PangoFT2 is not present, provided that Pango 1.44.0+ and
HarfBuzz 2.2.0+ are installed.  The demo now has added support for later
Pango versions that use HarfBuzz for shaping on all supported platforms.
2021-11-29 12:25:53 +08:00
Chun-wei Fan 720e335246 configure.ac: Check for Pango 1.44.0 or later
...and HarfBuzz 2.2.0 or later so that we can enable the font feature
demo even if we do not have PangoFT2.
2021-11-29 12:25:53 +08:00
Chun-wei Fan b8e78f83ce Font features demo: Port to newer Pango
...if Pango 1.44.0+ and HarfBuzz 2.2.0+ are available, otherwise we
stick on to the current code path.

This way, we can have people build and run the demo even without
PangoFT2 if Pango 1.44.0 or later and HarfBuzz 2.2.0 or later is
installed.
2021-11-29 12:25:53 +08:00
Chun-wei Fan 079ee4e31e win32/generate-msvc.mak: Add rule to regenerate demos.h.win32
We can regenerate demos.h.win32 with or without the font features demo
by using the regenerate-demos-h-win32 target with or without secifying
the FONT_FEATURES_DEMO=1 flag on the NMake command line.
2021-11-29 12:25:53 +08:00
Chun-wei Fan f8200470da gtk-demo: Split out demo sources from Makefile.am
This way, we can share the demo listing to be used in other build
Makefile-based build systems, such as the auxiliary NMake Makefiles used
to generate the various sources.
2021-11-29 12:25:52 +08:00
Chun-wei Fan c3c759cbdd Visual Studio projects: Define __MSVC_PROJECTS__
...in the libgtk3 project, so that we can automatically link to
harfbuzz.lib if we have a sufficiently-new version of Pango and HarfBuzz
installed, so that the code to enable font features can be linked
properly, even if we don't explicitly put harfbuzz.lib in the list of
libraries that we feed into the linker in the project files.

If one is using pre-Pango-1.44.x and/or pre-HarfBuzz-2.2.0 and intends
to enable font features support, one still must update config.h.win32 to
make sure HAVE_PANGOFT2 and HAVE_HARFBUZZ is defined, and put
pangoft2-1.0.lib, harfbuzz.lib and freetype.lib (or so) in the
"Additional Libraries" under the linker settings in the projects
manually, as required before.
2021-11-29 12:25:52 +08:00
Chun-wei Fan e1422d73b1 gtkfontchooserwidget.c: Always enable font features with later Pango
This is a backport of the code in GTK4 where we can use the font
features that is given to us via HarfBuzz if we have Pango 1.44.x and
HarfBuzz 2.2.0 or later installed, even if we do not have PangoFT2
aavilable.

Since Pango 1.44.x depends on HarfBuzz for all platforms after 1.44.0,
we could take advantage of that and build the support in
GtkFontChooserWidget.

Add a directive that is to be used by Visual Studio compilers via the
Visual Studio projects to link to harfbuzz.lib automatically, so that
this support can be linked properly if we have the required Pango and
HarfBuzz headers and lib's installed.  Meson builds via Visual Studio
should handle this automatically, since pkg-config is being used there.

Since HAVE_PANGOFT2 and HAVE_HARFBUZZ is not defined by default in the
Visaul Studio projects, we will leave it up to the user to enable them
themselves and put in pangoft2-1.0.lib and harfbuzz.lib in the project
settings by themselves, or they could use Meson, as we did before.
2021-11-29 12:25:52 +08:00
Quentin PAGÈS 6c4cc93121 Update Occitan translation 2021-11-28 13:24:15 +00:00
Luca Bacci ee79334a52 Merge branch 'fix-printoperation-win32' into 'gtk-3-24'
gtkprintoperation-win32.c: Fix build on Visual Studio

See merge request GNOME/gtk!4193
2021-11-25 11:33:38 +00:00
Chun-wei Fan dfbcc0849b gtkprintoperation-win32.c: Fix build on Visual Studio
Cast the result of GetWindowLongPtrW() to void * so that we won't get
the C4047 warnings, which are considered an error in building the GTK
stack.
2021-11-25 19:00:22 +08:00
Emmanuele Bassi 34038aaf7d Merge branch 'wip/fix-randr-race-3-24' into 'gtk-3-24'
x11: Trap error when getting CRTC info [3.24]

See merge request GNOME/gtk!4168
2021-11-24 16:48:39 +00:00
Luca Bacci 0e48d8d7e3 Merge branch 'quartz-fix-keyboard-layout-notification' into 'gtk-3-24'
Quartz: Fix race for keyboard layout change notifications

See merge request GNOME/gtk!4190
2021-11-24 15:56:00 +00:00
Luca Bacci 78a0cdde83 Quartz: Fix keyboard layout notification
Register for notifications before initializing keymaps
2021-11-24 16:20:02 +01:00
Luca Bacci c2e6fcc92d Merge branch 'win32-theme-fixes' into 'gtk-3-24'
Win32 theme fixes

See merge request GNOME/gtk!4189
2021-11-23 13:25:08 +00:00
Jaime Velasco Juan 466619f7c1 win32 theme: Draw expander arrow
Better than nothing.
2021-11-23 12:42:41 +01:00
Jaime Velasco Juan 2f30e12de7 win32 theme: Fix unfocused window buttons 2021-11-23 12:35:39 +01:00
Jaime Velasco Juan bfe7a57b76 win32 theme: fix disabled GtkEntry style 2021-11-23 12:27:47 +01:00
Jaime Velasco Juan f9d82e965e win32 theme: Fix levelbar and tweak progressbar
Both have a similar look now
2021-11-23 12:05:51 +01:00
Luca Bacci 8d654527ab Merge branch 'ole2-dnd-ipc-window-follows-the-cursor-monitor' into 'gtk-3-24'
GdkWin32: Make OLE2 DND work on monitors with different OS scales

See merge request GNOME/gtk!4155
2021-11-18 21:57:36 +00:00
Luca Bacci 661f23d337 Merge branch 'gdk-win32-custom-print-dialog-widget-measurement' into 'gtk-3-24'
Fix measurement of custom widget in win32 print dialog

See merge request GNOME/gtk!4159
2021-11-18 19:02:58 +00:00
Luca Bacci 1650b4b205 Win32: Fix print dialog custom widget measurement 2021-11-17 15:41:13 +01:00
Jonas Ådahl 102341ae9f x11: Trap error when getting CRTC info
This should fix a race happening when RANDR changes quickly, e.g. during
unit testing where tests change monitor configurations rapidly.
2021-11-17 11:14:00 +01:00
Aleksandr Melman 2d67c74ea2 Update Russian translation 2021-11-16 21:52:25 +00:00
Matthias Clasen 7f8efb6b8d Merge branch 'gtk-3-24_inkscape2932' into 'gtk-3-24'
Backport css: Avoid a crash while parsing radial gradients

See merge request GNOME/gtk!4161
2021-11-16 21:30:10 +00:00
Matthias Clasen bac491b0b5 Merge branch 'compose-cache-symlinks' into 'gtk-3-24'
[GTK3 backport] composetable: invalidate cache based on symlink mtime too

See merge request GNOME/gtk!4165
2021-11-16 21:29:38 +00:00
Naïm Favier 1284a804f1 composetable: invalidate cache based on symlink mtime too
When the compose file is a symbolic link, take the link itself's
modification time into account (in addition to its target's) in
determining whether to invalidate the compose cache.

This is useful e.g. on NixOS systems where the compose file might point
to a store path with an irrelevant modification time, and we want the
cache to expire when the symlink itself changes.

(cherry picked from commit 22f5236943)
2021-11-16 18:30:02 +01:00
Matthias Clasen 60ec8dbd69 css: Avoid a crash while parsing radial gradients
has_size does not imply that sizes[0] is != NULL.

(cherry picked from commit aceba7484f)
2021-11-16 12:04:54 +11:00
Luca Bacci 4d40300d8a GdkWin32: Make OLE2 DND work in monitors with different OS scales
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3734
2021-11-13 19:41:58 +01:00
Luca Bacci a174568ef9 Merge branch 'gtk3-dnd-find-dest-window-fix' into 'gtk-3-24'
GdkWin32: Fix DND destination window search

See merge request GNOME/gtk!3885
2021-11-13 14:51:49 +00:00
Quentin PAGÈS 7520524aed Update Occitan translation 2021-11-10 18:17:30 +00:00
Milo Casagrande 02381e49d7 Update Italian translation 2021-11-09 08:43:19 +00:00
Luca Bacci ae8fde9630 Merge branch 'win32-gl-reorg-3' into 'gtk-3-24'
GDK-Win32: Reorganize backend GL code and add fallback mode

See merge request GNOME/gtk!3859
2021-11-06 11:21:43 +00:00
Matthias Clasen 3c83854962 Merge branch 'wip/carlosg/no-ping-serials-for-input-3-24' into 'gtk-3-24'
[3.24] gdk/wayland: Do not use xdg_wm_base.ping serials as "user input" serials

See merge request GNOME/gtk!4123
2021-11-06 02:20:12 +00:00
Luca Bacci 4067e46e20 Merge branch 'vs2022-vcproj' into 'gtk-3-24'
Visual Studio projects: "Add" Visual Studio 2022 projects

See merge request GNOME/gtk!4064
2021-11-05 17:38:08 +00:00
Carlos Garnacho d81f58bc09 gdk/wayland: Do not use xdg_wm_base.ping serials as "user input" serials
Ping/pong serials are not meant to be interpreted as user input serials
(e.g. those given back later to the compositor on grabs). As a matter
of fact, Mutter uses a different count (i.e. timestamps) in these, so
using these serials may confuse the compositor into denying certain
operations like DnD.
2021-11-05 14:43:23 +01:00
Goran Vidović 6b980e5ce8 Update Croatian translation 2021-10-29 15:24:44 +00:00
Matthias Clasen 660cbee51e Merge branch 'fix-win11-sdk-3' into 'gtk-3-24'
Fix building against the Windows 11 SDK (GTK+-3.x)

See merge request GNOME/gtk!4062
2021-10-28 16:47:15 +00:00
Matthias Clasen a12769a2c4 Merge branch 'fix-recent-filter-uri' into 'gtk-3-24'
GtkRecentFilter: Do not unset the uri if it is needed

See merge request GNOME/gtk!4080
2021-10-27 15:03:40 +00:00
Rūdolfs Mazurs 20be04f7ac Update Latvian translation 2021-10-25 16:50:04 +00:00
Goran Vidović cdab711ec2 Update Croatian translation 2021-10-21 10:38:42 +00:00
Goran Vidović 595531eba5 Update Croatian translation 2021-10-21 10:37:02 +00:00
Gaël Bonithon 90ca7fb3c9 GtkRecentFilter: Do not unset the uri if it is needed 2021-10-19 20:28:06 +02:00
Matthias Clasen 1e72dac839 Merge branch 'wip/hadess/quiet-broadway-gtk3' into 'gtk-3-24'
broadway: Quiet initialisation failures

See merge request GNOME/gtk!4052
2021-10-19 02:45:56 +00:00
Matthias Clasen 25d01b7610 Merge branch 'wip/fix-remap-up-left-popup' into 'gtk-3-24'
window/wayland: Reset position when hiding popup

See merge request GNOME/gtk!3913
2021-10-18 22:34:39 +00:00
Jonas Ådahl 0f871584fc Merge branch 'surfaceloop' into 'gtk-3-24'
Check if size changed before hiding a surface

See merge request GNOME/gtk!3944
2021-10-18 14:20:44 +00:00
Luca Bacci d34f4416bd Merge branch 'gdk-win32-ensure-correct-order-of-operations-when-handling-dpi-scale-and-gdk-screen-offset' into 'gtk-3-24'
GdkWin32: Ensure consistent order of operations when handling DPI scale and GDK screen offset

See merge request GNOME/gtk!3931
2021-10-18 11:36:47 +00:00
John Ralls 36315cbe2b [quartz]Use the absolute value of Scale values for CGContextScaleSCM
In macOS-12.sdk CGContextConverSizeToDeviceSpace returns a negative
height and passing that to CGContextScaleCTM in turn causes the cairo
surface to draw outside the window where it can't be seen. Passing the
absolute values of the scale factors fixes the display on macOS 12 without
affecting earlier macOS versions.
2021-10-14 12:45:48 -07:00
Chun-wei Fan 1234b46d3b Visual Studio projects: "Add" Visual Studio 2022 projects
Like the Visual Studio 2012+ projects, copy the Visual Studio 2010
projects and replace the items in there as needed, so that we can
obtain Visual Studio 2022 project files, since they are all in the
MSBuild format.
2021-10-14 10:53:18 +08:00
Chun-wei Fan c4d8575c30 gtk: Fix building version resource on Windows 11 SDK
The rc.exe that comes with the Windows 11 SDK does not allow one to include
winuser.h directly in the .rc scripts, so make sure that we do not try to
generate the final gtk.rc with it, but instead include windows.h with
WIN32_LEAN_AND_MEAN defined.
2021-10-14 10:30:58 +08:00
Chun-wei Fan dceed915e8 gtk/generate-uac-manifest.py: Fix UAC manifest .rc
The resource compiler in the Windows 11 SDK does not allow one to include
winuser.h directly in resource scripts (.rc) with a rather cryptic error
message, so fix generating the .rc file to embed the UAC manifest by including
windows.h with WIN32_LEAN_AND_MEAN instead.
2021-10-13 11:38:26 +08:00
Sveinn í Felli 49374551e8 Update Icelandic translation 2021-10-12 22:45:33 +00:00
Rafael Fontenelle 888fe92051 Update Brazilian Portuguese translation 2021-10-12 17:37:09 +00:00
Bastien Nocera e7679635b0 broadway: Quiet initialisation failures
Broadway is the only GTK+ backend that throws an error on stderr for a
"display server" connection failure.

This causes problems when gtk_init_check() is used and unexpected error
output is generated such as with hotdoc, which fails when generating a
GTK plugin's documentation instead of overlooking the issue.

"Unable to init server: Could not connect: Connection refused"
2021-10-11 20:29:40 +02:00
Ting-Wei Lan d90efbd9be Merge branch 'wip/lantw/GDK-Win32-Fix-MinGW-autotools-build' into 'gtk-3-24'
GDK/Win32: Fix MinGW autotools build

See merge request GNOME/gtk!3991
2021-10-10 10:33:42 +00:00
Emmanuele Bassi 0d0c9c918e Merge branch 'filesearch3' into 'gtk-3-24'
searchenginemodel: finalize search results

See merge request GNOME/gtk!4030
2021-10-04 14:07:13 +00:00
Pierre Ossman aca83684ed searchenginemodel: finalize search results
It is necessary to signal the search engine that we are finished and
that we found something for it to reliably show the results. It would
sometimes work anyway since it is sufficient if any backend signals
completion. However if GtkSearchEngineModel was the only backend
returning results then things would break.
2021-10-04 15:41:42 +02:00
Emmanuele Bassi d4376ec0db Merge branch 'gtk3-debian-ci' into 'gtk-3-24'
ci: Update Debian image to current stable

See merge request GNOME/gtk!4031
2021-10-04 12:50:35 +00:00
Emmanuele Bassi 41a2f5cdc0 ci: Update the Debian CI image 2021-10-04 13:24:32 +01:00
Emmanuele Bassi 7e2917e19c ci: Update Debian image to current stable
This is required by a change in the certificates that makes it
impossible to run `git clone` on a GNOME GitLab repository in a CI
pipeline.
2021-10-04 13:23:32 +01:00
Emmanuele Bassi 3935a4a44a Merge branch 'gtk3-selection-docs' into 'gtk-3-24'
docs: Fix gtk_tree_selection_get_selected()

See merge request GNOME/gtk!4012
2021-09-30 00:12:20 +00:00
Emmanuele Bassi 1900fc2f80 docs: Fix gtk_tree_selection_get_selected_rows()
Reword the description and return value so that they look better on
docs.gtk.org.
2021-09-30 00:38:17 +01:00
Emmanuele Bassi 4f54fcd288 docs: Fix gtk_tree_selection_get_selected()
Use the proper sigils for enumeration values and constants. The
description is also barely intelligible.
2021-09-30 00:35:11 +01:00
Sveinn í Felli d5657e2c55 Update Icelandic translation 2021-09-29 12:08:08 +00:00
Danial Behzadi d1b90752ca Update Persian translation 2021-09-25 10:48:05 +00:00
Maxim Zakharov 24ef893cb4 remove incorrect flag assignments 2021-09-24 16:29:56 +10:00
Ting-Wei Lan 26d61e2abc GDK/Win32: Fix MinGW autotools build
MinGW-w64 CRT provides no 'hid.lib' file. Instead, it has 'libhid.a'
which can be linked with '-lhid' linker argument.

Also, we have to declare the '_LIBADD' variable and add 'LDADDS' to it,
or 'LDADDS' won't do anything for the build.
2021-09-24 00:06:51 +08:00
Luca Bacci 378ed797a4 GdkWin32: Initialize _gdk_offset_x / _gdk_offset_x to unscaled values
Note that gdk_monitor_get_geometry () returns DPI-scaled values,
while the screen offset should be unscaled, as scales are properties
of indivdual monitors.
2021-09-23 17:37:54 +02:00
Luca Bacci 876a2e6225 GdkWin32: Ensure a consistent order of operations when handling DPI scale and GDK screen offset 2021-09-23 17:37:45 +02:00
Luca Bacci cac1c7cd22 GdkWin32: Use a signed integral type for the DPI scale
An arithmetic operation involving a signed and an unsigned operand
of the same rank will have both operands converted to *unsigned*.
That's an issue if the signed operand actually has a negative value.

That was causing issues with the handling of monitor geometries that
had negative x / y positions.
2021-09-23 15:28:42 +02:00
Maxim Zakharov 6af85a62bb Adds modal hint for broadway window;
returning focus to transient for window on destroyng window with focus;
raising modal window and moving focus into it

Solves problem with focus loss in complex multi window UI.
2021-09-23 16:31:36 +10:00
Matthias Clasen 8d04980f38 Merge branch 'gtk-3-24' into 'gtk-3-24'
Do not require wayland-protocols as dependency in the .pc files

See merge request GNOME/gtk!3961
2021-09-16 18:37:36 +00:00
muradm 6efcbf4634 Do not require wayland-protocols as dependency in the .pc file
Basically, I was building some packages on Guix. I figured out that
wayland-protocols was listed among propagated-inputs for gtk+ package
(gtk-3-24). propagated-inputs holds a list of runtime dependencies,
that should be available to any other package that depends on gtk+.
While discussing we clarified that wayland-protocols is not runtime
dependency. So I moved it to native-inputs of gtk+ package, which
means that, this dependency will be available only to gtk+ package and
only at build time. Once moved, building of other applications that
depening on gtk+ started to fail.

Investigation showed that, all .pc (pkg-config) files prepared by gtk+
package, was including:

Requires.private: ... wayland-protocols ...

Since it becomes requirement, other applications was failing with
missing dependency wayland-protocols of dependency gtk+, for instance:

-- Checking for module 'gtk+-3.0'
--   Package 'wayland-protocols', required by 'gdk-3.0', not found

While actually wayland-protocols is not even a build time dependency
of application that depends on gtk+. Advertisement of such
requirement, is a bit misleading, because one does not need it at
runtime, especially applications based on gtk.
2021-09-16 20:44:39 +03:00
Fabio Tomat 5cccc2d975 Update Friulian translation 2021-09-16 12:15:24 +00:00
Matthias Clasen 36b4cd11b6 Merge branch 'reset-source-id' into 'gtk-3-24'
GtkClipboard: Reset a source id to prevent double free

See merge request GNOME/gtk!3954
2021-09-15 12:23:15 +00:00
Daniel Mustieles df1e6dc45d Updated Spanish translation 2021-09-15 08:29:52 +02:00
Gaël Bonithon 599ab80c63 GtkClipboard: Reset a source id to prevent double free
Fixes #4253.
2021-09-15 07:37:46 +02:00
Ronan Pigott 23c7e6e13b Check if size changed before hiding a surface
Commit 68188fc948 introduces a workaround for clients that try to
change the size of a popup after it is created, but inadvertently
introduces an infinite loop of surface creation when the popup enters
two or more wl_outputs with different scales on creation.

This commit checks if the size actually changed before applying the
workaround and avoids the loop.
2021-09-13 17:14:14 -07:00
Alan Mortensen 1382e54ef6 Updated Danish translation of gtk-properties 2021-09-13 20:48:53 +02:00
Alan Mortensen 53fc584988 Updated Danish translation 2021-09-13 20:48:50 +02:00
Matthias Clasen 3567a74dd8 Merge branch 'ownoutput' into 'gtk-3-24'
Ignore wl_output globals not bound by us

See merge request GNOME/gtk!3941
2021-09-13 16:48:40 +00:00
Ronan Pigott 9a4e328928 Ignore wl_output globals not bound by us
Gdk doesn't know the scale of output globals it didn't bind. This
keeps them from entering the output list and triggering erroneous
changes in surface scales.
2021-09-13 03:08:49 -07:00
Luca Bacci c71dca236c Use WindowFromPoint to find DND target window 2021-09-10 13:59:27 +02:00
John Ralls a752e33838 Update Quartz version detection for macOS 12. 2021-09-08 18:01:50 -07:00
Luna Jernberg b5a2d29538 Update Swedish translation 2021-09-08 19:53:47 +00:00
John Ralls e9d4b0dda0 Move includes of gdkinternal-quartz.h from headers to impl files.
gdkinternal-quartz.h isn't installed but the headers that included
it are, which which would cause the build to fail if an external
project included one of them.

Also changed the includes in gdkinteral-quartz.h to local for
faster loading.
2021-09-07 11:08:11 -07:00
John Ralls 7e732caa1e Let gdkquartz-cocoa-access.h find gdkquartz.h during build.
gdkquartz.h is installed in $PREFIX/include/gdk but is in gdk/quartz
in the source tree. Use "gdkquartz.h" to find it in both places.
2021-09-07 10:39:37 -07:00
Chun-wei Fan bcdbb93296 GDK-Win32: Add fallback mode to GLES
...if GLES (libANGLE) support was enabled in the build.  This way, we can
check whether the GL driver is capable enough to support the OpenGL
features that we use in GTK.  If the driver is not capable enough, and
GLES support is enabled, we can try to create the GdkGLContext again as a
GLES context.
2021-09-06 19:36:14 +08:00
Chun-wei Fan 97d3024701 gdk/win32: Some further small GL-related cleanup
Remove from gdkglcontext-win32.h items that aren't really necessary, and
just include gdkglcontext-win32.h where applicable.
2021-09-06 19:36:13 +08:00
Chun-wei Fan 9e949209a1 GDK-Win32: Reorganize gdkgdlcontext-win32.c
Group the WGL-specific code and GLES-specific code together, so that we
can reduce the number of #ifdef ... in the code, to make the code more
readable and easily maintained.  This will pave the way to add a
fallback mode to use libANGLE (OpenGL/ES) in case the Desktop OpenGL
support is inadequte, if OpenGL/ES support is enabled in the build.

This is somewhat based on the updates that were done in GTK master, so
we are using one subclass for WGL-based GdkGLContexts, and another for
GLES-based GdkGLContexts.

Also remove the underscores in many of the functions in
gdkglcontext-win32.*.

Clean up the code a bit as a result.
2021-09-06 19:36:13 +08:00
Goran Vidović 543b7defec Update Croatian translation 2021-09-04 17:15:55 +00:00
Boyuan Yang f7713bde1a Update Chinese (China) translation 2021-09-04 16:20:22 +00:00
Dz Chen 499af07d2c Update Chinese (China) translation 2021-09-04 15:50:14 +00:00
Changwoo Ryu b4acfaee1c Update Korean translation 2021-09-04 14:54:31 +00:00
Jiri Grönroos c6d2d97774 Update Finnish translation 2021-09-02 16:18:44 +00:00
Jonas Ådahl d74b01636b window/wayland: Reset position when hiding popup
When a popup is remapped, if the GdkWindow::x/y position is negative,
some best-effort hueristics used to ignore internal X11-style hackery
windows incorrectly scooped up remapped popup windows.

Avoid these hueristics by resetting the x and y fields of GdkWindow to 0
whe hiding a popup. It'll then appear as if it was newly initialized,
and escape the mentioned hueristics.

Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4071
2021-09-02 10:24:38 +02:00
Nathan Follens 9ff2a9ab9b Update Dutch translation 2021-08-31 15:30:14 +00:00
eshagh shahidani 7691c94a37 Update Persian translation 2021-08-31 14:41:54 +00:00
Baurzhan Muftakhidinov 659292f9ba Update Kazakh translation 2021-08-29 07:38:36 +00:00
Claude Paroz e2218cbb4d Updated French translation 2021-08-28 09:13:25 +02:00
Marek Černocký 93c4359ec0 Updated Czech translation 2021-08-26 14:33:08 +02:00
Fran Dieguez 82c199db00 Update Galician translation 2021-08-25 06:04:44 +00:00
Balázs Meskó 79fc2631c5 Update Hungarian translation 2021-08-23 05:54:19 +00:00
Matthias Clasen f6a82cb658 Merge branch 'cherry-pick-5044031b' into 'gtk-3-24'
Merge branch 'wip/kalev/gcc-11' into 'master'

See merge request GNOME/gtk!3870
2021-08-22 19:53:16 +00:00
Matthias Clasen 26e9919bf6 Merge branch 'gtk3-docs-fixes' into 'gtk-3-24'
docs: Escape the XML tags in the Widget class description

See merge request GNOME/gtk!3869
2021-08-22 19:13:57 +00:00
Matthias Clasen b4e110920a Merge branch 'wip/kalev/gcc-11' into 'master'
Avoid diagnostics for gcc-11 false positive out of bounds accesses

See merge request GNOME/gtk!3064

(cherry picked from commit 5044031b53)

c514c41d Avoid diagnostics for gcc-11 false positive out of bounds accesses
2021-08-22 19:03:23 +00:00
Emmanuele Bassi ff46ea64c4 docs: Escape the XML tags in the Widget class description
While gtk-doc doesn't care, this isn't really valid Markdown as the
GtkBuilder custom XML tags will be considered valid markup and embedded
as they are, breaking the HTML output.
2021-08-22 19:38:44 +01:00
Asier Sarasua Garmendia 4868656ebb Update Basque translation 2021-08-21 08:43:24 +00:00
Matthias Clasen 2dee749632 Merge branch 'accepts_dnd_from_finder' into 'gtk-3-24'
accepts NSPasteboardTypeFileURL as "text/uri-list".

See merge request GNOME/gtk!3846
2021-08-20 13:23:07 +00:00
Hiroyuki Ito ec4d27a4fc accepts NSPasteboardTypeFileURL as "text/uri-list". 2021-08-14 09:38:36 +09:00
Danial Behzadi fe19b20492 Update Persian translation 2021-08-07 14:42:26 +00:00
Мирослав Николић 94f86a2fb6 Update Serbian translation 2021-08-04 17:26:12 +00:00
Matthias Clasen 3a8fab6879 Merge branch 'luizfls-gtk-3-24-patch-58754' into 'gtk-3-24'
gtkwindow.c: Fix typo in `gtk_window_unstick` documentation

See merge request GNOME/gtk!3798
2021-07-29 21:27:41 +00:00
Luiz Silva b04bd31718 Fix typo in gtk_window_unstick documentation 2021-07-29 15:03:34 +00:00
Matthias Clasen d450cbe517 Merge branch 'opengl.win32.fixes' into 'gtk-3-24'
GDK/Win32: Fix up OpenGL a bit (part of !3767 for GTK3)

See merge request GNOME/gtk!3792
2021-07-28 17:55:51 +00:00
Matthias Clasen d86ce85267 Merge branch 'fix-cxo-system-build' into 'gtk-3-24'
gdkdevicemanager-win32.c: Fix build

See merge request GNOME/gtk!3791
2021-07-28 17:55:01 +00:00
Chun-wei Fan a4066188a2 Merge branch 'msvc-prototype' into 'gtk-3-24'
config.h.win32.in: Define HAVE_SETUP_DI_GET_DEVICE_PROPERTY_W

See merge request GNOME/gtk!3793
2021-07-28 07:22:22 +00:00
Chun-wei Fan b81b9311f6 config.h.win32.in: Define HAVE_SETUP_DI_GET_DEVICE_PROPERTY_W
... on Visual Studio, so that we will not have warnings from defining
the prototype SetupDiGetDevicePropertyW() unnessarily.
2021-07-28 15:00:38 +08:00
Chun-wei Fan 15817973d7 GDK/Win32: Fix up OpenGL a bit
Like the recent updates in GTK4, the HWND that we use to obtain the HDC
that we need for OpenGL/GLES operations should really be tied to
GdkWindow, not GdkDisplay, as that is where the Win32 HWND where we
originate from is located, so stop storing the GL HWND in
GdkWin32Display, but just grab them from the GdkWindow that is bound to
the GdkGLContext.

We are more conservative about freeing up GL resources in GTK3, so we
will continue to call ReleaseDC() as we did before.
2021-07-28 11:28:17 +08:00
Chun-wei Fan 71aa479d16 gdkdevicemanager-win32.c: Fix build
Fix the call to p_WTSetA, as we should be passing in a HCTX, not a
HCTX*.  Also clean up things a bit.
2021-07-28 09:58:06 +08:00
Matthias Clasen 998f4f32cc Merge branch 'wip/carlosg/sequence-accepted-in-group-3-24' into 'gtk-3-24'
gtkgesture: Apply gesture group state after setting up sequence

See merge request GNOME/gtk!3774
2021-07-21 12:49:22 +00:00
Carlos Garnacho 944a75659c gtkgesture: Apply gesture group state after setting up sequence
When a new sequence is added to a GtkGesture, its state is looked
in other gestures in the same group, and made to match in this
gesture. This however happened a bit too early, before the
gesture touchpoint was fully set up. As this may result in signal
emission and whatnot, it's a good idea to make it happen with a
fully set up touchpoint.

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/3946

(Cherry-picked from commit 53df32e6cf)
2021-07-21 14:27:28 +02:00
Matthias Clasen bc1ab236bd Merge branch 'BUG_filechooserbutton_remote_GTK3' into 'gtk-3-24'
FileChooserButton: query 'display name' also for unbookmarked files

See merge request GNOME/gtk!1724
2021-07-20 18:39:44 +00:00
Benjamin Otte adf9578e9c Merge branch 'ci-default-settings' into 'gtk-3-24'
reftests: Enforce default settings

See merge request GNOME/gtk!3768
2021-07-19 17:30:57 +00:00
Matthias Clasen b541ad48d1 reftests: Enforce default settings
Set all settings to their default values, so we
are less dependent on the environment to be set
up just right. In particular, this fixes animations
being disabled when we happen to run in a vm.
2021-07-19 13:10:31 -04:00
Matthias Clasen 557c3d1d62 Merge branch 'pango-main-for-3' into 'gtk-3-24'
Use pango from the main branch

See merge request GNOME/gtk!3761
2021-07-17 13:05:13 +00:00
Philipp Kiemle da4769ec81 Update German translation 2021-07-16 22:17:16 +00:00
Matthias Clasen fe14b9d311 Use pango from the main branch
Change the Pango subproject to use the main branch.

This depends on
https://gitlab.gnome.org/GNOME/pango/-/merge_requests/379
2021-07-16 13:21:09 -04:00
Chun-wei Fan 71d7054ff7 Merge branch 'wintab-set-cxo-system-option' into 'gtk-3-24'
Wintab: Set the CXO_SYSTEM option

See merge request GNOME/gtk!3644
2021-07-12 01:52:57 +00:00
John Ralls 6128492cc0 [quartz] Fix incorrect include path for gdkquartz.h 2021-07-10 13:57:11 -07:00
Chao-Hsiung Liao 7912714337 Update Chinese (Taiwan) translation 2021-07-10 08:40:51 +00:00
Chao-Hsiung Liao 0c4a627199 Update Chinese (Taiwan) translation 2021-07-10 08:36:42 +00:00
Matthias Clasen a8c83fe3bc Merge branch 'gdkkeys' into 'gtk-3-24'
gdkkeys-win32.c: fix initialisation of key_state in update_keymap

See merge request GNOME/gtk!3741
2021-07-09 10:58:09 +00:00
Chun-wei Fan 2f176b566e Merge branch 'fix-winpointer-h-make-dist' into 'gtk-3-24'
Add winpointer.h to Makefile.am sources list

See merge request GNOME/gtk!3743
2021-07-09 09:37:24 +00:00
Luca Bacci de31fdcc68 Add winpointer.h to Makefile.am sources list 2021-07-09 09:00:36 +02:00
Jeremy Tan 7303854310 gdkkeys-win32.c: fix initialisation of key_state in update_keymap
It apparently worked by chance in the past, but now causes e.g.
alphanumeric characters to be interpreted as half-width katakana
when using the Japanese IME.
2021-07-09 12:35:44 +08:00
Matthias Clasen d4e2d05cd9 3.24.30 2021-07-08 10:02:44 -04:00
Źmicier Turok 2169161312 Update Belarusian translation 2021-07-06 06:21:07 +00:00
Matthias Clasen 635591c4d6 Merge branch 'pgriffis/remove-cloudprint-gtk3' into 'gtk-3-24'
Remove Google Cloud Print backend (GTK3)

See merge request GNOME/gtk!3730
2021-07-05 20:21:40 +00:00
Patrick Griffis c77ea5101e Remove Google Cloud Print backend
This service was shut down at the start of 2021
2021-07-05 10:52:31 -05:00
Robert Mader 3e1214bda4 Merge branch 'gtk-3-24-pointer-gestures-version' into 'gtk-3-24'
gdk/wayland: Fix pointer-gestures version selection

See merge request GNOME/gtk!3696
2021-07-05 13:16:18 +00:00
Vlad Zahorodnii 92ba4bf396 gdk/wayland: Fix pointer-gestures version selection
version == GDK_ZWP_POINTER_GESTURES_V1_VERSION will fail if the
compositor implements version 2 of pointer-gestures-v1.
2021-07-05 14:50:59 +02:00
Matthias Clasen 1fa2969a05 Merge branch 'add-support-for-windows-pointer-input-stack-apis' into 'gtk-3-24'
Add support for Windows Pointer Input Stack

See merge request GNOME/gtk!1563
2021-07-03 16:22:33 +00:00
Luca Bacci 712721b60a Add support for Windows Pointer Input Stack
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1563
2021-07-03 16:04:28 +02:00
Alexey Rubtsov 01eb5d41cf Update Russian translation 2021-06-28 11:10:59 +00:00
Chun-wei Fan 88730e81c1 Merge branch 'fix-issue-2019' into 'gtk-3-24'
[Gtk3] GdkWin32: Remove klassTEMPSHADOW

See merge request GNOME/gtk!2749
2021-06-22 06:51:56 +00:00
Matthias Clasen a9c8b879a4 Merge branch 'wip/otte/for-3-24' into 'gtk-3-24'
cellarea: Don't shrink area too much

See merge request GNOME/gtk!3671
2021-06-16 00:13:43 +00:00
Benjamin Otte 4ba89f25b8 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
2021-06-15 19:34:37 +02:00
Matthias Clasen 447ab4ad0e Merge branch 'quartz-fixes' into 'gtk-3-24'
quartz: fix compilation on macOS 10.10

See merge request GNOME/gtk!3654
2021-06-15 11:11:57 +00:00
Emin Tufan Çetin 47959b5b4a Update Turkish translation 2021-06-15 08:59:44 +00:00
Tom Schoonjans 66b533408d quartz: fix compilation on macOS 10.10 2021-06-12 06:10:54 +01:00
Luca Bacci f67bf8d892 Wintab: Set the CXO_SYSTEM option
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3860
2021-06-11 19:52:44 +02:00
Luca Bacci af747315d7 Wintab: set the right device field in the event structure
Even when sends_core is FALSE

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3860
2021-06-11 19:52:43 +02:00
Emmanuele Bassi 90e8d7ff1a Merge branch 'gtk3-a11y-leak' into 'gtk-3-24'
a11y: Fix ref counting in tree views

See merge request GNOME/gtk!3660
2021-06-11 14:12:10 +00:00
Matthias Clasen 21f8098261 a11y: Plug a memory leak with treeviews
We need to explicitly remove the children from
a GtkContainerCellAccessible, since they otherwise
keep the parent alive.

Fixes: #3981
2021-06-11 08:55:48 -04:00
Matthias Clasen d4f62b44d4 a11y: Fix ref counting in tree views
GtkContainerCellAccessible wasn't unsetting accessible
parents. Fix that.

By itself, this doesn't help for freeing a memory leak,
since AtkObject keeps a ref on its parent, so we never
free the GtkContainerCellAccessible as long as it has children.
2021-06-11 08:53:46 -04:00
Matthias Clasen 6d6d76ecbb Merge branch 'arb_fbo' into 'gtk-3-24'
Switch to GL_ARB_framebuffer_object

See merge request GNOME/gtk!2076
2021-06-08 14:59:05 +00:00
Emmanuele Bassi 43a8655ad0 Merge branch 'glib-main-gtk-3-24' into 'gtk-3-24'
subprojects: Use GLib main branch (3.24)

See merge request GNOME/gtk!3643
2021-06-07 15:06:48 +00:00
Philip Withnall df9fe56264 subprojects: Use GLib main branch
GLib upstream has renamed its `master` branch to `main`.

See https://gitlab.gnome.org/GNOME/glib/-/issues/2348.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-06-07 14:59:09 +01:00
Aurimas Černius bfa763a24a Updated Lithuanian translation 2021-06-06 22:52:49 +03:00
Matthias Clasen c70d23b61f Merge branch 'backport-mr2884-to-gtk-3-24' into 'gtk-3-24'
Backport !2884 to GTK3

See merge request GNOME/gtk!3632
2021-06-06 12:33:08 +00:00
Matthias Clasen 7773c423aa Merge branch 'provide-built-dlls-as-gitlab-ci-artifacts' into 'gtk-3-24'
Provide built DLLs as Gitlab CI artifacts

See merge request GNOME/gtk!3633
2021-06-06 12:32:33 +00:00
Rafael Fontenelle 0ba8d3f87e Update Brazilian Portuguese translation 2021-06-06 08:48:49 +00:00
Matthias Clasen 906eba7288 Merge branch 'imcontext-ignore-more-3' into 'gtk-3-24'
imcontext: Ignore more keysyms

See merge request GNOME/gtk!3636
2021-06-05 02:08:18 +00:00
Matthias Clasen d7196e5ea8 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 21:30:36 -04:00
Luca Bacci a14e5778ff Provide built DLLs as Gitlab CI artifacts 2021-06-04 22:42:13 +02:00
Luca Bacci 547ea8b073 Backport 'fix integer overflow in monitor refresh rate calculation' to GTK3
Original MR by Volker Rümelin.

See https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/2884
2021-06-04 17:44:49 +02:00
Daniel Șerbănescu 5aa878d8e5 Update Romanian translation 2021-06-02 10:03:45 +00:00
Matthias Clasen 854343f8aa Merge branch 'screensaver-async-3' into 'gtk-3-24'
gtkapplication-dbus: Fetch inital screen saver state async

See merge request GNOME/gtk!3614
2021-06-01 19:10:59 +00:00
Guido Günther 72ab4c46ed gtkapplication-dbus: Fetch inital screen saver state async
Avoid a sync call that can make the application block for no good
reason.

Fixes 6f6b5faaa2
2021-06-01 14:32:58 +02:00
Bruce Cowan 1308bc6131 Update British English translation 2021-05-30 11:05:08 +00:00
Piotr Drąg aeecafc11e Update Polish translation 2021-05-30 13:00:23 +02:00
Jordi Mas 5b8eca222c Update Catalan translation 2021-05-28 22:29:32 +02:00
Daniel Mustieles e6676432cd Updated Spanish translation 2021-05-27 12:16:11 +02:00
Kukuh Syafaat 1e72ea5a92 Update Indonesian translation 2021-05-27 02:52:04 +00:00
Hugo Carvalho 8c97f0832c Update Portuguese translation 2021-05-26 16:53:18 +00:00
Matej Urbančič f9fe28cece Update Slovenian translation 2021-05-25 19:45:00 +00:00
Matthias Clasen f64f335bd6 Merge branch 'ignore-nosymbol-press-3-24' into 'gtk-3-24'
imcontext: Ignore NoSymbol key events

See merge request GNOME/gtk!3593
2021-05-25 18:22:04 +00:00
Matthias Clasen 6baf287c5f imcontext: Ignore NoSymbol key events
These can happen with some XKB options.

Fixes: #3973
2021-05-25 13:42:06 -04:00
Yuri Chornoivan 6930749ad5 Update Ukrainian translation 2021-05-25 16:20:44 +00:00
Piotr Drąg 98e5fc81ed Update POTFILES.in 2021-05-25 16:33:30 +02:00
Yuri Chornoivan d2ae457378 Update Ukrainian translation 2021-05-25 13:08:17 +00:00
Emmanuele Bassi 26119e5fc0 Merge branch 'filechooser-a11y' into 'gtk-3-24'
Improve FileChooser a11y

See merge request GNOME/gtk!2721
2021-05-25 12:57:12 +00:00
Matthias Clasen 37477a1210 Merge branch 'fix-im-reset-3-24' into 'gtk-3-24'
imcontextsimple: Fix a possible problem

See merge request GNOME/gtk!3586
2021-05-25 12:40:02 +00:00
Matthias Clasen 0952c11bec imcontextsimple: Fix a possible problem
We were forgetting to handle the compose sequence
case in reset().
2021-05-25 08:07:26 -04:00
Matthias Clasen eff4d45c09 Merge branch 'gtk-3-24+emoji-data-update' into 'gtk-3-24'
Backport Emoji changes to share the same (and newer) emojibase data

See merge request GNOME/gtk!3521
2021-05-14 00:42:04 +00:00
Kjartan Maraas dc5fcd28fd Update Norwegian Bokmål translation 2021-05-12 13:10:23 +00:00
Kjartan Maraas 49a14a25b3 Update Norwegian Bokmål translation 2021-05-12 12:52:53 +00:00
Yann Dirson 50889d7629 GtkFileChooserDialog: give a accessible name the GtkFileChooserWidget
Using pyatspi.utils.findDescendant() on the GtkFileChooserDialog using
just a role would return the Dialog, as they have the same "file
chooser" role.  So we have to give it a name to distinguish between
them.
2021-05-11 19:34:00 +02:00
Yann Dirson 9673b5a749 GtkFileChooserWidget: give accessible names to GtkStack children
Now that an AT can request apparition of the Location field, this
allows to locate it in the a11y tree.
2021-05-11 19:34:00 +02:00
Yann Dirson 50cbb8f9a2 GtkFileChooserWidget: export a11y action "show_location"
Note that this changes the accessible role of the widget to "file
chooser" instead of "filler".
2021-05-11 19:34:00 +02:00
Yann Dirson 813965fbc5 GtkFileChooserWidget: add a couple of accessible names in .ui file 2021-05-11 19:34:00 +02:00
Quentin PAGÈS 42a69cce2a Update Occitan translation 2021-05-10 19:56:15 +00:00
Emmanuele Bassi 51198cb1e9 Merge branch 'mg/iterator' into 'gtk-3-24'
Hoist iterator variable definition outside of for loop

See merge request GNOME/gtk!3527
2021-05-07 12:27:07 +00:00
Mosè Giordano fa68804a5b Hoist iterator variable definition outside of for loop
This is compliant with pre-C99 standard.
2021-05-07 12:47:05 +01:00
Emmanuele Bassi ae0c559c21 Merge branch 'mg/macosx-version-max-allowed' into 'gtk-3-24'
Fix value of `MAC_OS_X_VERSION_MAX_ALLOWED`

See merge request GNOME/gtk!3526
2021-05-07 11:14:18 +00:00
Mosè Giordano 0e14822a22 Fix value of MAC_OS_X_VERSION_MAX_ALLOWED 2021-05-07 11:46:47 +01:00
Marco Trevisan (Treviño) 3177a3b42b emoji: Update data to CLRD v39
This is based on version 6.2.0 of emojibase, containing CLRD 39

http://cldr.unicode.org/index/downloads/cldr-39
https://github.com/milesj/emojibase/blob/b3c9a78/packages/data/CHANGELOG.md
2021-05-06 16:04:25 +02:00
Marco Trevisan (Treviño) 247ed3d14a gtkemojichooser: Use retrocompatible format for saving recent-emoji
Given that the format changed, not to break current user history we can
keep using the old format for saving and reading the emoji-recent
gsettings key, by converting the new data to the old one at save time.

We loose information about the short name (not really relevant), even it
could be saved using the first keyword, but this isn't really relevant.
2021-05-06 16:04:25 +02:00
Marco Trevisan (Treviño) a1aecd26d5 gtk: Include emoji data when using autotools and msvc build systems
Differently from the meson case, here we just include the emoji data
files into the global gresources file, get_emoji_data() supports this
and it's just easier to handle in these build systems.
2021-05-06 16:03:11 +02:00
Marco Trevisan (Treviño) accb8e3173 emoji: Use a portable and configuration-dependent path to load the data
Load the emojis data in all the platforms, respecting the configured
GTK_DATA_PREFIX
2021-05-06 15:57:50 +02:00
Matthias Clasen 1a4e368c7e Redo the handling of Emoji data
Use the data files from https://github.com/milesj/emojibase.git
as source for our Emoji data. Slightly change our data format by
adding a group to each item, in both the Emoji data and in the
setting for recent-emoji.

Install translated versions of the data as separate resource
bundles in $prefix/gtk-4.0/emoji, and load them when appropriate.

Currently, we have data for de, en, es, fr, zh, with data taken
from Unicode 13 and CLDR 13.

Fixes: #950 #1511
2021-05-06 15:36:27 +02:00
Matthias Clasen 100ee4ce16 Emoji: Drop the shortname field from emoji.data
Match the name for Emoji completion, and display
it too. 'man worker' looks a lot more natural in
the UI than ':man_worker:'.
2021-05-06 05:22:27 +02:00
Matthias Clasen 32e972e95b Do case-folding and tokenization when creating emoji.data
We can avoid doing the extra work of case-folding and
tokenization whenever we filter in the Emoji chooser.
2021-05-06 05:22:27 +02:00
Matthias Clasen 78cc9113c1 emoji: Add keywords to the data
And use them for matching in the Emoji chooser.
2021-05-06 05:22:26 +02:00
Matthias Clasen cb32ff5b18 emoji: Some work on the conversion tool
Document the variant format, and write out json
format if asked to.
2021-05-06 05:22:26 +02:00
Matthias Clasen bfad7693bf emojichooser: Allow inserting multiple Emoji
Don't close the Emoji chooser when the Control
key is held while clicking. So you can insert
multiple Emoji without having to reopen the
chooser every time.

Fixes: #1002
2021-05-06 05:22:26 +02:00
Matthias Clasen 71bcecbc8d emoji chooser: Fix handling of no recent Emoji
If the recent section is empty, we want to hide
it, make its button insensitive, and select the
next section, initially. This was not working
properly, since nothing was ever setting the
section box to invisible.
2021-05-06 05:22:26 +02:00
Marco Trevisan (Treviño) 30835d7a86 gtkemojichooser: Do not leak the data loaded from resources
This was part of commit 67e6d1087 but not of gtk3 branch in commit
9cde2186.
2021-05-06 05:22:26 +02:00
Matthias Clasen 0fc99afa25 Merge branch 'wl-phys-transform-3-24' into 'gtk-3-24'
gdk/wayland: Take transform into account when setting physical size

See merge request GNOME/gtk!3517
2021-05-05 18:38:34 +00:00
Guido Günther 8c0b11998d gdk/wayland: Take transform into account when setting physical size
Width and height of a GdkMonitor are derived via wl_output which
talks about physical dimensions of a device and compositors usually
implement this as the untransformed values (e.g. weston, wlroots).

Since the GTK client has no way to figure out if a monitor was rotated,
transform the physical dimensions according to the applied wayland
transform to have the physical dimensions match the logical ones.

Mutter flips the physical dimensions itself but doesn't announce the
transform so this shouldn't break anything there.
2021-05-05 18:09:07 +02:00
Matthias Clasen fa70d08387 Merge branch 'quartz-drag-crash' into 'gtk-3-24'
Ensure gdk_quartz_drag_source freed on all paths.

See merge request GNOME/gtk!3498
2021-05-04 16:17:13 +00:00
John Ralls a6c3887736 Ensure gdk_quartz_drag_source freed on all paths.
New release function _gdk_quartz_drag_source_context_destroy_gtk_only
gets called when drag fails to start or is cancelled as well as
when it successfully completes.
2021-05-04 08:33:56 -07:00
Matthias Clasen 414cd74d20 Merge branch 'mesa.win32-3.24' into 'gtk-3-24'
gdkglcontext-win32.c: Fix running with Mesa drivers

See merge request GNOME/gtk!3482
2021-05-02 22:43:30 +00:00
Мирослав Николић 27dad4b90a Update Serbian translation 2021-05-01 14:37:55 +00:00
Pawan Chitrakar c721959d31 Update Nepali translation 2021-04-30 04:56:42 +00:00
Timm Bäder bf4290a330 Merge branch 'wip/hadess/box-guards' into 'gtk-3-24'
box: Fix guards not working

See merge request GNOME/gtk!3485
2021-04-29 15:03:02 +00:00
Chun-wei Fan 1b1dee86a5 gdkglcontext-win32.c: Fix running with Mesa drivers
Some GL drivers such as Mesa-D3D12 do not allow one to call SetPixelFormat() on
a given HDC if one pixel format has been already set for it, so first check the
HDC with GetPixelFormat() to see whether a pixel format has already been set
with the HDC, and only attempt to acquire the pixel format if one has not been
set.

This will fix running with GL on Windows using the Mesa drivers.
2021-04-29 12:17:58 +08:00
Bastien Nocera 44aa328dc3 box: Fix guards not working
The guards weren't working because we were accessing data inside the
arguments before checking them. Postpone data access until after the
guards.

0x00007ffff741203c in gtk_box_pack (box=box@entry=0x0, child=0xe0b1b0, expand=expand@entry=0, fill=fill@entry=0, padding=padding@entry=0, pack_type=pack_type@entry=GTK_PACK_START)
    at /usr/src/debug/gtk3-3.24.28-2.fc34.x86_64/gtk/gtkbox.c:1530
1530	  GtkBoxPrivate *private = box->priv;
(gdb) bt
 #0  0x00007ffff741203c in gtk_box_pack (box=box@entry=0x0, child=0xe0b1b0, expand=expand@entry=0, fill=fill@entry=0, padding=padding@entry=0, pack_type=pack_type@entry=GTK_PACK_START)
     at /usr/src/debug/gtk3-3.24.28-2.fc34.x86_64/gtk/gtkbox.c:1530
 #1  0x00007ffff741223c in gtk_box_pack_start (box=box@entry=0x0, child=<optimized out>, expand=expand@entry=0, fill=fill@entry=0, padding=padding@entry=0)
     at /usr/src/debug/gtk3-3.24.28-2.fc34.x86_64/gtk/gtkbox.c:2179
2021-04-28 23:44:20 +02:00
Jordi Mas e024a542b0 Update Catalan translation 2021-04-25 21:47:01 +02:00
Pawan Chitrakar 8d87d1b2a4 Update Nepali translation 2021-04-25 16:19:17 +00:00
Matthias Clasen 77f32a69c0 3.24.29 2021-04-22 22:47:50 -04:00
Matthias Clasen 1dc428dc3e Fix distcheck 2021-04-22 22:47:16 -04:00
Matthias Clasen 9b0eec55aa Merge branch 'listbox-extend' into 'gtk-3-24'
Allow GtkListBox multiple selection to be extended repeatedly

See merge request GNOME/gtk!3459
2021-04-23 02:47:05 +00:00
Matthias Clasen d6c45d0e17 imcontext: Fix cursor positions
gtk_im_context_get_preedit_string is documented to
return the cursor position as a character offset,
not a byte count. So return that.

Fixed: #3885
2021-04-22 21:33:59 -04:00
John Renner 42d4e6de51 Fix extend selection behavior in ListBox 2021-04-22 16:30:12 -07:00
Matthias Clasen 5e673e94de Merge branch 'icon-browser-icon' into 'gtk-3-24'
iconbrowser: Don't use a nonexistent icon

See merge request GNOME/gtk!3466
2021-04-22 10:59:51 +00:00
Matthias Clasen b1a34e0b0c Merge branch 'gtk3-compose-modifiers' into 'gtk-3-24'
imcontextsimple: Ignore more modifiers in compose (gtk3)

See merge request GNOME/gtk!3469
2021-04-22 10:57:02 +00:00
Ulli Kehrle d3a564d4f9 imcontextsimple: Ignore more modifiers in compose
Previously it was impossible to compose characters on higher levels of
some keyboard layouts as pressing the level selection key would just
exit compose mode.

Examples for affected keyboard layouts include the Latvian
apostrophe-variant "lv(apostrophe)" (latched third level), the extended
German keyboard layout "de(e1)" (latched fifth level) as well as the
multilingual Canadian keyboard layout "ca(multix)" and the German
neo-layout "de(neo)" and its descendants (shifted fifth level).

To reproduce, set a compose key and select the Latvian apostrophe layout.
Notice that you now can input [ by pressing first the ' and then the 8-key.
Then pressing <compose>'8'8 should produce ⟦, but prior to this patch it
did not.
2021-04-22 03:53:49 +02:00
Matthias Clasen a7a10aa63f iconbrowser: Don't use a nonexistent icon
We don't have this icon, so don't put it in the
desktop file, or tools will get upset.
2021-04-21 15:16:43 -04:00
Matthias Clasen 8bbaa7d092 Merge branch 'wip/oholy/placesview-default-location-regression-gtk-3-34' into 'gtk-3-24'
placesview: Open location even if mount was not found

See merge request GNOME/gtk!3465
2021-04-21 15:36:39 +00:00
Ondrej Holy 4fe7b3ec25 placesview: Open location even if mount was not found
Some locations have to be mounted, but their mounts are not user-visible
(e.g. smb-browse). Though this is maybe a bit weird, it is how it works
for years. The problem is that the commit 267ea755, which tries to get the
default location for opening, caused regression as it doesn't expect such
possibility. Before this commit, such locations were opened without any
issue, but nothing happens currently after clicking to "Connect" except of
clearing the "Connect to Server" entry. Let's fallback to the original
location if the mount was not found to fix this regression.

Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/1811
2021-04-21 15:33:34 +02:00
Matthias Clasen ca6794b2d8 Merge branch 'untrusted-beep-3' into 'gtk-3-24'
x11: Don't beep on untrusted displays

See merge request GNOME/gtk!3462
2021-04-21 10:12:19 +00:00
Matthias Clasen 9c84f7645e x11: Don't beep on untrusted displays
This can trigger BadAccess, and we don't
want that.

Fixes: #3862
2021-04-20 21:41:48 -04:00
Matthias Clasen c714739759 Merge branch 'fix-uri-crash-3' into 'gtk-3-24'
Fix a possible crash in gtk_show_uri

See merge request GNOME/gtk!3458
2021-04-19 23:25:15 +00:00
Matthias Clasen 536da7a15c Fix a possible crash in gtk_show_uri
g_file_get_basename can return NULL.
Deal with it somehow.

Fixes: #3883
2021-04-19 16:52:55 -04:00
Matthias Clasen 191433bf0a Merge branch 'fix-non-overlay-scrollbars-3' into 'gtk-3-24'
scrolledwindow: Always add other scrollbar size...

See merge request GNOME/gtk!3456
2021-04-19 19:21:53 +00:00
Timm Bäder 25879ea37e scrolledwindow: Always add other scrollbar size...
... if we're not using indicators and the policy may be visible. Not
doing this if the policy may be invisible is incorrect as we need to
reserve the space anyway in case the scrolledwindow is allocated at
minimum size and the child size increases to show the scrollbar.
2021-04-19 14:43:01 -04:00
Matthias Clasen 610f52b125 Merge branch 'cocoa-access-header' into 'gtk-3-24'
Add a public header for Cocoa access functions.

See merge request GNOME/gtk!3450
2021-04-17 00:28:16 +00:00
John Ralls 242b76a771 Add a public header for Cocoa access functions.
Some applications need to access gdk_quartz_window_get_nsview,
gdk_quartz_window_get_nswindow, and gdk_quartz_event_get_nsevent
so move these from the private gdkquartz-gtk-only.h to a new
header gdkquartz-cocoa-access.h. Don't include this header in
gdkquartz.h so that user code that doesn't need to access these
functins isn't required to compile with Objective C/C++.

Closes https://gitlab.gnome.org/GNOME/gtk/-/issues/1737
2021-04-16 16:56:55 -07:00
Matthias Clasen 3a70781d40 Merge branch 'fix_elcapitan_support' into 'gtk-3-24'
Fix building on OS X El Capitan 10.11

See merge request GNOME/gtk!3402
2021-04-16 20:02:09 +00:00
Matthias Clasen 399356833d Merge branch 'cups-local-printer-2.2-only' into 'gtk-3-24'
Don't try to create local cups printers before CUPS 2.2

See merge request GNOME/gtk!3448
2021-04-16 19:45:11 +00:00
John Ralls 3d53204c75 Don't try to create local cups printers before CUPS 2.2
Not supported on earlier versions.
2021-04-16 12:17:11 -07:00
Matthias Clasen 3aa742d715 overlay: Clarify pass-through docs
Explain that widgets with their own windows need to
have gdk_window_set_pass_through called on them.

Fixes: #3861
2021-04-16 11:15:05 -04:00
Matthias Clasen a1aa4a970d Merge branch 'latest.glib.msvc-3' into 'gtk-3-24'
GTK-3.x: Fix builds against latest stable GLib with Visual Studio

See merge request GNOME/gtk!3445
2021-04-16 12:37:52 +00:00
Matthias Clasen a0a18a7b02 Merge branch 'pre.c99' into 'gtk-3-24'
gtkimcontextsimple.c, updateiconcache.c: Fix build on older compilers

See merge request GNOME/gtk!3444
2021-04-16 12:12:56 +00:00
Chun-wei Fan b69790a776 gtkimcontextsimple.c: Declare variables at top-of-block
This way, things will continue to build on older compilers
2021-04-16 15:38:17 +08:00
Chun-wei Fan da651ca7fc update-icon-cache.c: Declare variables at top-of-block
This way, things will continue to build on older compilers
2021-04-16 15:36:58 +08:00
Chun-wei Fan 35fee660ff gtkcsscustomgadget.c: Fix build with latest stable GLib with MSVC
This eliminates the C4098 warnings ('void' function returning a value),
which is considered by GLib-2.68.x or later to be an error.
2021-04-16 15:28:28 +08:00
Chun-wei Fan 416e6b9cdd gdkglcontext-win32.c: Avoid C4715 warning
We can just group the code for the desktop GL codepath and the EGL
codepath a bit so that we can just have a single location where we
return TRUE upon a successful setup of our WGL/EGL context, and avoid
the C4715 warning that is considered an error when building with
GLib-2.68.x or later using Visual Studio, when we are building without
EGL support.
2021-04-16 15:08:41 +08:00
Matthias Clasen 915d0b39a9 Merge branch 'im-context-event-leak-3' into 'gtk-3-24'
imcontext: Eat key events during preedit

See merge request GNOME/gtk!3442
2021-04-15 22:21:51 +00:00
Matthias Clasen d9a3e07b7f Merge branch 'demo-manpages-3.24' into 'gtk-3-24'
[3.24] meson: only build demo manpages when demos are enabled

See merge request GNOME/gtk!3439
2021-04-15 22:17:22 +00:00
Matthias Clasen a926f217d7 imcontext: Eat key events during preedit
Avoid passing through random key press or release
events while we are showing preedit. That prevents
'accidents' like typing Ctrl-. bringing up the
Emoji chooser during preedit, or hitting Ctrl-a
after the Compose key moving the 'dot' around in
vim in terminals.
2021-04-15 17:46:19 -04:00
Matthias Clasen 4334f9613b Merge branch 'x11-quiet-exit-3' into 'gtk-3-24'
x11: Be quiet on exit by default

See merge request GNOME/gtk!3437
2021-04-14 10:50:24 +00:00
Eli Schwartz ae5a29be4f meson: only build demo manpages when demos are enabled
Installing them even when manpages are enabled, but the demos are
disabled, produces manpages for unavailable programs...
2021-04-13 22:48:39 -04:00
Matthias Clasen c3503fcc84 x11: Be quiet on exit by default
The condition we check for to catch X servers going away
may not be accurate anymore, and the warning shows up in
logs, causing customers to be concerned. So, be quiet by
default, unless the user explicitly asked for a message.
2021-04-13 20:42:21 -04:00
Matthias Clasen 222c6c66ab Merge branch 'fontchooser-since-fix' into 'gtk-3-24'
fontchooser: Fix some since annotations

See merge request GNOME/gtk!3428
2021-04-12 05:07:44 +00:00
Matthias Clasen 3fb5890e69 fontchooser: Fix some since annotations
The "level", "font-features" and "language" were annotated
with the wrong version.

Fixes: #1830
2021-04-11 23:22:46 -04:00
Matthias Clasen 5b13ae1b2e Merge branch 'ebassi/hvbox-docs' into 'gtk-3-24'
docs: Remove any reference to GtkGrid in Gtk[HV]Box

See merge request GNOME/gtk!3422
2021-04-11 13:14:33 +00:00
Matthias Clasen 728d6cd538 Merge branch 'fix-scale-critical' into 'gtk-3-24'
scale: Fix sporadic criticals

See merge request GNOME/gtk!3421
2021-04-11 13:14:21 +00:00
Emmanuele Bassi 3377dc7d40 docs: Remove any reference to GtkGrid in Gtk[HV]Box
GtkBox is not going away, so there's not point in making things more
confusing for those who are still porting their code from GTK2 to GTK3
10 years after GTK 3.0 was released.

Fixes: #3854
2021-04-10 23:57:03 +01:00
Matthias Clasen eaabc3722e scale: Fix sporadic criticals
gtk_css_node_update_layout_attributes can cause us to
free priv->layout, and then bad things happen. Therefore,
we must call that function on a new layout *before* setting
priv->layout.
2021-04-10 10:07:55 -04:00
Matthias Clasen 3cfd1e1f52 Merge branch 'ceo_of_programming-gtk-3-24-patch-54089' into 'gtk-3-24'
Fix typo on gtklistbox.c's docs

See merge request GNOME/gtk!3418
2021-04-10 12:59:12 +00:00
CEO of Programming 475a4c8262 Update gtklistbox.c 2021-04-10 01:04:05 +00:00
Pawan Chitrakar 8b74d5f966 Update Nepali translation 2021-04-09 17:41:07 +00:00
Pawan Chitrakar b7cb281879 Update Nepali translation 2021-04-09 17:13:05 +00:00
Matthias Clasen 550b7fe8b2 Merge branch 'font-settings-fallback' into 'gtk-3-24'
wayland: Improve font setting fallback more

See merge request GNOME/gtk!3409
2021-04-07 18:58:21 +00:00
Matthias Clasen dfea8c31d9 wayland: Improve font setting fallback more
We may get a response from the portal that contains
no useful settings at all. In that case, we should
fallback as well.

Fixes: #3838
2021-04-07 14:30:48 -04:00
Matthias Clasen c3280c6b3c Merge branch 'font-settings-fallback' into 'gtk-3-24'
wayland: Improve font setting fallback

See merge request GNOME/gtk!3406
2021-04-07 14:04:12 +00:00
Matthias Clasen a3ff6e279c wayland: Improve font setting fallback
When we don't get stettings from the portal, the current
fallback is 'awful fonts'. There is no need for that. Instead,
set the fallback values to grayscale antialiasing with slight
hinting.
2021-04-07 08:43:08 -04:00
René de Hesselle 8627a9a569 Fix building on OS X El Capitan 10.11
The preprocessor directives for proper OS version support are missing
their last digit, rendering the checks defunct.

Improves on https://gitlab.gnome.org/GNOME/gtk/-/issues/3592 but does
not fully fix as other issues have surfaced down the line.
2021-04-05 22:20:25 +02:00
Chao-Hsiung Liao d03bf414ce Update Chinese (Taiwan) translation 2021-04-04 00:10:24 +00:00
Nathan Follens 98bf543af2 Update Dutch translation 2021-04-02 14:20:15 +00:00
Matthias Clasen 6a60ce7cd4 Merge branch 'us-intl-compose-for-3' into 'gtk-3-24'
Revert Compose sequence changes

See merge request GNOME/gtk!3387
2021-04-01 20:51:31 +00:00
Matthias Clasen ed9b3f5057 Revert Compose sequence changes
This was breaking muscle memory of people with
the us intl keyboard layout, for important keys
such as '. The unfortunate side-effect is that
our handling of <dead_acute> is a bit hampered
by sequences that don't fit the pattern. But
such is life.

Fixes: #3807
2021-04-01 15:52:12 -04:00
Carlos Garnacho 0ec077bcdc Merge branch 'wip/exalm/overshoot-changes-gtk3' into 'gtk-3-24'
scrolledwindow: Cancel overshoot on dimension changes

See merge request GNOME/gtk!3333
2021-04-01 12:14:10 +00:00
Alexander Mikhaylenko 27d38eca9a scrolledwindow: Cancel overshoot on dimension changes
If we scroll down in a list that's still being filled, we hit the edge and
initiate overshoot, and then the adjustment's upper value increases. This
leads to an unwanted bounce back.

Additionally, if in a similar situation the upper value decreases, the
overscroll glow gets stuck.

Update kinetic scrolling upper and lower value on changes, and immediately
cancel it if dimensions on that side change.

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3752
2021-04-01 16:37:03 +05:00
Jonas Ådahl 4ac8889d64 Merge branch 'issue3791' into 'gtk-3-24'
gdk/wayland: Defer processing of globals closures

See merge request GNOME/gtk!3357
2021-03-30 13:40:17 +00:00
Robert Mader 86ef0e6094 gdk/wayland: Defer processing of globals closures
... until all globals have been received.

The dependency tracking introduced in 4e9be39518 only allows to
specify required globals and processes the closures as soon as
the requirements have been met. There are, however, also optional
dependencies - most notably the primary_selection protocol.
Currently we rely on the fact that compositors like Mutter announce
it before `wl_seat`, even though the order is not specified in
the spec.

Process globals closures only after all globals have been announced,
so optional dependencies can be accommodated.

Closes https://gitlab.gnome.org/GNOME/gtk/-/issues/3791
2021-03-30 15:10:04 +02:00
Matthias Clasen 9a2382bebc Merge branch 'spinbutton-localized-digits-3' into 'gtk-3-24'
spinbutton: Interpret localized digits

See merge request GNOME/gtk!3369
2021-03-30 02:37:41 +00:00
Matthias Clasen fa69e5f42d spinbutton: Interpret localized digits
Interpret input where the characters have numeric values.

See #3387
2021-03-29 22:10:06 -04:00
Matthias Clasen 162243c7ce Merge branch 'fix-large-text-3' into 'gtk-3-24'
label: Fix reacting to screen resolution changes

See merge request GNOME/gtk!3368
2021-03-30 01:28:37 +00:00
Matthias Clasen 316aa85b8d label: Fix reacting to screen resolution changes
Labels were not reacting when the screen resolution
changes, as e.g. when turning "Large Text" on of off.
2021-03-29 20:48:15 -04:00
Matthias Clasen ba8c18019d imcontext: Look for Compose file in the right place
The documentation states that GTK will load a Compose
file from ~/.config/gtk-3.0/Compose. Unfortunately,
backports changed this unintentionally to look in
the gtk-4.0 directory. Change it back.
2021-03-29 18:31:23 -04:00
Anders Jonsson d8fb8db37c Update Swedish translation 2021-03-27 21:11:16 +00:00
Matthias Clasen 71c64e650d Merge branch 'gtk-3-24-minimize-no-decorations' into 'gtk-3-24'
GDK quartz: Keep window without decoration miniaturizable

See merge request GNOME/gtk!3281
2021-03-27 03:32:07 +00:00
Matthias Clasen 23db350889 3.24.28 2021-03-26 21:54:29 -04:00
Matthias Clasen 3c6d96980f Fix make dist 2021-03-26 21:54:29 -04:00
Matthias Clasen 4c7944175f Merge branch 'double-dead-keys-3' into 'gtk-3-24'
Double dead keys 3

See merge request GNOME/gtk!3354
2021-03-27 01:11:20 +00:00
Matthias Clasen 8c7846733a imcontext: Tweak dead key handling
Reshuffle things to allow for a limited amount of
dead key 'chaining'. We keep up to 2 dead keys in
the preedit, so you can type
<dead_acute> <dead_cedilla> <c>
to produce ḉ, while still getting ```c with
<dead_grave> <dead_grave> <dead_grave> <c>.
2021-03-26 20:42:24 -04:00
Matthias Clasen 58b3145c90 composetable: Limit algorithmic checking
Only check for combinations of up to 2 dead keys with
a base character. We don't want to spend ages generating
all permutations of long sequences.
2021-03-26 20:28:14 -04:00
Matthias Clasen da7a511aa2 Merge branch 'fix-ding-119' into 'gtk-3-24'
cssshadowvalue: Apply device scale to the offset when blurring text

See merge request GNOME/gtk!3343
2021-03-24 11:24:21 +00:00
Daniel van Vugt 86da4e0c97 cssshadowvalue: Apply device scale to the offset when blurring text
Although the surface already has the device scale set, that doesn't
apply to the offset which is in raw device units. So we need to scale
the device offset explicitly.

Fixes: https://gitlab.com/rastersoft/desktop-icons-ng/-/issues/119
2021-03-24 18:37:12 +08:00
Matthias Clasen c22d4a6657 Merge branch 'issue3715-gtk3' into 'gtk-3-24'
[gtk3] x11/dnd: Ignore XErrors from the COW

See merge request GNOME/gtk!3335
2021-03-22 15:05:01 +00:00
Olivier Fourdan 39db784704 x11/dnd: Ignore XErrors from the COW
The DnD code for X11 adds the composite overlay window (aka COW) to the
cache.

Yet the X11 requests to get and release the COW may trigger XErrors that
we ought to ignore otherwise the client will abort.

Fixes: #3715
2021-03-22 15:35:13 +01:00
Matthias Clasen 0f5ae95460 Merge branch 'better-dead-keys-3' into 'gtk-3-24'
Better dead keys 3

See merge request GNOME/gtk!3330
2021-03-22 02:48:30 +00:00
Matthias Clasen 59397005fa Regenerate compose sequence file
Update our compose sequences based on the current
update xorg Compose.pre file. Beyond that, remove
some deadkey sequences that we are now handling
(better) in code.
2021-03-21 22:11:37 -04:00
Matthias Clasen 41c3e9873c Move compose related tooling to a subdir
This reduces the clutter in gtk/.
2021-03-21 22:11:27 -04:00
Matthias Clasen 7b3c387af9 compose-parse: Add a negative lookaside
Make this script parse gtk-compose-remove.txt for
sequences to remove from the xorg Compose file.
This will be used for removing some deadkey combinations
that we can handle better in code.

Also, make this script explicitly python2. I tried
porting it to python3, but gave up in the end.
2021-03-21 22:11:16 -04:00
Matthias Clasen a0cdd25bd4 imcontext: Improve dead key handling more
For sequences like ``, we want to commit the first
deadkey and then continue preedit with the second.

The alternative is to do chained deadkeys, where
entering ~~a yields ̃̀̃̃a. But we don't do that, and
I think that would be more controversial.
2021-03-21 22:09:56 -04:00
Matthias Clasen c26525f87c imcontext: Improve dead key handling
For sequences like `x, where we don't have a compose
sequence, we still want to commit "`x", and not silently
eat the keys.
2021-03-21 22:09:41 -04:00
Марко Костић 5b0a14410d Update Serbian translation 2021-03-19 06:31:48 +00:00
Matthias Clasen f1f5cbd88e Merge branch 'fix-wayland-keyboard-layout' into 'gtk-3-24'
wayland: Pass layout information in key events

See merge request GNOME/gtk!3302
2021-03-15 19:57:34 +00:00
Matthias Clasen 1ce5494ffd wayland: Pass layout information in key events
We were always setting group to 0, causing accelerator
interpretation to always go off the first configured
layout, not the active one.

Fixes: #1825
2021-03-15 14:48:05 -04:00
Matthias Clasen 5edac966e4 Merge branch 'ebassi/reproducible-icon-cache' into 'gtk-3-24'
Reproducible icon cache

See merge request GNOME/gtk!3293
2021-03-13 18:07:01 +00:00
Bernhard M. Wiedemann 850768270f updateiconcache: Sort list of entries
because filesystem readdir order is indeterministic.

Without this patch, building openSUSE's balsa package
had variations between builds in /usr/share/balsa/icon-theme.cache

(cherry picked from commit b364827a5b)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
2021-03-13 15:12:18 +00:00
Matthias Clasen c7df3b9e97 3.24.27 2021-03-12 10:41:57 -05:00
Matthias Clasen b94955e614 Merge branch 'gdk-win32-use-window-from-point-api' into 'gtk-3-24'
GdkWin32: Fix mouse events in presence of transparent windows on the desktop

See merge request GNOME/gtk!2767
2021-03-11 01:10:20 +00:00
Cédric Krier 238bb38249 Keep window without decoration miniaturizable
Closes #2345
2021-03-10 16:08:14 +01:00
Tim Sabsch c8dbe02850 Update German translation 2021-03-08 17:59:25 +00:00
Tim Sabsch 84337f7758 Update German translation 2021-03-08 17:47:11 +00:00
Rūdolfs Mazurs a3c8214fb5 Update Latvian translation 2021-03-07 18:44:43 +00:00
Matthias Clasen 9216fe2cc0 Merge branch 'fix-wintab-whlrot-gtk-3-24' into 'gtk-3-24'
WinTab - Add support for Wheel/Rotation axis

See merge request GNOME/gtk!3249
2021-03-06 19:26:45 +00:00
Changwoo Ryu 60a714a25f Update Korean translation 2021-03-06 18:11:19 +00:00
Knuckx d7d6098281 WinTab - Add support for Wheel/Rotation axis - Rebase and fix conflicts for merge 2021-03-05 23:35:29 +00:00
Matthias Clasen 79757da2a9 Merge branch 'fix-label-link-activate' into 'gtk-3-24'
label: Skip updating link state if we have no layout

See merge request GNOME/gtk!3262
2021-03-05 20:30:38 +00:00
Timm Bäder bfe0f7dd4d label: Skip updating link state if we have no layout
This can happen whenever the ::activate-link handler sets different
markup on the label, causing all links to be recreated. In this case,
the GtkLabelLink* passed to emit_activate_link is garbage after the
g_signal_emit call and we shouldn't try to do anything with it.

Fixes #1498
2021-03-05 14:56:20 -05:00
Steven Calwas 86d38e6ae2 Fix window unresponsive to mouse after app-switch w/drawing tablet
Partially fixes issue #2191 regarding switching to another app while
hovering a stylus over a drawing tablet causes subsequent mouse
clicks in the app to be ignored. I was not able to reproduce the
other behavior described in #2191 concerning tiling a window.
2021-03-05 14:37:29 -05:00
Matthias Clasen b64d888288 Merge branch 'wip/exalm/window-shadow-dark-3' into 'gtk-3-24'
Adwaita: Use transparent black for window border in dark too

See merge request GNOME/gtk!3260
2021-03-05 19:35:26 +00:00
Matthias Clasen 94befed65f Merge branch 'issue1549' into 'gtk-3-24'
Handle Wintab cursors that are recognized after GDK app init

See merge request GNOME/gtk!2458
2021-03-05 18:53:42 +00:00
Alexander Mikhaylenko d70fa89bdf Adwaita: Use transparent black for window border in dark too
Avoid smear when the background behind the window is dark. Adjust opacity
to make it appear roughly the same as before on white background.
2021-03-05 22:43:49 +05:00
Matthias Clasen 782bbca52c Merge branch 'mutter-css-crash-fix' into 'gtk-3-24'
Adwaita: Ensure SSD decorations do not change size when losing focus

See merge request GNOME/gtk!3256
2021-03-05 15:47:08 +00:00
Sebastian Keller 392e52187d Adwaita: Ensure SSD decorations do not change size when losing focus
56f6ac5f introduced a 20px shadow for the '.tiled decoration:backdrop'
selector. This selector is more specific than the '.ssd decoration'
selector and caused unfocused tiled SSD windows to have a shadow that
focused ones did not have. The mutter code however assumes that the size
of the decoration does not change between the states and this was
causing a crash when clicking below the titlebar in unfocused tiled SSD
windows.

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3716
2021-03-05 00:36:15 +01:00
Matthias Clasen 57cc7dce81 Merge branch 'wip/exalm/scroll' into 'gtk-3-24'
Revert "Add scaling adjustment for touch dragging a scrolled window"

See merge request GNOME/gtk!3251
2021-03-03 12:00:14 +00:00
Alexander Mikhaylenko d0cf3007c6 Revert "Add scaling adjustment for touch dragging a scrolled window"
This reverts commit d4943ef2fb.

This commit has broken scrolling in GtkTreeView. VTE has
`scroll-unit-pixels` property now, so the original issue is fixed
separately.

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3707
2021-03-03 15:04:41 +05:00
Baurzhan Muftakhidinov 48768bd3ae Update Kazakh translation 2021-03-02 03:38:08 +00:00
Matthias Clasen 19b8013618 Merge branch 'fix-leak-of-event-structures' into 'gtk-3-24'
GdkWin32: fix leak of event structures

See merge request GNOME/gtk!3245
2021-03-02 00:37:32 +00:00
Luca Bacci fa2ae10599 Fix leak of event structures
Inside generate_button_event, if _gdk_input_ignore_core is > 0 we
leak an event structure. Fix that.
2021-03-01 10:51:38 +01:00
Emin Tufan Çetin 48de9796c2 Update Turkish translation 2021-02-25 14:26:26 +00:00
Sabri Ünal fcd083af14 Update Turkish translation 2021-02-25 13:48:29 +00:00
Źmicier Turok 88eaffc207 Update Belarusian translation 2021-02-25 09:29:42 +00:00
Źmicier Turok 85315ea457 Update Belarusian translation 2021-02-25 09:13:07 +00:00
Matthias Clasen 5ec5359981 Merge branch 'libreoffice-input-fix' into 'gtk-3-24'
imcontext: Fixes to the state machine

See merge request GNOME/gtk!3239
2021-02-24 22:27:57 +00:00
Matthias Clasen 7b6f627666 imcontext: Fixes to the state machine
It turns out that we we were sometimes emitting
preedit-end multiple times, and sometimes not at
all. Same for preedit-start. To fix this up, introduce
a in_compose_sequence flag, maintain it, and use it
in the right places.

After these changes, both

C-S-u 1 2 3 Enter
Compose a e

generate the right signals:

preedit-start, preedit-changed,..., preedit-end, commit
2021-02-24 14:15:33 -05:00
Matthias Clasen 953d35b225 3.24.26 2021-02-24 14:13:46 -05:00
Fran Dieguez 659b23b7c6 Updated Galician translations 2021-02-24 01:53:47 +01:00
Emmanuele Bassi 1a878b2b88 docs: Fix closing tag
The XML validator took way too long.
2021-02-23 19:25:42 +00:00
Emmanuele Bassi b189d842dd docs: Remove mentions of decommissioned services
We don't use Bugzilla or mailing list any more.
2021-02-23 17:37:00 +00:00
Chun-wei Fan 22391f42b8 Visual Studio projects: Set GTK_HOST appropriately
This will make GTK_HOST defined more like what it is on Meson builds, so that
we set the host string appropriately according to the build that is being
carried out, instead of defaulting to i686-pc-vsXX for all builds.

Like the previous commit on win32/config-msvc.mak.in, this now sets GTK_HOST
to be:

i686-pc-vsXX for 32-bit x86 builds
x86_64-pc-vsXX for x64 builds
aarch64-pc-vsXX for ARM64 builds (requires VS2017 15.9.x or later)
2021-02-23 17:48:53 +08:00
Chun-wei Fan c3b9f56121 win32/gtk-introspection-msvc.mak: Prepare for ARM64 builds
Currently, introspection is not well-supported for ARM64 Windows builds as:

* There is no official Python release for ARM64 Windows, but it is currently
  possible to build it with sufficient support for G-I, however...

* The tooling in Python still needs to be updated to enable ARM64 Windows
  builds for use with g-ir-scanner and friends, and...

* Introspection builds must be done on an ARM64 system, since we are running a
  dumper binary to generate the .gir files

This will attempt to prepare things for building GTK's introspection files on
Windows ARM64, but will require a custom installation of Python as noted above,
for the time being
2021-02-23 17:48:53 +08:00
Chun-wei Fan 07e06fb4dd win32/config-msvc.mak: Don't hardcode GTK_HOST to i686-pc-vsXX
Instead, rely on the mechanism that we already have to set the platform string
appropriately, eg:

i686-pc-vsXX for 32-bit x86 builds
x86_64-pc-vsXX for x64 builds
aarch64-pc-vsXX for arm64 builds
2021-02-23 17:48:53 +08:00
Chun-wei Fan 935691f94c win32/detectenv-msvc.mak: Add linker flag for ARM64
This prepares things better for ARM64 (aarch64) Windows builds, to make things
more complete and comparable to x64 and x86 builds.
2021-02-23 17:48:53 +08:00
Źmicier Turok 4d6f110ca2 Update Belarusian translation 2021-02-23 09:11:08 +00:00
Źmicier Turok 9227d9c30f Update Belarusian translation 2021-02-23 09:09:40 +00:00
Chun-wei Fan 508036f745 Visual Studio 201x projects: Fix generating gtk+-win32-3.0.pc
The copy command to copy gtk+-win32-3.0.pc from gtk+-3.0.pc was mistakenly
done to copy gtk+-3.0.pc two times.  Oops... :|
2021-02-23 16:39:32 +08:00
Ask Hjorth Larsen 9c9805dff8 Revert "Updated Danish translation"
Update applies only to other branch

This reverts commit 8b0001876b.
2021-02-23 01:30:56 +01:00
Ask Hjorth Larsen 8b0001876b Updated Danish translation 2021-02-23 01:26:19 +01:00
Matthias Clasen ef340ea616 Merge branch 'compose-warning-3' into 'gtk-3-24'
imcontext: Take out the warnings

See merge request GNOME/gtk!3231
2021-02-22 21:06:26 +00:00
Matthias Clasen db1cb04896 imcontext: Take out the warnings
Don't warn about Compose file constructs we don't
support. We haven't supported these for a long time,
and nobody has every complained. No need to wake
up sleeping dogs.
2021-02-22 15:18:25 -05:00
Emin Tufan Çetin 4f81b5cd91 Update Turkish translation 2021-02-21 18:05:31 +00:00
Emin Tufan Çetin f297e9198d Update Turkish translation 2021-02-21 18:02:23 +00:00
Emin Tufan Çetin b56ce02e0c Update Turkish translation 2021-02-21 18:00:49 +00:00
Emin Tufan Çetin aae92380a1 Update Turkish translation 2021-02-21 13:39:39 +00:00
Emmanuele Bassi c06a593b57 Merge branch 'type-int-cairo-format' into 'gtk-3-24'
Use the proper cairo.Format type instead of overriding to gint via annotations...

See merge request GNOME/gtk!3228
2021-02-20 11:49:11 +00:00
Sebastian Dröge ac69c05a31 Use the proper cairo.Format type instead of overriding to gint via annotations in gdk_window_create_similar_surface() 2021-02-20 12:43:53 +02:00
Matthias Clasen bfe201d70a Merge branch 'unintrusive-compose-preedit-3' into 'gtk-3-24'
sUnintrusive compose preedit 3

See merge request GNOME/gtk!3223
2021-02-18 23:55:28 +00:00
Matthias Clasen 1282cac99d imwayland: Be careful about cursor positions
We don't want to hand out cursor positions based on
the original preedit text and then tweak the text to
be different.
2021-02-18 15:44:21 -05:00
Matthias Clasen 784b236964 Merge branch 'unintrusive-compose-preedit-3' into 'gtk-3-24'
Unintrusive compose preedit 3

See merge request GNOME/gtk!3221
2021-02-18 18:41:37 +00:00
Matthias Clasen f8206f18b1 imwayland: Tweak preedit text
Tweak the preedit text we get from IBus (via the compositor) to
match what GtkIMContextSimple produces for Compose sequences now.

This provides a unified experience.
2021-02-18 13:14:31 -05:00
Matthias Clasen 523d5121d3 imcontext: Make Compose preedit less intrusive
Tweak the preedit display for Compose sequences to
be not so distracting. We only show the Compose key
when it occurs in the middle of the sequence or is
the only key so far, and use · instead of ⎄ for it.

Also, make sure to display dead keys more adequately.
2021-02-18 12:38:22 -05:00
Matthias Clasen a048da02d5 Merge branch 'wip/carlosg/font-settings-lookups-3-24' into 'gtk-3-24'
gdk/wayland: Look for font settings recursively (3.24)

See merge request GNOME/gtk!3219
2021-02-18 17:18:19 +00:00
Carlos Garnacho 4d30400987 gdk/wayland: Look for font settings recursively
Use the infrastructure already available to look up keys, instead.
This does the right thing and looks up the setting across all
sources.

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/3680
2021-02-18 16:51:28 +01:00
Matthias Clasen f56a5ee260 Merge branch 'wip/jimmac/tiled-resize-area-gtk3' into 'gtk-3-24'
Adwaita: control surface for resize tiled windows

See merge request GNOME/gtk!3212
2021-02-17 03:53:55 +00:00
Matthias Clasen 891d4e9da3 Merge branch 'imcontext-modifier-intent' into 'gtk-3-24'
imcontextsimple: Bring back modifier intent

See merge request GNOME/gtk!3213
2021-02-17 03:40:22 +00:00
Matthias Clasen 8780cde919 imcontextsimple: Bring back modifier intent
This was lost by accident in 85d34932f3.
2021-02-16 19:31:17 -05:00
Jakub Steiner 56f6ac5fcc Adwaita: control surface for resize tiled windows
- window resizing control area is implemented as where the shadows are drawn
    - create a 'fake' shadow for the tiled case to allow easier resizing of
      the tiled window ratio even if it's offset to the side of the border

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3670
2021-02-16 14:23:12 +01:00
Matthias Clasen 03b97b0a8b Merge branch 'wip/jimmac/scrollbars-fine-tune-fix-gtk3' into 'gtk-3-24'
Adwaita: Avoid fine-tune scrollbars jumping

See merge request GNOME/gtk!3210
2021-02-16 12:26:13 +00:00
Jakub Steiner 3d30790280 Adwaita: Avoid fine-tune scrollbars jumping
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3672
2021-02-16 11:41:57 +01:00
Charles Monzat 20ecaaa0e1 Update French translation 2021-02-16 08:52:37 +00:00
Matthias Clasen b201438b39 Merge branch 'wip/jimmac/larger-smaller-scrollbar-gtk3' into 'gtk-3-24'
Adwaita: Scrollbar transitions and size

See merge request GNOME/gtk!3205
2021-02-15 18:08:20 +00:00
Carlos Garnacho dca64da1fe Merge branch 'touch-scroll-scale' into 'gtk-3-24'
Add scaling adjustment for touch dragging a scrolled window

See merge request GNOME/gtk!2615
2021-02-15 17:27:26 +00:00
Jakub Steiner ca34428d17 Adwaita: Scrollbar transitions and size
- tone down the size of the controller again
 - transition between the indicator and control fluidly

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/1886
2021-02-15 13:45:21 +01:00
Matthias Clasen 5f13ee0afe Merge branch 'lenient-compose-parsing-3' into 'gtk-3-24'
Lenient compose parsing 3

See merge request GNOME/gtk!3202
2021-02-14 20:35:40 +00:00
Matthias Clasen d11cde0c1c imcontext: Be more lenient in parsing Compose
X11 allows keysyms to be specified in addition to strings.
We only support the strings. In the past, we ignored everything
after the string. Go back to doing that, but issue a warning
that we've ignored the keysym.
2021-02-14 13:03:50 -05:00
Matthias Clasen 052b7d0ca7 Merge branch 'fix-compose-comments-for-3' into 'gtk-3-24'
imcontext: Fix a regression in Compose file parsing

See merge request GNOME/gtk!3200
2021-02-14 17:45:22 +00:00
Matthias Clasen 22960c5c20 imcontext: Fix a regression in Compose file parsing
We accidentally dropped the handing of # comments.
Bring it back.

Fixes: #3664
2021-02-14 12:10:09 -05:00
Balázs Meskó d68898a033 Update Hungarian translation 2021-02-14 00:11:21 +00:00
Matthias Clasen 5c6aa76979 3.24.25 2021-02-12 10:45:40 -05:00
Matthias Clasen abefce0961 Fix distcheck 2021-02-12 10:24:27 -05:00
Matthias Clasen 2ca1fe61a4 Merge branch 'frame-request-api' into 'gtk-3-24'
wayland/window: Add API to overwrite surface frame requests

See merge request GNOME/gtk!3111
2021-02-12 12:46:37 +00:00
Robert Mader d3316a37ed wayland/window: Add API to add extra surfaces for frame callbacks
This is useful when clients use subsurfaces independently of GDK.
For example if a client creates a subsurface that covers a GdkWindow
entirely. If this subsurface is opaque, Wayland compositors may not
emit callbacks for the surface of the GdkWindow any more.
Adding the covering subsurface via this new API ensures the
GdkWindow will continue to update in this case.
2021-02-12 13:18:29 +01:00
Matthias Clasen 6fd951e53d Merge branch 'wip/jimmac/tiled-shadow-fix-fix-gtk3' into 'gtk-3-24'
Adwaita: Bring back borders of tiled windows

See merge request GNOME/gtk!3185
2021-02-11 17:03:24 +00:00
Jakub Steiner 35adc7ed04 Adwaita: Bring back borders of tiled windows
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3661
2021-02-11 15:24:59 +01:00
Matthias Clasen 52eb7b23cb Merge branch 'wip/jimmac/fix-maximized-shadows-gtk3' into 'gtk-3-24'
adwaita: disable shadows when window is maximized, fullscreen, tiled

See merge request GNOME/gtk!3179
2021-02-10 19:20:37 +00:00
Jakub Steiner 6f4ebce914 adwaita: disable shadows when window is maximized, fullscreen, tiled
These shadows cause a significant draw performance drop for maximized
windows. Disabling them increases the chances we can have faster scroll
performance of text.

There is some risk here for systems where they have a dock and you expect
the shadow to draw beneath that dock for transparency reasons.
2021-02-10 18:18:10 +01:00
Matthias Clasen 40295441d1 Merge branch 'fix-imcontext-crash' into 'gtk-3-24'
Fix imcontext crash

See merge request GNOME/gtk!3174
2021-02-09 23:37:27 +00:00
Matthias Clasen d2fe033c21 imcontextsimple: Fix a crash
In the backport, I inadvertendly removed the
set_client_window implementation, which needs
to remain.
2021-02-09 18:11:38 -05:00
Matthias Clasen e3c03e98f9 Merge branch 'im-context-work-for-3' into 'gtk-3-24'
imcontext: Backport compose sequence improvements

See merge request GNOME/gtk!3172
2021-02-09 02:00:00 +00:00
Matthias Clasen 85d34932f3 imcontext: Backport compose sequence improvements
Improve compose sequence handling:
- Show preedit for compose seqences
- Support sequences of up to 20 code points
- Warn when ignoring Compose file features
- Support compose sequences producing multiple characters
- Support hex escapes
2021-02-08 20:28:49 -05:00
Matthias Clasen a0818f5bae Merge branch 'gtk-3-24' into 'gtk-3-24'
printing: Create temporary queues for Avahi printers (Gtk 3)

See merge request GNOME/gtk!3161
2021-02-07 16:14:05 +00:00
Marek Kasik de3e97309f printing: Show all Avahi advertised printers
This commit unsubscribes CUPS backend from a DBus
signal in idle when listening for new items on Avahi.

Since GDBus emits gathered signals in idle while
checking whether the signal has been unsubscribed
it could happen that a signal was not processed
because it was removed from hash table of
subscribed signals.
This caused the situation where printers advertised
on Avahi were not listed in CUPS backend sometimes.

We need those signals since this happens when switching
from a general subscription which listens to signals
for all Avahi services to a specific one which listens
to just _ipp._tcp and _ipps._tcp (chicken and egg problem).
2021-02-05 18:57:19 +01:00
Marek Kasik d07bfbec1d printing: Create temporary queues for Avahi printers
This change extends set of Avahi advertised printers which
works with Gtk's CUPS print backend.

It creates a temporary queue (local printer) for each
Avahi printer in CUPS instead of accessing them directly
(via CUPS library).

This makes some printers work which did not work before and
also gives users more options to change in the print dialog.

This also changes naming of printers to be in accordance with CUPS.
It uses '_' instead of '-' and has hostname appended for CUPS remote
printers.
2021-02-05 18:57:19 +01:00
Matthias Clasen 89f3273651 Merge branch 'uac.meson.3' into 'gtk-3-24'
Meson: Avoid UAC on 32-bit Windows for gtk-update-icon-cache

See merge request GNOME/gtk!3147
2021-02-03 15:42:32 +00:00
Chun-wei Fan a612a42c11 Meson: Avoid UAC on 32-bit Windows for gtk-update-icon-cache
As the program executable name has 'update' in its filename,
gtk-update-icon-cache.exe is considered to be an installer program on 32-bit
Windows [1], which will cause the program to fail to run unless it is running
with elevated privileges (i.e. UAC).

Avoid this situation by embedding a manifest file into the final executable
that tells Windows that this is not a program that requires elevation.

Also make the autotools build files dist the new script and use the new script
to generate the manifest and rc files, instead of hardcoding the generating
bits in gtk/Makefile.am

Fixes issue #3632.

[1]: https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-vista/cc709628(v=ws.10)?redirectedfrom=MSDN,
under section "Installer Detection  Technology"
2021-02-03 14:56:07 +08:00
Jonas Ådahl ddb9bae3d4 Merge branch 'gtk-surface-release-3-24' into 'gtk-3-24'
Support gtk-shell surface release destructor

See merge request GNOME/gtk!2074
2021-01-29 16:21:09 +00:00
Matthias Clasen a8c12a4c96 Merge branch 'gtk-3-24' into 'gtk-3-24'
Adds support for Android/Chrome on-screen keyboard

See merge request GNOME/gtk!3130
2021-01-29 00:59:15 +00:00
Maxim Zakharov b31a80cd64 Adds support for Android/Chrome on-screen keyboard
Adds event listener for input events; converts input data into
key press and key release commands depending on inputType of the event.
2021-01-29 11:23:51 +11:00
Matthias Clasen 6748c7116d Merge branch 'wip/jimmac/larger-scrollbars' into 'gtk-3-24'
Adwaita: make scrollbars larger

See merge request GNOME/gtk!3110
2021-01-25 13:42:16 +00:00
Jakub Steiner d13b9f797a Adwaita: make scrollbars larger
When using scrollbars as active controls, rather than their primary role as indicators,
increase their size as click targets.

Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1886
2021-01-25 14:15:14 +01:00
Fabio Tomat 0b1ca619a7 Update Friulian translation 2021-01-21 06:42:25 +00:00
Bruce Cowan 16ac1a12fc Update British English translation 2021-01-18 20:34:32 +00:00
Jordi Mas 6fee66a9aa Update Catalan translation 2021-01-18 20:51:57 +01:00
Matthias Clasen aec4dc9387 Merge branch 'gtk_dbg_interactive_gtk3_backport' into 'gtk-3-24'
Allow GTK_DEBUG=interactive even without G_ENABLE_DEBUG defined

See merge request GNOME/gtk!3090
2021-01-18 19:41:25 +00:00
vanadiae 0a9e2d6ed7 gtk-debug: Allow interactive debug even without G_ENABLE_DEBUG
Currently when GTK3 is compiled without G_ENABLE_DEBUG, the inspector
can't be opened with GTK_DEBUG=interactive because it doesn't parse
this env var without G_ENABLE_DEBUG.

Since the inspector is always good to have, this commit now always
parses the GTK_DEBUG env var but only keep the "interactive" flag if
G_ENABLE_DEBUG isn't defined.
2021-01-18 18:35:50 +01:00
Марко Костић 395b30dcfe Update Serbian translation 2021-01-16 13:31:17 +00:00
Matthias Clasen 326d101a57 Merge branch 'wip/carlosg/mark-valid-portal-settings-3-24' into 'gtk-3-24'
gdk/wayland: Mark matched settings from the portal as valid (3.24)

See merge request GNOME/gtk!3077
2021-01-14 18:31:57 +00:00
Carlos Garnacho 02a02fac56 gdk/wayland: Mark matched settings from the portal as valid
Commit e6209de962 added some checks on TranslationEntry.valid in
order to figure out whether using the new font settings or the
old g-s-d ones. However that's only set in the non-sandboxed case.

This makes sandboxed applications fallback to the old (and also
non-existing with modern g-s-d) settings, possibly resulting in
ugly defaults being picked.

Fix this by also marking TranslationEntry elements as valid when
using the settings portal, precisely those entries that we are able
to read and match with our own table.
2021-01-14 16:09:27 +01:00
Carlos Garnacho 7ab4c9a68b Merge branch 'fix-tablet-3.24' into 'gtk-3-24'
Wayland: Fix segfault when receiving tablet/touch events for surfaces that have already been destroyed client-side

See merge request GNOME/gtk!2809
2021-01-10 13:18:15 +00:00
wisp3rwind 19a740e277 Wayland: ignore touch/tablet events on destroyed surfaces
When destroying a wl_surface (e.g. when a window or menu is closed), the
surface may continue to exist in the compositor slightly longer than on
the client side. In that case, the surface can still receive input
events, which need to be ignored gracefully.
In particular, this prevents segfaulting on wl_surface_get_user_data()
in that situation.

Reported in
https://gitlab.gnome.org/GNOME/gtk/-/issues/3296

The same issue for pointers/keyboards was reported in
https://bugzilla.gnome.org/show_bug.cgi?id=693338

and fixed with in
bfd7137ffb
3625f17857
a8fc099a72
2021-01-10 12:00:28 +01:00
Carlos Garnacho cae5e60113 Merge branch 'avoid-pointer-reset' into 'gtk-3-24'
wayland: avoid set_cursor() when unchanged or invisible

See merge request GNOME/gtk!2822
2021-01-06 19:53:30 +00:00
Matthias Clasen c87b21351c Merge branch 'workaround-win32-intel-blit' into 'gtk-3-24'
gdkglcontext-win32.c: Workaround Intel glBlitFramebuffer() issues

See merge request GNOME/gtk!2996
2021-01-06 16:13:02 +00:00
Matthias Clasen f25a5f21fc Merge branch 'gtk-3-24' into 'gtk-3-24'
fix touchscreen events processing in broadway.js

See merge request GNOME/gtk!2972
2021-01-06 16:10:08 +00:00
Fran Dieguez bda6c5ec2b Update Galician translation 2021-01-04 23:07:05 +00:00
Fabio Tomat 51cef47835 Update Friulian translation 2020-12-31 10:24:55 +00:00
Chun-wei Fan f8b7bd6dd6 Fix 'make dist' again
The autotools pattern rules can be off-putting...
2020-12-28 22:11:08 +08:00
Źmicier Turok 72b047b084 Update Belarusian translation 2020-12-27 07:29:47 +00:00
Źmicier Turok 72eb09f8e8 Update Belarusian translation 2020-12-27 07:27:34 +00:00
Chun-wei Fan 7647208fba Try again to fix 'make dist'
It turns out that we must put Directory.Build.props in win32/vs10 and let
automake copy it over to win32/vs15/... so do that, and only dist the copy
in win32/vs15.
2020-12-24 18:10:16 +08:00
Chun-wei Fan 8f325b475b win32/Makefile-newvs.am: Fix 'make dist'
We need to account for the lack of Directory.Build.props in win32/vs10...
2020-12-24 17:05:10 +08:00
Chun-wei Fan ac7dd63b02 Visual Studio projects: Support arm64/aarch64 builds better
Update the NMake Makefiles used for generating the various sources be able to
cope with an ARM64 build environment, and update the project files, in
particular for Visual Studio 2017 (VisualStudioVersion 15.0) so that we can
pull in the system .lib's that were somehow excluded from the default list
on ARM64 builds.

Also, add a custom Directory.Build.props in win32/vs15 so that we do not
try to build with the Windows 8.1 SDK by defualt, which is not ready for ARM64
builds, but instead uses the appropriate Windows 10 SDK that supports this.

Update the README.win32 file to give people instructions on how ARM64 builds
can be carried out.
2020-12-24 16:27:58 +08:00
Chun-wei Fan a7b93d62d5 Visual Studio Projects: Improve search for Harfbuzz headers
Look in the include/harfbuzz directory that is under the pre-defined prefix
directory, as Pango 1.44.x and later pulled in HarfBuzz headers for all builds
2020-12-24 13:57:28 +08:00
Chun-wei Fan 985e17772b Visual Studio projects: Do not hardcode gdbus-codegen path
Instead, use the $(GDBUS_CODEGEN) NMake Makefile variable, so that it may be
overridden if needed
2020-12-24 13:48:36 +08:00
Danial Behzadi 856fb75413 Update Persian translation 2020-12-23 15:23:18 +00:00
Emmanuele Bassi 138f104fa4 Merge branch '324.c89' into 'gtk-3-24'
Fix gtk-3-24 builds on older C89-esque compilers

See merge request GNOME/gtk!2995
2020-12-23 13:45:28 +00:00
Chun-wei Fan 79e512ab0b gdkglcontext-win32.c: Workaround Intel glBlitFramebuffer() issues
Intel OpenGL drivers have an issue where the results of a series of
glBlitFramebuffer() can delay updating the display, when we use GDK_GL=always,
which is manifested when attempting to enter text in text boxes.

This attempts to work around this issue by requiring a glFlush() call and a
retry to the same glBlitFramebuffer() calls to avoid delays in keystrokes when
using GDK_GL=always and when not using libANGLE OpenGL/ES emulation, when an
Intel OpenGL driver is being used.

Special thanks to Lukas K. for the analysis and coming up with a workaround,
which this patch builds upon.

Fixes issue 3487
2020-12-23 19:01:31 +08:00
Chun-wei Fan 91343251b9 gtk/fallback-c89.c: Add fallback for fmin()
fmin() is a function that is introduced with C99/C++11, so check for the
presence of it and provide a simple implementation for it if it does not
exist.

Also update the config.h.win32.in template accordingly, since this
function is provided on Visual Studio 2013 or later.
2020-12-23 12:52:19 +08:00
Chun-wei Fan ecd6b0b9a4 gtk/gtkscrolledwindow.c: Declare variables at top-of-block
This way, the code can be built on C89-esque compilers.
2020-12-23 11:24:34 +08:00
Chun-wei Fan de6498f18c Visual Studio: Use G_ENABLE_DEBUG for all builds
This way, we can enable the built binaries to print out diagnostic
messages as needed by the values we set via the envvar GDK_DEBUG.

The release configs of the Visual Studio project files follow the
settings of Meson's `debugoptimized` build settings.
2020-12-23 10:46:58 +08:00
Matthias Clasen f89aeecc4f Merge branch 'cursor-aspect-ratio-gtk3' into 'gtk-3-24'
Cursor aspect ratio fixes for gtk 3

See merge request GNOME/gtk!2965
2020-12-21 19:26:39 +00:00
sicklylife eec24a0982 Update Japanese translation 2020-12-20 08:02:07 +00:00
sicklylife a4ab1cfebe Update Japanese translation 2020-12-20 07:57:27 +00:00
Maxim Zakharov ba845fa7b2 fix touchscreen events processing in broadway.js
Makes event listeners active explicitly if supported; corrects
handling for deleted surfaces preventing javascript errors in
accessing deleted objects; makes event identifiers unique for
broadwayd when executing in Chrome on Android.

Partially fixes #1493
2020-12-18 12:22:47 +11:00
Sebastian Keller 2a89189f1a textview: Use correct aspect ratio when invaldiating cursor
The size of the cursor depends on either the gtk-cursor-aspect-ratio
GtkSetting or as of the previous commit on the GtkSetting or the
cursor-aspect-ratio style property. GtkTextView was only considering the
style property.

Related: https://gitlab.gnome.org/GNOME/gtk/-/issues/3441
2020-12-16 20:49:39 +01:00
Sebastian Keller 0165cce645 stylecontext: Add style property fallback for gtk-cursor-aspect-ratio
The gtk-cursor-aspect-ratio GtkSetting was only recently introduced and
replaced the cursor-aspect-ratio style property. This was causing old
configurations that used CSS to modify this property to no longer apply.
This commit introduces a fallback from the GtkSetting to the style
property if the value of the setting is unchanged.

Related: https://gitlab.gnome.org/GNOME/gtk/-/issues/3441
2020-12-16 20:49:39 +01:00
Sebastian Keller 6c5489ab25 settings: Support loading float values from keyfiles
The gtk-cursor-aspect-ratio property got added as a float property.
However there is no parser for float values from keyfiles which meant
that it could not be changed from settings.ini.

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3441
2020-12-16 20:49:39 +01:00
Emmanuele Bassi b933d57632 Merge branch 'pixbuf-from-surface-leak' into 'gtk-3-24'
gdkpixbuf-drawable: Free the pixbuf on Cairo error

See merge request GNOME/gtk!2952
2020-12-14 15:40:12 +00:00
Adrien Plazas c4f8eb7ec9 gdkpixbuf-drawable: Free the pixbuf on Cairo error
This avoids leaking the pixbuf.
2020-12-14 16:18:45 +01:00
Jordi Mas 7208c97c7d Update Catalan translation 2020-12-10 16:06:18 +01:00
Matthias Clasen 69e7ab649c Merge branch 'fix-gtk-nautilus-typo' into 'gtk-3-24'
[Gtk3] GtkNativeDialog: Fix a typo in the docs

See merge request GNOME/gtk!2930
2020-12-08 03:21:26 +00:00
Phaedrus Leeds 59dfeaceff GtkNativeDialog: Fix a typo in the docs 2020-12-07 17:17:39 -08:00
Matthias Clasen de8329b3ce 3.24.24 2020-12-05 19:49:26 -05:00
Emmanuele Bassi 4d410489c5 Merge branch 'notebookpage_child' into 'gtk-3-24'
gtknotebookpageaccessible: do not fallback to child accessible for extents

See merge request GNOME/gtk!2924
2020-12-05 00:03:57 +00:00
Samuel Thibault 4ffe5a4954 gtknotebookpageaccessible: do not fallback to child accessible for extents
When the notebook page does not have a label, it should not fallback to
asking its child accessible for extent, since the child might be asking
exactly the converse when it is a socket, thus getting in an infinite
loop. When the page does not have a label, is does not really make sense to
give it an extent anyway.

Fixes atk#18
2020-12-05 00:34:32 +01:00
Carlos Garnacho 850a086adb Merge branch 'wip/exalm/accumulate-scrolling-backport' into 'gtk-3-24'
scrolledwindow: Accumulate velocity with kinetic scrolling

See merge request GNOME/gtk!2818
2020-12-01 13:14:40 +00:00
Kjartan Maraas 76b7f2704c Update Norwegian Bokmål translation 2020-11-30 14:02:18 +00:00
Daniel Șerbănescu b8af685a43 Update Romanian translation 2020-11-20 09:27:14 +00:00
Milo Casagrande 50c4fbff72 Update Italian translation 2020-11-16 08:50:42 +00:00
Matthias Clasen 0bbe4150a8 Merge branch 'button-fill-var-removal-gtk3' into 'gtk-3-24'
Adwaita: Stop using $button_fill (for gtk-3-24)

See merge request GNOME/gtk!2829
2020-11-15 13:45:57 +00:00
nana-4 6da446c1be Adwaita: Stop using $button_fill
The $button_fill hack for button.circular is pretty awkward and is
currently broken. Instead of relying on it, allow the button() mixin to
have an additional background-image optionally.

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3354
2020-11-14 13:21:25 +09:00
Jordi Mas 8f44694d2c Update Catalan translation 2020-11-13 20:24:15 +01:00
wisp3rwind cf7f7df10c wayland: avoid set_cursor() when unchanged or invisible
In pointer_surface_update_scale(), only rescale the cursor surface when
the scale has actually changed and the cursor is on at least one output.

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

Right now, this issue is not completely understood, so it might also
involve some questionable handling of cursor surface by sway/wlroots.

However, irrespective of that issue, this patch avoids unnecessary calls to the
compositor, and there should be no drawback: Whenever the pointer enters
a new output, pointer_surface_update_scale() will be called again, such
that correct scaling of the cursor is still ensured.

There is a slight difference: When the cursor leaves the last output,
previously the image was reset to scale factor 1. Now, it keeps whatever
was last. That might be more sensible than the previous behaviour,
assuming that it's likely that when the cursor enter an output again, it
has the same scaling. Alternatively, if one cares about resource usage
at this level, it might make more sense to destroy the surface then
rescaling to 1.
2020-11-13 16:20:02 +01:00
Chris Lord 1d62a010ef scrolledwindow: Accumulate velocity with kinetic scrolling
Accumulate existing velocity when decelerating from a swipe if the swipe
velocity is above a certain fraction of that existing velocity.
2020-11-12 18:56:14 +05:00
Jakub Steiner 46cf2849d2 Merge branch 'wip/jimmac/sass-fixes-and-render-css' into 'gtk-3-24'
Adwaita: !global vars no longer in sass

See merge request GNOME/gtk!2815
2020-11-12 12:26:16 +00:00
Jakub Steiner 811c7f2266 Adwaita: !global vars no longer in sass
- render changes from dab79f5d77
2020-11-12 13:05:45 +01:00
Jakub Steiner a84b41abfd Merge branch 'treeview-header-button-border-css' into 'gtk-3-24'
Highlight treeview header button border with more contrasting color on hover

See merge request GNOME/gtk!2467
2020-11-12 09:23:06 +00:00
crvi dab79f5d77 Adwaita: Make treeview header button borders more visible
The existing treeview header button border in GTK3 is close to
invisible. The preferred way to find the border for a treeview column
is to hover the mouse near the beginning of the header button text
expecting the default cursor to switch to 'col-resize' cursor. This
works only when all column headers in the view are left aligned. After
adding a few numeric columns to the view, whose headers are right
aligned, it becomes really hard to find the location of the border
between a left aligned and right aligned column header.

This change addresses the issue by using high contrast colors for
borders of treeview header button - in line with the colors used in
Adwaita theme in GTK4.

See merge request GNOME/gtk!2467
2020-11-12 01:37:03 +05:30
Matthias Clasen e792e077fa Merge branch 'wip/dont-set-invalid-xdg-surface-geometry' into 'gtk-3-24'
wayland: Bail loudly if invalid geometry is set

See merge request GNOME/gtk!2808
2020-11-11 15:18:27 +00:00
Luca Bacci 67be62aeaf GdkWin32: Fix mouse events in presence of transparent windows on the desktop
In gdkdevice-win32.c we are interested in knowing which window
receives mouse input at a specific location.

Only WindowFromPoint is the right API for the task, other API's
(such as (Real)ChildWindowFromPoint(Ex)) have shortcomings because
they are really designed for other purposes. For example, only
WindowFromPoint is able to look through transparent layered windows.

So even if we want to find a direct child we have to use
WindowFromPoint and then walk up the hierarchy.

Fixes: #370, #417
See: !2767
2020-11-11 14:34:40 +01:00
Jonas Ådahl ba31560970 wayland: Bail loudly if invalid geometry is set
There is some bug somewhere where the geometry ends up being correct.
Mutter didn't handle this gracefully, and is to be changed to simply
respect the protocol and error out the client that sends bogus data.

Prepare for this by instead of sending bogus data, complain loudly if it
would happen dropping the invalid geometry on the floor instead of
sending it.

Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/1527
2020-11-11 10:17:59 +01:00
Enrico Nicoletto cfd21b0991 Update Brazilian Portuguese translation 2020-11-10 20:41:12 +00:00
Andika Triwidada ebda6125a4 Update Indonesian translation 2020-11-08 12:07:23 +00:00
Matthias Clasen a1757170da Fix a11y test results
The color palette change is reflected in the a11y dump
for the color chooser.
2020-11-07 22:40:41 -05:00
Matthias Clasen 13f6790fdb expander: Documentation update
Document GtkExpander:label-fill as ignored.

Fixes: #3331
2020-11-07 12:03:46 -05:00
kai-berlin bd4b55ddbf broadway: Set modifier state of scroll events
Set modifier state of scroll events, so Ctrl-scroll
works.

Fixes: #2733
2020-11-03 19:43:21 -05:00
Christian Kirbach 2560af284d Update German translation 2020-11-01 14:02:13 +00:00
Matthias Clasen 0f0dad24f4 Fix the build with older pango
pango_font_family_get_face() was only introduced
in pango 1.46. Work around this for older releases.
2020-10-29 22:22:33 -04:00
Matthias Clasen 9536d3aeaa fontchooser: Fix family-only mode
When the level does not include the style, we only
include one face of each family in the list. But we
were just choosing the first face (typically, a light
or extra-light style). Improve this by picking the
default face (normally, the regular face), which is
the expected behavior.
2020-10-29 21:59:24 -04:00
Asier Sarasua Garmendia 9cfda52d22 Update Basque translation 2020-10-29 20:56:33 +00:00
Matthias Clasen 628d94936a Merge branch 'gtk-3-24' into 'gtk-3-24'
gdk: Fix parent relative background crash

See merge request GNOME/gtk!2753
2020-10-27 21:42:34 +00:00
Sam Bazley a91de44755 gdk: Fix parent relative background crash
When setting a window's background to ParentRelative on X11, the window
depths must match to avoid a BadMatch error. Query the X server for the
parent window rather that relying on the parent passed to
gtk_window_new() to prevent crashes with reparented windows.

Fixes: #3288
2020-10-27 18:29:21 +00:00
Luca Bacci 0cb78a9808 GdkW32: remove klassTEMPSHADOW
Fixes issue #2019

See !2749
2020-10-27 18:12:42 +01:00
Jordi Mas i Hernandez d955636da5 Update Catalan translation 2020-10-22 17:57:33 +00:00
Carlos Garnacho f4c366044b Merge branch 'wip/exalm/swipe' into 'gtk-3-24'
gestureswipe: Count last event when calculating velocity

See merge request GNOME/gtk!2714
2020-10-21 16:58:27 +00:00
Alexander Mikhaylenko 847d378fea gestureswipe: Count last event when calculating velocity
The last event, matching lifting the finger/releasing the mouse button,
is important when there's a large delay between it and the previous events,
as in when performing a movement, stopping, then releasing fingers as
opposed to doing a swipe.

If this event is skipped, doing this will result in kinetic deceleration
matching the previous finger movement, while the expected behavior would
be no deceleration.

See also 97f540622a for a similar fix in
GtkEventControllerScroll.
2020-10-21 20:57:30 +05:00
Benjamin Schaaf d4943ef2fb Add scaling adjustment for touch dragging a scrolled window
If a GtkScrollable uses a different scale than pixels the offset from a
drag must be adjusted to match this scale. This fixes issues like this
https://gitlab.gnome.org/GNOME/vte/-/issues/283 where the terminal
widget uses rows instead of pixels as its scale for each GtkAdjustable
thus causing a 1 pixel vertical drag to scroll 1 row.
2020-09-26 03:08:03 +10:00
Steven Calwas 4c10134295 Handle Wintab cursors that are recognized after GDK app init
Previously, a GDK application handled the Wintab cursors (stylus,
eraser, etc.) only during app initialization. If new cursors were
recognized by Wintab during app execution, the app would not know
about them.

This fix still handles Wintab cursors known during app initialization.
In addition, when Wintab recognizes new cursors and notifies the app
via a WT_CSRCHANGE message, the app handles the new cursors, creating
new Wintab device objects for them.

Closes #1549
2020-08-20 22:54:36 -07:00
Emmanuel Gil Peyrot 75a9f8dc92 Switch to GL_ARB_framebuffer_object
GTK+ 3.0 was currently using GL_EXT_framebuffer_object, which is
deprecated as the ARB version has been merged into OpenGL 3.0 as well as
OpenGL ES 2.0, and provides laxer requirements.
2020-06-11 21:24:17 +02:00
Sebastian Keller 9459be11a9 wayland: Signal gtk-shell surface destruction to the server
This adds a "release" destructor for the gtk_surface1 interface which
signals to the server that a surface has been destroyed on the client
side, which the current "destroy" does not do.

Ideally the protocol would have specified a destroy request marked as
destructor to handle this automatically, however this is no longer
possible due to the destroy method being implicitly generated in the
absence of an explicit request in the protocol. Adding a destroy request
marked as destructor now would generate a new destroy method that
unconditionally would send the request to the server, which would break
clients running on servers not supporting that request.
2020-06-11 11:38:21 +02:00
Nelson Benítez León b01f371ce6 FileChooserButton: query 'display name' also for unbookmarked files
Do also the async file info query for remote files when they
are not bookmarked, because otherwise "None" will be shown as
file name (and fallback text generic icon will be used).

The remote file was already browsed by the file chooser
instance when selecting it, so querying the display name
again should be using gio cache and not be slow.

Even if it's were slow it's better than showing 'None'
which makes it seem as if nothing was selected.

Fixes #1966
2020-04-19 14:16:02 -04:00
727 changed files with 155355 additions and 163147 deletions
+7 -23
View File
@@ -6,23 +6,17 @@ cache:
paths:
- _ccache/
fedora-autotools:
image: registry.gitlab.gnome.org/gnome/gtk/fedora-gtk3:v1
stage: build
script:
- bash -x ./.gitlab-ci/test-docker-autotools.sh
fedora-distcheck:
image: registry.gitlab.gnome.org/gnome/gtk/fedora-gtk3:v1
image: registry.gitlab.gnome.org/gnome/gtk/fedora-gtk3:v3
variables:
DO_DISTCHECK: "yes"
when: manual
stage: build
script:
- bash -x ./.gitlab-ci/test-docker-autotools.sh
- bash -x ./.gitlab-ci/test-docker-meson.sh
fedora-meson:
image: registry.gitlab.gnome.org/gnome/gtk/fedora-gtk3:v1
image: registry.gitlab.gnome.org/gnome/gtk/fedora-gtk3:v3
stage: build
variables:
EXTRA_MESON_FLAGS: "-Ddefault_library=both"
@@ -36,7 +30,7 @@ fedora-meson:
- "_build/testsuite/reftests/output"
debian-meson:
image: registry.gitlab.gnome.org/gnome/gtk/debian-gtk3:v1
image: registry.gitlab.gnome.org/gnome/gtk/debian-gtk3:v2
stage: build
variables:
EXTRA_MESON_FLAGS: "-Ddefault_library=both"
@@ -50,7 +44,7 @@ debian-meson:
- "_build/testsuite/reftests/output"
reference:
image: registry.gitlab.gnome.org/gnome/gtk/fedora-gtk3:v1
image: registry.gitlab.gnome.org/gnome/gtk/fedora-gtk3:v3
stage: docs
variables:
EXTRA_MESON_FLAGS: "--buildtype=release -Dgtk_doc=true -Dman=true"
@@ -79,15 +73,5 @@ msys2-mingw64-meson:
name: "gtk3-${env:CI_JOB_NAME}-${env:CI_COMMIT_REF_NAME}"
paths:
- "_build/meson-logs"
msys2-mingw64-autotools:
when: manual
variables:
MSYSTEM: "MINGW64"
CHERE_INVOKING: "yes"
stage: build
tags:
- win32-ps
script:
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
- C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2-autotools.sh"
- "_build/gdk/libgdk-3-0.dll"
- "_build/gtk/libgtk-3-0.dll"
+1 -1
View File
@@ -1,4 +1,4 @@
FROM debian:buster
FROM debian:bullseye
RUN apt-get update -qq && apt-get install --no-install-recommends -qq -y \
adwaita-icon-theme \
+2 -2
View File
@@ -1,4 +1,4 @@
FROM fedora:31
FROM fedora:35
RUN dnf -y install \
adwaita-icon-theme \
@@ -44,7 +44,7 @@ RUN dnf -y install \
libXtst-devel \
make \
mesa-libEGL-devel \
mesa-libwayland-egl-devel \
'pkgconfig(wayland-egl)' \
meson \
ninja-build \
pango-devel \
-35
View File
@@ -1,35 +0,0 @@
#!/bin/bash
set -e
mkdir -p _ccache
export CCACHE_BASEDIR="$(pwd)"
export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
export N_PROCS=$(($(nproc) - 1))
EXTRA_CONFIGURE_OPT=""
# Only enable documentation when distchecking, since it's required
if [ -n "${DO_DISTCHECK-}" ]; then
EXTRA_CONFIGURE_OPTS="${EXTRA_CONFIGURE_OPTS} --enable-gtk-doc"
fi
NOCONFIGURE=1 ./autogen.sh
mkdir _build
cd _build
../configure \
--enable-cloudproviders \
--enable-broadway-backend \
--enable-wayland-backend \
--enable-x11-backend \
--enable-xinerama \
${EXTRA_CONFIGURE_OPTS}
make -j${N_PROCS}
if [ -n "${DO_DISTCHECK-}" ]; then
make -j${N_PROCS} check SKIP_GDKTARGET="echo Not actually running tests for now"
make -j${N_PROCS} distcheck SKIP_GDKTARGET="echo Not actually running tests for now"
fi
+20 -3
View File
@@ -7,7 +7,7 @@ export CCACHE_BASEDIR="$(pwd)"
export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
export PATH="${HOME}/.local/bin:${PATH}"
python3 -m pip install --user meson==0.49.2
python3 -m pip install --user meson==0.60
meson \
-Dinstalled_tests=true \
@@ -15,16 +15,33 @@ meson \
-Dx11_backend=true \
-Dwayland_backend=true \
-Dxinerama=yes \
-Dprint_backends="file,lpr,test,cloudprint,cups" \
-Dprint_backends="file,lpr,test,cups" \
${EXTRA_MESON_FLAGS:-} \
_build
cd _build
ninja
# Meson < 0.57 can't exclude suites in a test_setup() so we have to
# explicitly leave out the failing and flaky suites.
xvfb-run -a -s "-screen 0 1024x768x24" \
meson test \
--timeout-multiplier 4 \
--print-errorlogs \
--suite=gtk+-3.0 \
--no-suite=gtk+-3.0:a11y
--no-suite=flaky \
--no-suite=failing
# We run the flaky and failing tests to get them reported in the CI logs,
# but if they fail (which we expect they often will), that isn't an error.
xvfb-run -a -s "-screen 0 1024x768x24" \
meson test \
--timeout-multiplier 4 \
--print-errorlogs \
--suite=flaky \
--suite=failing \
|| true
if [ -n "${DO_DISTCHECK-}" ]; then
meson dist --no-tests
fi
-44
View File
@@ -1,44 +0,0 @@
#!/bin/bash
set -e
if [[ "$MSYSTEM" == "MINGW32" ]]; then
export MSYS2_ARCH="i686"
else
export MSYS2_ARCH="x86_64"
fi
# Update everything
pacman --noconfirm -Suy
# Install the required packages
pacman --noconfirm -S --needed \
base-devel \
mingw-w64-$MSYS2_ARCH-toolchain \
mingw-w64-$MSYS2_ARCH-ccache \
mingw-w64-$MSYS2_ARCH-pkg-config \
mingw-w64-$MSYS2_ARCH-gobject-introspection \
mingw-w64-$MSYS2_ARCH-adwaita-icon-theme \
mingw-w64-$MSYS2_ARCH-atk \
mingw-w64-$MSYS2_ARCH-cairo \
mingw-w64-$MSYS2_ARCH-gdk-pixbuf2 \
mingw-w64-$MSYS2_ARCH-glib2 \
mingw-w64-$MSYS2_ARCH-json-glib \
mingw-w64-$MSYS2_ARCH-libepoxy \
mingw-w64-$MSYS2_ARCH-pango \
mingw-w64-$MSYS2_ARCH-shared-mime-info \
mingw-w64-$MSYS2_ARCH-gtk-doc
mkdir -p _ccache
export CCACHE_BASEDIR="$(pwd)"
export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
export CC="ccache gcc"
# Build
ccache --zero-stats
ccache --show-stats
./autogen.sh
make -j4
ccache --show-stats
-65
View File
@@ -1,65 +0,0 @@
Please do not mail any of the authors listed here
asking questions about this version of GTK+.
Original Authors
----------------
Peter Mattis <petm@xcf.berkeley.edu>
Spencer Kimball <spencer@xcf.berkeley.edu>
Josh MacDonald <jmacd@xcf.berkeley.edu>
The GTK+ Team (in alphabetical order)
-------------------------------------
Shawn T. Amundson <amundson@gtk.org>
Jerome Bolliet <bolliet@gtk.org>
Damon Chaplin <damon@gtk.org>
Tony Gale <gale@gtk.org>
Jeff Garzik <jgarzik@gtk.org>
Lars Hamann <lars@gtk.org>
Raja R Harinath <harinath@gtk.org>
Carsten Haitzler <raster@gtk.org>
Tim Janik <timj@gtk.org>
Stefan Jeske <stefan@gtk.org>
Elliot Lee <sopwith@gtk.org>
Raph Levien <raph@gtk.org>
Ian Main <imain@gtk.org>
Federico Mena <quartic@gtk.org>
Paolo Molaro <lupus@gtk.org>
Jay Painter <jpaint@gtk.org>
Manish Singh <manish@gtk.org>
Owen Taylor <otaylor@gtk.org>
There are many others who have contributed patches; we thank them,
GTK+ is much better because of them.
Over time, GTK+ has incorporated some pieces of software which
started as independent projects. We list the original authors here:
MS-Windows theme engine
-----------------------
Raymond Penners
Dom Lachowicz
Pixbuf theme engine
-------------------
Owen Taylor
IME input method
----------------
Takuro Ashie
Kazuki IWAMOTO
Mac OS X backend
----------------
Anders Carlsson
DirectFB backend
----------------
Denis Oliver Kropp
Sven Neumann
Mike Emmel
+262
View File
@@ -0,0 +1,262 @@
# Contribution guidelines
Thank you for considering contributing to the GTK project!
These guidelines are meant for new contributors, regardless of their level
of proficiency; following them allows the maintainers of the GTK project to
more effectively evaluate your contribution, and provide prompt feedback to
you. Additionally, by following these guidelines you clearly communicate
that you respect the time and effort that the people developing GTK put into
managing the project.
GTK is a complex free software GUI toolkit, and it would not exist without
contributions from the free and open source software community. There are
many things that we value:
- bug reporting and fixing
- documentation and examples
- tests
- new features
Please, do not use the issue tracker for support questions. If you have
questions on how to use GTK effectively, you can use:
- the `#gtk` IRC channel on irc.gnome.org
- the [gtk tag on the GNOME Discourse instance](https://discourse.gnome.org/tag/gtk)
You can also look at the GTK tag on [Stack
Overflow](https://stackoverflow.com/questions/tagged/gtk).
The issue tracker is meant to be used for actionable issues only.
## How to report bugs
### Security issues
You should not open a new issue for security related questions.
When in doubt, send an email to the [security](mailto:security@gnome.org)
mailing list.
### Bug reports
If you're reporting a bug make sure to list:
0. which version of GTK are you using?
0. which operating system are you using?
0. the necessary steps to reproduce the issue
0. the expected outcome
0. a description of the behavior; screenshots are also welcome
0. a small, self-contained example exhibiting the behavior; if this
is not available, try reproducing the issue using the GTK examples
or interactive tests
If the issue includes a crash, you should also include:
0. the eventual warnings printed on the terminal
0. a backtrace, obtained with tools such as GDB or LLDB
It is fine to include screenshots of screen recordings to demonstrate
an issue that is best to understand visually, but please don't just
dump screen recordings without further details into issues. It is
essential that the problem is described in enough detail to reproduce
it without watching a video.
For small issues, such as:
- spelling/grammar fixes in the documentation
- typo correction
- comment clean ups
- changes to metadata files (CI, `.gitignore`)
- build system changes
- source tree clean ups and reorganizations
You should directly open a merge request instead of filing a new issue.
### Features and enhancements
Feature discussion can be open ended and require high bandwidth channels; if
you are proposing a new feature on the issue tracker, make sure to make
an actionable proposal, and list:
0. what you're trying to achieve
0. prior art, in other toolkits or applications
0. design and theming changes
If you're proposing the integration of new features it helps to have
multiple applications using shared or similar code, especially if they have
iterated over it various times.
Each feature should also come fully documented, and with tests.
## Your first contribution
### Prerequisites
If you want to contribute to the GTK project, you will need to have the
development tools appropriate for your operating system, including:
- Python 3.x
- Meson
- Ninja
- Gettext (19.7 or newer)
- a [C99 compatible compiler](https://wiki.gnome.org/Projects/GLib/CompilerRequirements)
Up-to-date instructions about developing GNOME applications and libraries
can be found on [the GNOME Developer Center](https://developer.gnome.org).
The GTK project uses GitLab for code hosting and for tracking issues. More
information about using GitLab can be found [on the GNOME
wiki](https://wiki.gnome.org/GitLab).
### Dependencies
In order to get GTK from Git installed on your system, you need to have the
required versions of all the software dependencies required by GTK; typically,
this means a recent version of GLib, Cairo, Pango, and ATK, as well as the
platform-specific dependencies for the windowing system you are using (Wayland,
X11, Windows, or macOS).
The core dependencies for GTK are:
- [GLib, GObject, and GIO](https://gitlab.gnome.org/GNOME/glib)
- [Cairo](http://cairographics.org)
- [Pango](https://gitlab.gnome.org/GNOME/pango)
- [GdkPixbuf](https://gitlab.gnome.org/GNOME/gdk-pixbuf)
- [Epoxy](https://github.com/anholt/libepoxy)
- [ATK](https://gitlab.gnome.org/GNOME/atk)
- [Graphene](https://github.com/ebassi/graphene)
GTK will attempt to download and build some of these dependencies if it
cannot find them on your system.
Additionally, you may want to look at projects that create a development
environment for you, like [jhbuild](https://wiki.gnome.org/HowDoI/Jhbuild)
and [gvsbuild](https://github.com/wingtk/gvsbuild).
### Getting started
You should start by forking the GTK repository from the GitLab web UI, and
cloning from your fork:
```sh
$ git clone --branch=gtk-3-24 https://gitlab.gnome.org/yourusername/gtk.git gtk-3
$ cd gtk-3
```
**Note**: if you plan to push changes to back to the main repository and
have a GNOME account, you can skip the fork, and use the following instead:
```sh
$ git clone --branch=gtk-3-24 git@gitlab.gnome.org:GNOME/gtk.git gtk-3
$ cd gtk-3
```
To compile the Git version of GTK on your system, you will need to
configure your build using Meson:
```sh
$ meson setup _builddir .
$ meson compile -C _builddir
```
Typically, you should work on your own branch:
```sh
$ git switch -C your-branch
```
Once you've finished working on the bug fix or feature, push the branch
to the Git repository and open a new merge request, to let the GTK
maintainers review your contribution.
### Code reviews
Each contribution is reviewed by the core developers of the GTK project.
### Commit messages
The expected format for git commit messages is as follows:
```plain
Short explanation of the commit
Longer explanation explaining exactly what's changed, whether any
external or private interfaces changed, what bugs were fixed (with bug
tracker reference if applicable) and so forth. Be concise but not too
brief.
Closes #1234
```
- Always add a brief description of the commit to the _first_ line of
the commit and terminate by two newlines (it will work without the
second newline, but that is not nice for the interfaces).
- First line (the brief description) must only be one sentence and
should start with a capital letter unless it starts with a lowercase
symbol or identifier. Don't use a trailing period either. Don't exceed
72 characters.
- The main description (the body) is normal prose and should use normal
punctuation and capital letters where appropriate. Consider the commit
message as an email sent to the developers (or yourself, six months
down the line) detailing **why** you changed something. There's no need
to specify the **how**: the changes can be inlined.
- When committing code on behalf of others use the `--author` option, e.g.
`git commit -a --author "Joe Coder <joe@coder.org>"` and `--signoff`.
- If your commit is addressing an issue, use the
[GitLab syntax](https://docs.gitlab.com/ce/user/project/issues/automatic_issue_closing.html)
to automatically close the issue when merging the commit with the upstream
repository:
```plain
Closes #1234
Fixes #1234
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1234
```
- If you have a merge request with multiple commits and none of them
completely fixes an issue, you should add a reference to the issue in
the commit message, e.g. `Bug: #1234`, and use the automatic issue
closing syntax in the description of the merge request.
### Commit access to the GTK repository
GTK is part of the GNOME infrastructure. At the current time, any
person with write access to the GNOME repository can merge changes to
GTK. This is a good thing, in that it encourages many people to work
on GTK, and progress can be made quickly. However, GTK is a fairly
large and complicated project on which many other things depend, so to
avoid unnecessary breakage, and to take advantage of the knowledge
about GTK that has been built up over the years, we'd like to ask
people committing to GTK to follow a few rules:
0. Ask first. If your changes are major, or could possibly break existing
code, you should always ask. If your change is minor and you've been
working on GTK for a while it probably isn't necessary to ask. But when
in doubt, ask. Even if your change is correct, somebody may know a
better way to do things. If you are making changes to GTK, you should
be subscribed to the [gtk-devel](https://mail.gnome.org/mailman/listinfo/gtk-devel-list)
mailing list; this is a good place to ask about intended changes.
The `#gtk` IRC channel on irc.gnome.org is also a good place to find GTK
developers to discuss changes, but if you live outside of the EU/US time
zones, an email to the gtk-devel mailing list is the most certain and
preferred method.
0. Ask _first_.
0. Always write a meaningful commit message. Changes without a sufficient
commit message will be reverted.
0. Never push to the `main` branch, or any stable branches, directly; you
should always go through a merge request, to ensure that the code is
tested on the CI infrastructure at the very least. A merge request is
also the proper place to get a comprehensive code review from the core
developers of GTK.
If you have been contributing to GTK for a while and you don't have commit
access to the repository, you may ask to obtain it following the [GNOME account
process](https://wiki.gnome.org/AccountsTeam/NewAccounts).
-64
View File
@@ -1,64 +0,0 @@
If you want to hack on the GTK+ project, you'll need to have
the following packages installed:
- GNU autoconf 2.62
- GNU automake 1.11
- GNU libtool 2.2
- indent (GNU indent 1.9.1 is known good)
- GNU gettext 10.40
These should be available by ftp from ftp.gnu.org or any of the
fine GNU mirrors. Beta software can be found at alpha.gnu.org.
Up-to-date instructions about developing GNOME applications and libraries
can be found here:
http://library.gnome.org/devel/
Information about using git with GNOME can be found here:
https://wiki.gnome.org/Git
In order to get GIT GTK+ installed on your system, you need to have
the most recent GIT versions of GLib, Pango, and ATK installed as well.
The installation process of these libraries is similar to that of GTK+,
but needs to be fulfilled prior to installation of GTK+.
If at all possible, please use GIT to get the latest development version of
gtk+ and glib. You can do the following to get glib and gtk+ from GIT:
$ git clone git://git.gnome.org/glib
$ git clone git://git.gnome.org/pango
$ git clone git://git.gnome.org/atk
$ git clone git://git.gnome.org/gtk+
Note: if you plan to push changes to back to the master repository and
have a gnome account, you want to use the following instead:
$ git clone ssh://<username>@git.gnome.org/git/gtk+
To compile the GIT version of GTK+ on your system, you will need to take
several steps to setup the tree for compilation. You can do all these
steps at once by running:
gtk+$ ./autogen.sh
Basically this does the following for you:
gtk+$ aclocal; automake; autoconf
The above commands create the `configure' script. Now you
run the `configure' script in `gtk+/' to create all Makefiles.
More information about that in `INSTALL'.
Before running `autogen.sh' or `configure', make sure you have libtool
in your path.
Note that autogen.sh runs configure for you. If you wish to pass
options like `--prefix=/usr' to `configure' you can give those options
to `autogen.sh' and they will be passed on to `configure'.
For information about submitting patches and pushing changes
to GIT, see the `README' and `README.commits' files. In particular,
don't, under any circumstances, push anything to GIT before
reading and understanding `README.commmits'.
-42
View File
@@ -1,42 +0,0 @@
Prerequisites
=============
GTK+ requires the following packages:
- The GLib, Pango, GdkPixbuf, ATK and cairo libraries, available at
the same location as GTK+. GTK+ @GTK_VERSION@ requires at least
GLib @GLIB_REQUIRED_VERSION@, Pango @PANGO_REQUIRED_VERSION@,
GdkPixbuf @GDK_PIXBUF_REQUIRED_VERSION@, ATK @ATK_REQUIRED_VERSION@
and cairo @CAIRO_REQUIRED_VERSION@.
- libepoxy, for cross-platform OpenGL support.
It can be found here: https://github.com/anholt/libepoxy
- Each GDK backend has its own backend-specific requirements. For
the X11 backend, X11 R6 and XInput version 2 (as well as a number
of other extensions) are required. The Wayland backend requires
(obviously) the Wayland libraries.
- gobject-introspection @INTROSPECTION_REQUIRED_VERSION@ or newer.
Simple install procedure
========================
% tar xf gtk+-@GTK_VERSION@.tar.xz # unpack the sources
% cd gtk+-@GTK_VERSION@ # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GTK+
[ Become root if necessary ]
% make install # install GTK+
The Details
===========
Complete information about installing GTK+ and related libraries
can be found in the file:
docs/reference/gtk/html/gtk-building.html
Or online at:
http://library.gnome.org/devel/gtk/stable/gtk-building.html
+41
View File
@@ -0,0 +1,41 @@
Prerequisites
=============
GTK requires the following packages:
- Autotools or Meson
- The GLib, Pango, GdkPixbuf, ATK and cairo libraries, available at
the same location as GTK.
- libepoxy, for cross-platform OpenGL support.
It can be found here: https://github.com/anholt/libepoxy
- Each GDK backend has its own backend-specific requirements. For
the X11 backend, X11 R6 and XInput version 2 (as well as a number
of other extensions) are required. The Wayland backend requires
(obviously) the Wayland libraries.
- gobject-introspection
Simple install procedure for Meson
==================================
$ tar xf gtk+-3.24.46.tar.xz # unpack the sources
$ cd gtk+-3.24.46 # change to the toplevel directory
$ meson setup _build # configure GTK+
$ meson compile -C _build # build GTK+
[ Become root if necessary ]
# meson install -C _build # install GTK+
The Details
===========
Complete information about installing GTK+ and related libraries
can be found in the file:
- [gtk-building.html](./docs/reference/gtk/html/gtk-building.html)
Or online at:
- http://developer-old.gnome.org/gtk/3.24/gtk-building.html
-12
View File
@@ -1,12 +0,0 @@
Matthias Clasen
E-mail: mclasen@redhat.com
Userid: matthiasc
Tim Janik
E-mail: timj@gtk.org
Userid: timj
Note that a lot of people are contributing to GTK+, and some parts of it
are technically maintained by other people. The people listed above are
meant as contacts for administrative questions such as cvs accounts. Other
questions are best directed to the mailing list gtk-devel-list@gnome.org.
-124
View File
@@ -1,124 +0,0 @@
## Makefile.am for GTK+
include $(top_srcdir)/Makefile.decl
SRC_SUBDIRS = gdk gtk libgail-util modules demos tests testsuite examples
SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros win32
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
EXTRA_DIST += \
autogen.sh \
HACKING \
README \
README.in \
INSTALL \
INSTALL.in \
NEWS.pre-1-0 \
README.commits \
README.win32 \
check-version.py \
config.h.win32 \
makefile.msc \
gtk-zip.sh.in \
sanitize-la.sh \
po/README.translators \
po/po2tbl.sed.in \
make-pot \
meson_options.txt \
meson.build \
po/meson.build \
po-properties/meson.build \
build-aux/meson/post-install.py \
config.h.meson \
gtk.supp
MAINTAINERCLEANFILES = \
$(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \
$(GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL) \
$(GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN) \
$(srcdir)/m4/gtk-doc.m4 \
$(srcdir)/INSTALL \
$(srcdir)/README \
$(srcdir)/gtk-doc.make \
$(srcdir)/ChangeLog
if OS_UNIX
valgrinddir = $(datadir)/gtk-3.0/valgrind
valgrind_DATA = gtk.supp
endif
## Copy .pc files to target-specific names
gtk+-x11-3.0.pc gtk+-win32-3.0.pc gtk+-quartz-3.0.pc gtk+-broadway-3.0.pc gtk+-wayland-3.0.pc: gtk+-3.0.pc
rm -f $@ && \
cp gtk+-3.0.pc $@
gdk-x11-3.0.pc gdk-win32-3.0.pc gdk-quartz-3.0.pc gdk-broadway-3.0.pc gdk-wayland-3.0.pc: gdk-3.0.pc
rm -f $@ && \
cp gdk-3.0.pc $@
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = gdk-3.0.pc gtk+-3.0.pc gail-3.0.pc
pkgconfig_DATA += ${GDK_BACKENDS:%=gtk+-%-3.0.pc}
pkgconfig_DATA += ${GDK_BACKENDS:%=gdk-%-3.0.pc}
if OS_UNIX
pkgconfig_DATA += gtk+-unix-print-3.0.pc
endif
DISTCLEANFILES = \
gtk+-unix-print-3.0.pc \
gtk+-3.0.pc \
gtk+-x11-3.0.pc \
gtk+-win32-3.0.pc \
gtk+-quartz-3.0.pc \
gtk+-broadway-3.0.pc \
gtk+-wayland-3.0.pc \
gdk-3.0.pc \
gdk-x11-3.0.pc \
gdk-win32-3.0.pc \
gdk-quartz-3.0.pc \
gdk-broadway-3.0.pc \
gdk-wayland-3.0.pc \
gail-3.0.pc \
config.lt
dist-hook:
mkdir $(distdir)/subprojects
cp -p $(srcdir)/subprojects/*.wrap $(distdir)/subprojects
$(top_srcdir)/check-version.py $(top_srcdir)/configure.ac $(top_srcdir)/meson.build
distclean-local:
if test "$(srcdir)" = "."; then :; else \
rm -f ChangeLog; \
fi
ChangeLog:
$(AM_V_GEN) if test -d "$(srcdir)/.git"; then \
(GIT_DIR=$(top_srcdir)/.git $(top_builddir)/build-aux/missing git log GTK_2_16_0^^.. --stat) | fmt --split-only > $@.tmp \
&& mv -f $@.tmp $@ \
|| ($(RM) $@.tmp; \
echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \
(test -f $@ || echo git-log is required to generate this file >> $@)); \
else \
test -f $@ || \
(echo A git checkout and git-log is required to generate ChangeLog >&2 && \
echo A git checkout and git-log is required to generate this file >> $@); \
fi
.PHONY: ChangeLog
uninstall-local:
rm -f $(DESTDIR)$(pkgconfigdir)/gtk+-3.0.pc
AM_DISTCHECK_CONFIGURE_FLAGS = \
--enable-gtk-doc \
--disable-doc-cross-references \
--enable-man \
--disable-maintainer-mode \
--enable-introspection \
--enable-installed-tests
GITIGNORE_TRANSLATION_DIRS = po-properties
GITIGNOREFILES = po-properties/gtk30-properties.pot
-include $(top_srcdir)/git.mk
-96
View File
@@ -1,96 +0,0 @@
# GTK+ - The GIMP Toolkit
GTESTER = gtester -k # in $PATH for non-GLIB packages
GTESTER_REPORT = gtester-report # in $PATH for non-GLIB packages
# initialize variables for unconditional += appending
EXTRA_DIST =
TEST_PROGS =
### testing rules
# Xvfb based test rules
XVFB = Xvfb -ac -noreset -screen 0 1024x768x16
XIDS = 101 102 103 104 105 106 107 197 199 211 223 227 293 307 308 309 310 311 \
491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 \
991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 \
1008 1009 4703 4721 4723 4729 4733 4751 9973 9974 9975 9976 9977 9978 9979 \
9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 \
9995 9996 9997 9998 9999
if USE_X11
SKIP_GDKTARGET = \
false
else
SKIP_GDKTARGET = \
echo "Gtk+Tests:INFO: Skipping GUI tests for non-X11 target."
endif
if PLATFORM_WIN32
no_undefined = -no-undefined
endif
XVFB_START = \
${XVFB} -help 2>/dev/null 1>&2 \
&& XID=`for id in $(XIDS) ; do test -e /tmp/.X$$id-lock || { echo $$id; exit 0; }; done; exit 1` \
&& { ${XVFB} :$$XID -nolisten tcp -auth /dev/null >/dev/null 2>&1 & \
trap "kill -15 $$! " 0 HUP INT QUIT TRAP USR1 PIPE TERM ; } \
|| { echo "Gtk+Tests:ERROR: Failed to start Xvfb environment for X11 target tests."; exit 1; } \
&& DISPLAY=:$$XID && export DISPLAY
# call as: $(XVFB_START) && someprogram
# test: run all tests in cwd and subdirs
test: test-cwd test-recurse
# test-cwd: run tests in cwd
test-cwd: ${TEST_PROGS}
@$(SKIP_GDKTARGET) || test -z "${TEST_PROGS}" || { \
$(XVFB_START) && { set -e; $(TESTS_ENVIRONMENT) G_TEST_SRCDIR="${abs_srcdir}" G_TEST_BUILDDIR="${abs_builddir}" ${GTESTER} --verbose ${TEST_PROGS}; }; \
}
# test-recurse: run tests in subdirs
test-recurse:
@ for subdir in $(SUBDIRS) ; do \
test "$$subdir" = "." -o "$$subdir" = "po" -o "$$subdir" = "po-properties" || \
( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) test ) || exit $? ; \
done
# test-report: run tests in subdirs and generate report
# perf-report: run tests in subdirs with -m perf and generate report
# full-report: like test-report: with -m perf and -m slow
test-report perf-report full-report: ${TEST_PROGS}
@ ignore_logdir=true ; \
if test -z "$$GTESTER_LOGDIR" ; then \
GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \
ignore_logdir=false ; \
fi ; \
for subdir in $(SUBDIRS) ; do \
test "$$subdir" = "." -o "$$subdir" = "po" -o "$$subdir" = "po-properties" || \
( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
done ; \
$(SKIP_GDKTARGET) || test -z "${TEST_PROGS}" || { \
case $@ in \
test-report) test_options="-k";; \
perf-report) test_options="-k -m=perf";; \
full-report) test_options="-k -m=perf -m=slow";; \
esac ; \
$(XVFB_START) && { \
set -e; \
if test -z "$$GTESTER_LOGDIR" ; then \
G_TEST_SRCDIR="${abs_srcdir}" G_TEST_BUILDDIR="${abs_builddir}" ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \
elif test -n "${TEST_PROGS}" ; then \
G_TEST_SRCDIR="${abs_srcdir}" G_TEST_BUILDDIR="${abs_builddir}" ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \
fi ; \
}; \
}; \
$$ignore_logdir || { \
echo '<?xml version="1.0"?>' > $@.xml ; \
echo '<report-collection>' >> $@.xml ; \
for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \
done ; \
echo >> $@.xml ; \
echo '</report-collection>' >> $@.xml ; \
rm -rf "$$GTESTER_LOGDIR"/ ; \
${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \
}
.PHONY: test test-cwd test-recurse test-report perf-report full-report
# run make test-cwd as part of make check
check-local: test-cwd
+569
View File
@@ -1,3 +1,572 @@
Overview of Changes in GTK+ 3.24.38, xx-xx-xxxx
===============================================
Overview of Changes in GTK+ 3.24.37, 02-03-2023
===============================================
* Support the file transfer portal for copy-paste and DND
* Treat XKB_MODE_NAME_LODO as super key
* Refactor startup notification handling to be in sync with GTK 4
* GL: Synchronie when calling MakeCurrent
* CSS: Fix a problem with stopping animations
* Wayland: Drop the legacy text input module
* Windows: Set the default file extension in the native file chooser
* Translation updates:
Abkhazian
Turkish
Overview of Changes in GTK+ 3.24.36, 12-22-2022
===============================================
This release is the first GTK 3 release to exclusively
use the meson build system.
* GtkLabel:
- Tweak selection behavior
* GtkEmojiChooser:
- Properly handle empty recent section
* GtkFileChooser:
- Make ~ key work regardless of dead keys
* build:
- Improve handling of flaky tests
- Drop the autotools build
* Wayland:
- Fix problems with X<>Wayland DND
- Revert cursor changes from 3.24.35
- Fix handling of surrounding text in input
* Windows:
- Improve handling of line ends in clipboard
* MacOS:
- Use NSTrackingArea
* Translation updates:
Abkhazian
Basque
Brazilian Portuguese
Catalan
Interlingue
Persian
Overview of Changes in GTK+ 3.24.35, 11-22-2022
===============================================
* GtkFontChooserWidget:
- Fix a critical
* GtkAccelLabel:
- Differentiate keypad keysyms in accelerators
* Input:
- Recognize stylus devices as pens
- Fix problems with motion compression
* Windows:
- Build system improvements
* Wayland:
- Fix problems with unreliable DND
- Use GLES if required
- Add support for titlebar gestures
- Refactor handling of IM client updates
- Fix cursor hotspots with scaled surfaces
- Use the xdg-activation protocol
- Load cursors on demand
- Fix cursor size on hi-dpi displays
* MacOS:
- Use a CVDisplayLink based frame clock
- Translation updates:
Abkhazian
Bulgarian
Catalan
Chinese (Taiwan)
Croatian
Dutch
Friulian
Georgian
German
Hungarian
Indonesian
Occitan
Persian
Portuguese
Polish
Russian
Serbian
Slovenian
Swedish
Turkish
Ukrainian
Overview of Changes in GTK+ 3.24.34, 05-18-2022
===============================================
* Include legacy hicolor icons
* Fix the build with gcc 12
* MacOS:
- Restore QUARTZ_RELOCATION support
* X11:
- Trap errors when getting output properties
* Wayland:
- Ignore empty preedit updates This fixes a problem with
textview scrolling
* Translation updates
Danish
Dutch
French
German
Hungarian
Italian
Kazakh
Latvian
Lithuanian
Norwegian Bokmål
Swedish
Overview of Changes in GTK+ 3.24.33, 04-03-2022
===============================================
* No changes
Overview of Changes in GTK+ 3.24.32, 03-03-2022
===============================================
* GtkCellRendererProgress:
- Use tabular figures
* GtkFontChooser:
- Fix the build with older Pango
- Fix axis name handling
* Theme:
- Fix border color for tiled windows
* Accessibility:
- Fix cell accessible leak
* Wayland:
- Support new high-contrast setting
- Only update scale when on any outputs
* Windows:
- Various build fixes
- Fix keyboard state handling
- Fix capslock handling
- Fix AltGr not working
* MacOS:
- Fix the build on 10.11
- Make Dock "Quit" invoke the app.quit action
- Correctly handle HiDPI cursors
* Translation updates
Basque
Brazilian Portuguese
Catalan
Chinese (China)
Croatian
Czech
French
Galician
Hebrew
Indonesian
Korean
Persian
Polish
Portuguese
Romanian
Russian
Serbian
Slovenian
Spanish
Swedish
Turkish
Ukrainian
Overview of Changes in GTK+ 3.24.31, 20-12-2021
===============================================
* input:
- Fix a crash with touch on GtkScale
* clipboard:
- Avoid a double-free
* css:
- Avoid a crash with radial gradients
* GtkFileChooser:
- Don't leak search results
* GtkTextView:
- Support css letterspacing
* Wayland:
- Reset position when hiding popups
- Ignore globals we did not bind ourselves
- Avoid infinite loops when hiding surfaces
- Avoid clipboard-related lockups
* X11:
- Trap errors while doing XRANDR calls
- Support touchpad gestures with XI 2.4
* win32:
- Some OpenGL setup fixes
- Fall back to GLES for OpenGL
- Fix MinGW autotools build
- Fix building on Windows 11
- Support building with Visual Studio 2022
- Improve DND across monitors
- Rewrite keymap handling code
* macOS:
- Accept NSPasteboardTypeFileURL drops
- Build on macOS 12
- Fix display on macOS 12
- Fix keyboard layout notifications
- Fix a crash
- Improve performance on Big Sur
* Translation updates:
Basque
Brazilian Portuguese
Chinese (China)
Chinese (Taiwan)
Croatian
Czech
Danish
Dutch
Finnish
French
Friulian
Galician
German
Hungarian
Icelandic
Italian
Kazakh
Korean
Latvian
Occitan
Persian
Russian
Serbian
Spanish
Swedish
Overview of Changes in GTK+ 3.24.30
===================================
* Input:
- Ignore NoSymbol key events (happens with some XKB options)
- Fix incomplete reset in some cases
* GtkEmojiChooser:
- Update data from CLDR 39
- Support translated keywords for multiple languages
- Allow inserting multiple Emoji with Ctrl
- Match keywords for search
- Fix a memory leak
* GtkFileChooser:
- Accessibility improvements
* GtkTreeView
- Fix an accessibility-related memory leak
- Fix assertion failures in some cases
* Printing:
- Remove the Google Cloud Print backend, since the
service was shut down
* Wayland:
- Work with pointer-gestures v1 protocol
* Win32:
- Fix using GL with Mesa drivers
- Add support for Windows Pointer Input stack
* MacOS:
- Fix a crash with Drag-and-Drop
* Translation updates:
Belarusian
Brazilian Portuguese
British English
Catalan
Indonesian
Lithuanian
Nepali
Norwegian Bokmål
Occitan
Portuguese
Romanian
Russian
Serbian
Slovenian
Spanish
Turkish
Ukrainian
Overview of Changes in GTK+ 3.24.29
===================================
* Input:
- Look for a Compose file in the right place (~/.config/gtk-3.0)
- Revert some Compose sequence changes (mainly around dead
acute and apostrophe)
- Consume all key events during preedit, to avoid unexpected
interactions
- Ignore more modifiers during preedit, to allow using 3rd and
5th level choosers
- Fix handling of cursor positions in non-ASCII preedit text
* GtkSpinButton:
- Interpret localized digits
* GtkScale:
- Fix sporadic criticals
* GtkScrolledWindow:
- Cancel overshoot on size changes
- Avoid criticals with non-overlay scrollbars
* GtkFileChooser:
- Handle smb mounts better
* GtkListBox:
- Fix extending multi-selections
* Fix a possible crash in gtk_show_uri
* Wayland:
- Improve font settings fallback
* X11:
- Avoid log spam on exit
- Don't beep on untrusted displays
* OS X:
- Fix building on OS X 10.11
- Add gdk-quartz-cocoa-access.h with api that provides
access to native objects
* Translation updates:
Dutch
Nepali
Swedish
Overview of Changes in GTK+ 3.24.28
===================================
* Input:
- Improve dead key handling
* CSS:
- Fix rendering of scaled text shadows
* Wayland:
- Fix matching of accelerators with multiple layouts
* X11:
- Trap errors from the COW
* Build:
- Make gtk3-update-icon-cache output reproducible
* Translation updates:
Serbian
Overview of Changes in GTK+ 3.24.27
===================================
* Input: Ensure preedit-start and preedit-end
are emitted properly
* GtkScrolledWindow:
- Revert a change that broke touch scrolling
* Theme:
- Fix a problem with size changes in SSD decorations
that caused mutter crashes
- Use transparent black for window border in the dark theme
* Windows:
- Memory leak fixes
- Fix unresponsive windows after tablet input
- Add support for wheel and rotation axes
* Translation updates:
Belarusian
German
Kazakh
Korean
Latvian
Turkish
Overview of Changes in GTK+ 3.24.26
===================================
* Input:
- Fix a few oversights in Compose file parsing
- Fine-tune Compose preedit display
* Theme:
- Fine-tune scrollbar size and transitions
- Reinstate invisible borders for tiled windows
* Wayland:
- Fix a problem with font settings not being found
* Translation updates
French
Hungarian
Turkish
Overview of Changes in GTK+ 3.24.25
===================================
* Settings:
- Make cursor aspect ratio setting work
* Broadway:
- Fix touchscreen event handling
- Support Android / Chrome on-screen keyboard
* Windows:
- Fix issues with Intel graphics drivers
- Avoid UAC for gtk-update-icon-cache
* Wayland:
- Avoid crashes with tablet input
- Add api to support clients with subsurfaces better
* Inspector:
- Make the inspector available in non-debug builds
* Theme:
- Make scrollbars larger
- Disable shadows on maximized, fullscreen and tiled windows
* Printing:
- Support Avahi-discovered printers better
* Input:
- Show preedit for compose sequences
- Support long compose sequences
- Support compose sequences producing multiple characters
* Translation updates
Belarusian
British English
Catalan
Friulian
Galician
Japanese
Persian
Serbian
Overview of Changes in GTK+ 3.24.24
===================================
* GtkColorChooser:
- Update the default color palette
* GtkFontChooser:
- Fix family-only mode to return regular style
* GtkTreeView:
- Don't set focus-on-click for header buttons
* Accessibility:
- Implement scrollSubstringTo
- Add a11y support to GtkPlug/GtkSocket
* Printing:
- Allow the lpr backend to print pdf and ps files
* Theme:
- Update gesture graphics
- Update HighContrast css
* Wayland:
- Support the primary-selection-unstable-v1 protocol
* X11:
- Fix a crash with parent-relative backgrounds
* Broadway:
- Set modifier state of scroll events
* Build:
- Fix pc file generation on NixOS
* OS X:
- Restore command-key bindings
* Windows:
- Fix meson build with epoxy subproject
* Translation updates:
Basque
Brazilian Portuguese
British English
Catalan
Croatian
Czech
French
Galician
German
Greek
Hebrew
Hungarian
Indonesian
Italian
Kazakh
Latvian
Lithuanian
Persian
Polish
Portuguese
Slovak
Slovenian
Spanish
Swedish
Turkish
Ukrainian
Overview of Changes in GTK+ 3.24.23
===================================
-124
View File
@@ -1,124 +0,0 @@
Overview of Changes in GTK+ 1.0.0:
* A few bug fixes.
Overview of Changes in GTK+ 0.99.10:
* Lots of bug fixes
* Documentation improvements
* Better looking handlebox
* A few convenience functions
Overview of Changes in GTK+ 0.99.9:
* Added examples directory, even more examples soon
* Added optional word wrap to gtktext
* Changes to gtkhandlebox
* Lots of bug fixes
Overview of Changes in GTK+ 0.99.8:
* Compilation and configuration fixes
* DND Fixes
* New test in testgtk: cursors
* Tutorial updates/additions
* Few more FAQ additions
* More prep for 1.0
Overview of Changes in GTK+ 0.99.7:
* This release is mainly because 0.99.6 did not compile completely
due to a missing file.
* Fixes to Gtk's quit handlers.
Overview of Changes in GTK+ 0.99.6:
* Intermediate release to become 1.0.
* More signedness corrections for handler functions in gtkmain.h.
* Semantics of GtkWidget::delete_event changed.
* Documentation updates.
* Inclusion of Gtk tutorial.
* Implementation of a new shutdown method for GtkObject's executed prior to
actual destruction. WARNING: this breaks binary compatibility, programs using
Gtk need to be recompiled.
* Clean ups due to compiler warnings.
* Various widget fixes.
Overview of Fixes in GTK+ 0.99.5:
* Signal signedness and naming corrections
* rc/style fixes
* text, entry widget fixes
* gtkeditable fixes
* scrollbar flickering fixed
* check casts are more descriptive
* DND fixes
* FAQ updates
* Bug fixes
Overview of Changes in GTK+ 0.99.4:
* Reference counting revolution integrated.
Refer to docs/refcounting.txt on this issue.
* Implementation of a decent debugging system, you would want
to export GTK_DEBUG=objects if you are going to develop gtk applications,
refer to docs/debugging.txt for further information.
* Additions on the signal code for querying information about certain signals,
and pending handlers of signals.
* Support for user signals, and major changes to internal signal handler
handling for proper signal removal and invokation of after signals.
* Additional signals for various widgets e.g, GtkHandleBox::child_attached,
GtkHandleBox::child_detached, GtkWidget::style_set, GtkWidget::parent_set.
* GtkTooltips became a true descendant of GtkObject via derivation from
GtkData and facilitates an extra tip string which can be used as e.g. an
index into context help.
* Split up of the widget/object flags into a private and a public portion,
consult docs/widget_system.txt on this.
* Support for hot keys on gtk programs via gtk_key_snooper_install().
* Reimplementation of the *_interp functions as *_full functions to provide
simple callback functions as well.
* Idle functions are now prioritized.
* Many enhancements to GtkNotebook.
* New widget GtkSpinButton, check out testgtk.
* New widget GtkTipsQuery for letting the user query tooltips of widgets.
* Addition of GtkEditable base widget to encapsulate selection and
clipboard handling. (GtkEntry and GtkText use this)
* Text widget more complete.
* Additions to GtkStatusBar to make it complete.
* Gdk now supports regions.
* Access masks for widget arguments (GTK_ARG_READABLE/GTK_ARG_WRITABLE).
* Function replacements:
g_string_hash() -> g_str_hash()
g_string_equal() -> g_str_equal()
gtk_tooltips_set_tips() -> gtk_tooltips_set_tip()
* Support for quit handlers in gtk_main().
* Motif window mangaer hints support.
* Widget arguments are now flagged for readability/writability.
* Additions to documentation.
* Various FAQ updates. (FAQ now included)
* Clean ups and many many bug fixes by a lot of people all over the place.
* New, long and descriptive ChangeLog entries for bored readers ;)
Overview of Changes in GTK+ 0.99.3:
* Filesel enhancement / stability changes
* New widget, gtkcombo
* Widgets in the toolbar do not get the focus
* New widget, gtkstatusbar (still in-progress)
* g_string_equal renamed g_str_equal
* g_string_hash renamed g_str_hash
* new gtkbox functions to allow modification of the child
linkage after the widget tree is setup
* gtk_*_get_arg() and gtk_*_set_arg() fixes and implementations
* DND changes/fixes
* Entry widget now has set_max_length function
* Handlebox widget changes/fixes
* Some work on text widget (still in-progress)
* Now the toolbar supports arbitrary widgets as well
* CList has resizable columns again
* CList now looks consistant with scrolled windows
* Remove flickering from entry widget
* Added switch_page signal to notebook widget
* Documentation additions
* Other bug fixes...
-72
View File
@@ -1,72 +0,0 @@
GTK+ is part of the GNOME git repository. At the current time, any
person with write access to the GNOME repository, can make changes to
GTK+. This is a good thing, in that it encourages many people to work
on GTK+, and progress can be made quickly. However, GTK+ is a fairly
large and complicated package that many other things depend on, so to
avoid unnecessary breakage, and to take advantage of the knowledge
about GTK+ that has been built up over the years, we'd like to ask
people committing to GTK+ to follow a few rules:
0) Ask first. If your changes are major, or could possibly break existing
code, you should always ask. If your change is minor and you've
been working on GTK+ for a while it probably isn't necessary
to ask. But when in doubt, ask. Even if your change is correct,
somebody may know a better way to do things.
If you are making changes to GTK+, you should be subscribed
to gtk-devel-list@gnome.org. (Subscription address:
gtk-devel-list-request@gnome.org.) This is a good place to ask
about intended changes.
#gtk+ on GIMPNet (irc.gimp.org, irc.us.gimp.org, irc.eu.gimp.org, ...)
is also a good place to find GTK+ developers to discuss changes with,
however, email to gtk-devel-list is the most certain and preferred
method.
1) Ask _first_.
2) With git, we no longer maintain a ChangeLog file, but you are expected
to produce a meaningful commit message. Changes without a sufficient
commit message will be reverted. See below for the expected format
of commit messages.
Notes:
* When developing larger features or complicated bug fixes, it is
advisable to work in a branch in your own cloned GTK+ repository.
You may even consider making your repository publically available
so that others can easily test and review your changes.
* The expected format for git commit messages is as follows:
=== begin example commit ===
Short explanation of the commit
Longer explanation explaining exactly what's changed, whether any
external or private interfaces changed, what bugs were fixed (with bug
tracker reference if applicable) and so forth. Be concise but not too brief.
=== end example commit ===
- Always add a brief description of the commit to the _first_ line of
the commit and terminate by two newlines (it will work without the
second newline, but that is not nice for the interfaces).
- First line (the brief description) must only be one sentence and
should start with a capital letter unless it starts with a lowercase
symbol or identifier. Don't use a trailing period either. Don't exceed
72 characters.
- The main description (the body) is normal prose and should use normal
punctuation and capital letters where appropriate. Normally, for patches
sent to a mailing list it's copied from there.
- When committing code on behalf of others use the --author option, e.g.
git commit -a --author "Joe Coder <joe@coder.org>" and --signoff.
Owen Taylor
13 Aug 1998
17 Apr 2001
Matthias Clasen
31 Mar 2009
-82
View File
@@ -1,82 +0,0 @@
General Information
===================
This is GTK+ version @GTK_VERSION@. GTK+ is a multi-platform toolkit for
creating graphical user interfaces. Offering a complete set of widgets,
GTK+ is suitable for projects ranging from small one-off projects to
complete application suites.
GTK+ is free software and part of the GNU Project. However, the
licensing terms for GTK+, the GNU LGPL, allow it to be used by all
developers, including those developing proprietary software, without any
license fees or royalties.
The official download locations are:
ftp://ftp.gtk.org/pub/gtk
http://download.gnome.org/sources/gtk+
The official web site is:
http://www.gtk.org/
Information about mailing lists can be found at
http://www.gtk.org/mailing-lists.php
Installation
============
See the file 'INSTALL'
How to report bugs
==================
Bugs should be reported to the GNOME bug tracking system.
(http://bugzilla.gnome.org, product glib.) You will need
to create an account for yourself.
In the bug report please include:
* Information about your system. For instance:
- What operating system and version
- For Linux, what version of the C library
And anything else you think is relevant.
* How to reproduce the bug.
If you can reproduce it with one of the test programs that are built
in the tests/ subdirectory, that will be most convenient. Otherwise,
please include a short test program that exhibits the behavior.
As a last resort, you can also provide a pointer to a larger piece
of software that can be downloaded.
* If the bug was a crash, the exact text that was printed out
when the crash occurred.
* Further information such as stack traces may be useful, but
is not necessary.
Patches
=======
Patches should also be submitted to bugzilla.gnome.org. If the
patch fixes an existing bug, add the patch as an attachment
to that bug report.
Otherwise, enter a new bug report that describes the patch,
and attach the patch to that bug report.
Patches should be in unified diff form. (The -up option to GNU diff)
Even better are git-formatted patches. (Use git format-patch)
Release notes
=============
Release notes for releases of GTK+ 3.x are part of the migration
guide in the GTK+ documentation. See
https://developer.gnome.org/gtk3/unstable/gtk-migrating-2-to-3.html
+70
View File
@@ -0,0 +1,70 @@
General Information
===================
GTK is a multi-platform toolkit for creating graphical user interfaces.
Offering a complete set of widgets, GTK is suitable for projects ranging
from small one-off projects to complete application suites.
GTK is free software and part of the GNU Project. However, the licensing
terms for GTK, the GNU LGPL, allow it to be used by all developers,
including those developing proprietary software, without any license fees or
royalties.
The official download locations are:
- http://download.gnome.org/sources/gtk+
The official web site is:
- http://www.gtk.org/
Installation
============
See the file [`INSTALL.md`](./INSTALL.md)
How to report bugs
==================
Bugs should be reported to the [GTK issue
tracker](https://gitlab.gnome.org/GNOME/gtk/issues). You will need to create
an account for yourself.
In the bug report please include:
* Information about your system. For instance:
- What operating system and version
- For Linux, what version of the C library
And anything else you think is relevant.
* How to reproduce the bug.
If you can reproduce it with one of the test programs that are built
in the tests/ subdirectory, that will be most convenient. Otherwise,
please include a short test program that exhibits the behavior.
As a last resort, you can also provide a pointer to a larger piece
of software that can be downloaded.
* If the bug was a crash, the exact text that was printed out
when the crash occurred.
* Further information such as stack traces may be useful, but
is not necessary.
Bug fixes and improvements
==========================
Changes should be submitted as merge request to the GTK project. If a merge
request fixes an issue, the description should mention the issue number.
Release notes
=============
Release notes for releases of GTK 3.x are part of the migration
guide in the GTK documentation. See
- https://developer-old.gnome.org/gtk3/3.24/gtk-migrating-3-x-to-y.html
-293
View File
@@ -1,293 +0,0 @@
The Win32 backend in GTK+ is not as stable or correct as the X11 one.
For prebuilt runtime and developer packages see
http://ftp.gnome.org/pub/gnome/binaries/win32/
Building GTK+ on Win32
======================
First you obviously need developer packages for the compile-time
dependencies: GDK-Pixbuf, Pango, atk, glib, gettext-runtime, libiconv at least.
See http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies .
For people compiling GTK+ with Visual C++ or later, it is recommended that
the same compiler is used for at least GDK-Pixbuf, Pango, atk and glib
so that crashes and errors caused by different CRTs can be avoided. Currently
building with Visual Studio 2008 or later is supported, either via Visual Studio
project files or via the Meson build system, as described in the below sections.
Interchanging between Visual Studio 2015, 2017 and 2019 builds should be fine
as they use the same CRT (UCRT) DLLs.
After installing the dependencies, there are two ways to build GTK+
for win32.
1) GNU tools, ./configure && make install
-----------------------------------------
This requires you have mingw and MSYS.
Use the configure script, and the resulting Makefiles (which use
libtool and gcc to do the compilation). I use this myself, but it can
be hard to setup correctly.
The full script I run to build GTK+ 2.16 unpacked from a source
distribution is as below. This is from bulding GTK+ 2.16.5. I don't
use any script like this to build the development branch, as I don't
distribute any binaries from development branches.
# This is a shell script that calls functions and scripts from
# tml@iki.fi's personal work envíronment. It is not expected to be
# usable unmodified by others, and is included only for reference.
MOD=gtk+
VER=2.16.5
REV=1
ARCH=win32
THIS=${MOD}_${VER}-${REV}_${ARCH}
RUNZIP=${MOD}_${VER}-${REV}_${ARCH}.zip
DEVZIP=${MOD}-dev_${VER}-${REV}_${ARCH}.zip
HEX=`echo $THIS | md5sum | cut -d' ' -f1`
TARGET=c:/devel/target/$HEX
usedev
usemsvs6
(
set -x
DEPS=`latest --arch=${ARCH} glib atk cairo pango libpng zlib libtiff jpeg`
PROXY_LIBINTL=`latest --arch=${ARCH} proxy-libintl`
PKG_CONFIG_PATH=
for D in $DEPS; do
PATH=/devel/dist/${ARCH}/$D/bin:$PATH
[ -d /devel/dist/${ARCH}/$D/lib/pkgconfig ] && PKG_CONFIG_PATH=/devel/dist/${ARCH}/$D/lib/pkgconfig:$PKG_CONFIG_PATH
done
LIBPNG=`latest --arch=${ARCH} libpng`
ZLIB=`latest --arch=${ARCH} zlib`
LIBTIFF=`latest --arch=${ARCH} libtiff`
JPEG=`latest --arch=${ARCH} jpeg`
patch -p0 <<'EOF'
EOF
lt_cv_deplibs_check_method='pass_all' \
CC='gcc -mtune=pentium3 -mthreads' \
CPPFLAGS="-I/devel/dist/${ARCH}/${LIBPNG}/include \
-I/devel/dist/${ARCH}/${ZLIB}/include \
-I/devel/dist/${ARCH}/${LIBTIFF}/include \
-I/devel/dist/${ARCH}/${JPEG}/include \
-I/devel/dist/${ARCH}/${PROXY_LIBINTL}/include" \
LDFLAGS="-L/devel/dist/${ARCH}/${LIBPNG}/lib \
-L/devel/dist/${ARCH}/${ZLIB}/lib \
-L/devel/dist/${ARCH}/${LIBTIFF}/lib \
-L/devel/dist/${ARCH}/${JPEG}/lib \
-L/devel/dist/${ARCH}/${PROXY_LIBINTL}/lib -Wl,--exclude-libs=libintl.a \
-Wl,--enable-auto-image-base" \
LIBS=-lintl \
CFLAGS=-O2 \
./configure \
--enable-win32-backend \
--disable-gdiplus \
--with-included-immodules \
--without-libjasper \
--enable-debug=yes \
--enable-explicit-deps=no \
--disable-gtk-doc \
--disable-static \
--prefix=$TARGET &&
libtoolcacheize &&
rm gtk/gtk.def &&
(PATH="$PWD/gdk-pixbuf/.libs:/devel/target/$HEX/bin:$PATH" make -j3 install || (rm .libtool-cache* && PATH="/devel/target/$HEX/bin:$PATH" make -j3 install)) &&
PATH="/devel/target/$HEX/bin:$PATH" gdk-pixbuf-query-loaders >/devel/target/$HEX/etc/gtk-2.0/gdk-pixbuf.loaders &&
grep -v -E 'Automatically generated|Created by|LoaderDir =' <$TARGET/etc/gtk-2.0/gdk-pixbuf.loaders >$TARGET/etc/gtk-2.0/gdk-pixbuf.loaders.temp &&
mv $TARGET/etc/gtk-2.0/gdk-pixbuf.loaders.temp $TARGET/etc/gtk-2.0/gdk-pixbuf.loaders &&
grep -v -E 'Automatically generated|Created by|ModulesPath =' <$TARGET/etc/gtk-2.0/gtk.immodules >$TARGET/etc/gtk-2.0/gtk.immodules.temp &&
mv $TARGET/etc/gtk-2.0/gtk.immodules.temp $TARGET/etc/gtk-2.0/gtk.immodules &&
./gtk-zip.sh &&
mv /tmp/${MOD}-${VER}.zip /tmp/$RUNZIP &&
mv /tmp/${MOD}-dev-${VER}.zip /tmp/$DEVZIP
) 2>&1 | tee /devel/src/tml/packaging/$THIS.log
(cd /devel && zip /tmp/$DEVZIP src/tml/packaging/$THIS.{sh,log}) &&
manifestify /tmp/$RUNZIP /tmp/$DEVZIP
You should not just copy the above blindly. There are some things in
the script that are very specific to *my* build setup on *my* current
machine. For instance the "latest" command, the "usedev" and
"usemsvs6" shell functions, the /devel/dist folder. The above script
is really just meant for reference, to give an idea. You really need
to understand what things like PKG_CONFIG_PATH are and set them up
properly after installing the dependencies before building GTK+.
As you see above, after running configure, one can just say "make
install", like on Unix. A post-build fix is needed, running
gdk-pixbuf-query-loaders once more to get a correct gdk-pixbuf.loaders
file.
For a 64-bit build you need to remove the gtk/gtk.def file and let it
be regenerated by the makefilery. This is because the 64-bit GTK dll
has a slightly different list of exported function names. This is on
purpose and not a bug. The API is the same at the source level, and
the same #defines of some function names to actually have a _utf8
suffix is used (just to keep the header simpler). But the
corresponding non-suffixed function to maintain ABI stability are not
needed in the 64-bit case (because there are no older EXEs around that
would require such for ABI stability).
2) Microsoft's tools
--------------------
There are VS 2008~2019 solution and project files to build GTK+, which
are maintained by Chun-wei Fan. They should build GTK+ out of the box,
provided that the afore-mentioned dependencies are installed. They will
build GDK with the Win32 backend, GTK+ itself (with GAIL/a11y built in),
the GAIL-Util library and the gtk-demo program. Please also refer to the
README file(s) that reside in win32 on how to enable additional features
that are not enabled by default, such as EGL support via libANGLE, which
emulate the GL/EGL calls using Direct3D 9/11.
Please refer to the following GNOME Live! page for a more detailed ouline
on the process of building the GTK+ stack and its dependencies with Visual
C++:
https://wiki.gnome.org/Projects/GTK+/Win32/MSVCCompilationOfGTKStack
Alternative 1 also generates Microsoft import libraries (.lib), if you
have lib.exe available. It might also work for cross-compilation from
Unix.
I (Tor) use method 1 myself. Hans Breuer has been taking care of the MSVC
makefiles. At times, we disagree a bit about various issues, and for
instance the makefile.msc files might not produce identically named
DLLs and import libraries as the "autoconfiscated" makefiles and
libtool do. If this bothers you, you will have to fix the makefiles.
3) Using Meson (for Visual Studio and MinGW builds)
---
Meson can now be used to build GTK+-3.x with either MinGW or Visual Studio.
You will need the following items in addition to all the dependencies
listed above:
- Python 3.5 or later
- Meson build system, 0.48.0 or later
- Ninja (if not using the Visual Studio project generator for
Visual Studio 2010, 2015, 2017, 2019)
- CMake (optional, used for dependency searching)
- pkg-config (optional, or some compatible tool, highly recommended)
For all Windows builds, note that unless -Dbuiltin_immodules=no is specified,
the input modules (immodules) are built directly into the GTK DLL.
For building with Meson using Visual Studio, do the following:
Create an empty build directory somewhere that is on the same drive
as the source tree, and launch the Visual Studio command prompt that
matches the build configuration (Visual Studio version and architecture),
and run the following:
- Ensure that both the installation directory of Python and its script
directory is in your PATH, as well as the Ninja, CMake and pkg-config
executables (if used). If a pkg-config compatible drop-in replacement
tool is being used, ensure that PKG_CONFIG is set to point to the
executable of that tool as well.
- For non-GNOME dependencies (such as Cairo and Harfbuzz), where pkg-config
files or CMake files could not be properly located, set INCLUDE and LIB
to ensure that their header files and .lib files can be found respectively.
The DLLs of those dependencies should also be in the PATH during the build
as well, especially if introspection files are to be built.
- For GNOME dependencies, the pkg-config files for those dependencies should
be searchable by pkg-config (or a compatible tool). Verify this by running
$(PKG_CONFIG) --modversion <dependency>.
- Run the following:
meson <path_to_directory_of_this_file> --buildtype=... --prefix=...,
where buildtype can be release, debugoptimized, debug or plain. Please
refer to the Meson documentation for more details. You may also wish to
pass in -Dbroadway_backend=true if building the Broadway GDK backend is
desired, and/or pass in -Dbuiltin_immodules=no to build the immodules as
standalone DLLs that can be loaded by GTK dynamically. For Visual Studio
2010, 2015, 2017 and 2019 builds, you may pass in --backend=vs to generate
Visual Studio project files to be used to carry out the builds.
If you are building with Visual Studio 2008, note the following items as well:
- For x64 builds, the compiler may hang when building the certain files, due
to optimization issues in the compiler. If this happens, use the Windows
Task Manager and terminate all cl.exe processes, and the build will fail
with the source files that did not finish compiling due to the hang.
Look for them in build.ninja in the build directory, and change their compiler
flag "/O2" to "/O1", and the compilation and linking should proceed normally.
At this time of writing, the following files are known to cause this hang:
gtk\gtkfilechoosernativewin32.c
gtk\gtkfilesystemmodel.c
gtk\gtktextsegment.c
gtk\gtktextbtree.c
gtk\gtkrbtree.c
testsuite\gtk\treemodel.c
testsuite\gtk\textbuffer.c
testsuite\gtk\rbtree.c
testsuite\gtk\icontheme.c
- Upon running install (via "ninja install"), it is likely that
gtk-query-immodules-3.0.exe will fail to run as it cannot find msvcr90.dll or
msvcr90D.dll. You can ignore this if you did not specify -Dbuiltin_immodules=no
when configuring via Meson. If -Dbuiltin_immodules=no is specified, you need to
run the following after embedding the manifests as outlined in the next point:
<gtk_install_prefix>\bin\gtk-query-immodules-3.0.exe > <gtk_install_prefix>\lib\gtk-3.0\3.0.0\immodules.cache
- You will need to run the following upon completing install, from the build
directory in the Visual Studio 2008/SDK 6.0 command prompt (third line is not
needed unless -Dbuiltin_immodules=no is specified) so that the built binaries
can run:
for /r %f in (*.dll.manifest) do if exist <gtk_install_prefix>\bin\%~nf mt /manifest %f /outputresource:<gtk_install_prefix>\bin\%~nf;2
for /r %f in (*.exe.manifest) do if exist <gtk_install_prefix>\bin\%~nf mt /manifest %f /outputresource:<gtk_install_prefix>\bin\%~nf;1
for /r %f in (*.dll.manifest) do if exist <gtk_install_prefix>\lib\gtk-3.0\3.0.0\immodules\%~nf mt /manifest %f /outputresource:<gtk_install_prefix>\lib\gtk-3.0\3.0.0\immodules\%~nf;2
- The more modern visual style for the print dialog is not applied for Visual
Studio 2008 builds. Any solutions to this is really appreciated.
Using GTK+ on Win32
===================
To use GTK+ on Win32, you also need either one of the above mentioned
compilers. Other compilers might work, but don't count on it. Look for
prebuilt developer packages (DLLs, import libraries, headers) on the
above website.
Multi-threaded use of GTK+ on Win32
===================================
Multi-threaded GTK+ programs might work on Windows in special simple
cases, but not in general. Sorry. If you have all GTK+ and GDK calls
in the same thread, it might work. Otherwise, probably not at
all. Possible ways to fix this are being investigated.
Wintab
======
The tablet support uses the Wintab API. The Wintab development kit is
no longer required. The wintab.h header file is bundled with GTK+
sources. Unfortunately it seems that only Wacom tablets come with
support for the Wintab API nowadays.
--Tor Lillqvist <tml@iki.fi>, <tml@novell.com>
--Updated by Fan, Chun-wei <fanc999@yahoo.com.tw>
+324
View File
@@ -0,0 +1,324 @@
Notes on running GTK on Windows in general
===
The Win32 backend in GTK+ is not as stable or correct as the X11 one.
For prebuilt runtime and developer packages see
http://ftp.gnome.org/pub/gnome/binaries/win32/
Notes on using OpenGL (GtkGLArea/GdkGLArea) on Win32
===
Note that on Windows, if one is running Nahimic 3 on a system with
nVidia graphics, one needs to stop the "Nahimic service" or insert
the GTK application into the Nahimic blacklist, as noted in
https://www.nvidia.com/en-us/geforce/forums/game-ready-drivers/13/297952/nahimic-and-nvidia-drivers-conflict/2334568/
if using programs that utilise GtkGLArea and/or GdkGLArea, or use
GDK_GL=gles if you know that GLES support is enabled for the build.
This is a known issue, as the above link indicates, and affects quite
a number of applications--sadly, since this issue lies within the
nVidia graphics driver and/or the Nahimic 3 code, we are not able
to rememdy this on the GTK side; the best bet before trying the above
workarounds is to try to update your graphics drivers and Nahimic
installation.
Building GTK+ on Win32
===
First you obviously need developer packages for the compile-time
dependencies: `GDK-Pixbuf`, `Pango`*, `HarfBuzz`**, `atk`, `cairo`* and `glib`.
You will also need `libffi`, `gettext-runtime`, `libiconv` and PCRE (or PCRE2
for glib-2.74.x and later) and `zlib` for GLib; Cairo with DirectWrite support
and/or FontConfig support for best font shaping and display supportin Pango*;
and `librsvg`, `libpng`, `libjpeg-turbo` and `libtiff` for loading the
various icons via GDK-Pixbuf that are common to GTK. You will need a Rust
installation with the appropriate toolchain installed as well, if building
librsvg-2.42.x or later.
(MinGW users should also look at the following section on the dependencies
that are required, either built from source or installed using `pacman`.
Notes on building with Visual Studio
===
You may wish to build the dependencies from the sources (all are required
for the best use experience unless noted).
For Visual Studio, it is possible to build the following with CMake:
* zlib
* libpng
* FreeType (used in FontConfig, optionally used in Cairo and HarfBuzz)
* libexpat (used in FontConfig)
* libxml2 (needed for GResource support during build time and librsvg/libcroco)
* libbrotlidec (optional, used in FreeType, requires Visual Studio 2013 or later)
* libjpeg-turbo (you also need NASM, unless building for ARM64)
* libtiff (requires libjpeg-turbo and zlib)
* HarfBuzz** (for pre-2.6.0, using Meson is recommended for 2.6.0 or later)
* PCRE (for glib-2.72.x and earlier), or PCRE2 (for glib-2.74.x or later)
It is possible to build the following items using Meson:
* HarfBuzz** (2.6.0 and later)
* Cairo (1.17.x or later; for 1.16.x, you need mozilla-build to build from the MSVC Makefiles,
building cairo-gobject is required)
* FontConfig (needed if PangoFT2 is used. Note building Cairo with FontConfig is required,
requires Visual Studio 2015 or later)
* fribidi (required for Pango)
* GLib, ATK, Pango, GDK-Pixbuf
* gobject-introspection (recommended, if using language bindings or gedit is desired, requires GLib and libffi)
* pixman (required for Cairo)
* libepoxy***
For Visual Studio, Visual Studio projects or NMake Makefiles are provided with the following:
* librsvg (runtime, 2.42.x or later require Visual Studio 2013 or later with a Rust
MSVC toolchain installed; requires libxml2)
* libcroco (required for librsvg-2.40.x or earlier, requires libxml2)
* libbz2 (optional for FreeType)
* nasm (needed for building libjpeg-turbo on x86/x64)
* adwaita-icon-theme (run-time, after building GTK and librsvg)
NMake Makefiles are provided as an add-on with patches to build the sources,
at https://github.com/fanc999/gtk-deps-msvc/, under $(dependency) / $(dep_version)
* libiconv (used by gettext-runtime)
* gettext-runtime (and gettext-tools; an alternative is to use proxy-intl during the GLib
build, at the cost of not having translations being built, VS2015 or later is required for
0.21.1 and later)
* libffi (currently, manually adapting the pkg-config .pc.in template is needed; an older
x86/x64 version can be built in-place if building GLib without libffi installed)
You also need a copy of stdint.h and inttypes.h from msinttypes for Visual Studio 2012
or earlier (stdint.h is optional on VS2010 or later), as well as an implementation of
stdbool.h.
Bleeding-edge versions of the dependencies may require Visual Studio 2015/2017 or later.
ARM64 builds are supported in addition to x86 and x64 builds, albeit without SIMD optimizations
in pixman and libjpeg-turbo (SIMD support may need to be explicitly disabled). Please see
the Meson documentation on how to set up a cross-build from an x86-based Windows system.
Introspection support is not supported in this configuration.
Building just using Meson without the dependencies installed may work if the following
conditions are met:
* Visual Studio 2017 15.9.x or later is installed
* `git` is accessible in the `%PATH%`, to pull in the depedencies
* The CMake-built dependencies should be pre-built.
* Only building for x86/x64 is supported this way, ARM64 builds should at least have
pixman and libffi prebuilt.
* librsvg and adwaita-icon-theme must be built separately
* gettext-runtime and libiconv must also be prebuilt if translations support is desired.
Notes on certain dependencies:
---
* (*)DirectWrite support in Pango requires pango-1.50.12 or later with Cairo
1.17.6 or later. Visual Studio 2015 or later is required to build Pango
1.50.x or later.
* (**)HarfBuzz is required if using Pango-1.44.x or later, or if building
PangoFT2. If using Visual Studio 2013 or earlier, only HarfBuzz 2.4.0
or earlier is supported. Visual Studio 2017 15.9.x or later is required
for 3.3.0 or later. You may wish to build FreeType prior to building
HarfBuzz, and then building FreeType again linking to HarfBuzz for a
more comprehensive FreeType build. Font features support is only enabled
if PangoFT2 is built or Pango-1.44.x and HarfBuzz 2.2.0 or later are installed.
* (***)For building with GLES support (currently supported via libANGLE), you
will need to obtain libANGLE from its latest GIT checkout or from QT 5.10.x.
You will need to build libepoxy with EGL enabled using `-Degl=yes` when
configuring the build.
Some outdated builds of the dependencies may be found at
http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies .
For people compiling GTK+ with Visual C++, it is recommended that
the same compiler is used for at least GDK-Pixbuf, Pango, atk and glib
so that crashes and errors caused by different CRTs can be avoided.
For Visual Studio 2008 and 2010, a special setup making use of the Windows
8.0 SDK is required, see at the bottom of this document for guidance.
Interchanging between Visual Studio 2015, 2017, 2019 and 2022 builds
should be fine as they use the same CRT (UCRT) DLLs.
The following describes how one can build GTK with MinGW or Visual Studio
2008 or later using Meson.
Using Meson (for Visual Studio and MinGW builds)
===
Meson can now be used to build GTK+-3.x with either MinGW or Visual Studio.
You will need the following items in addition to all the dependencies
listed above:
* Python 3.6.x or later (later Meson versions require Python 3.7.x)
* Meson build system, 0.60.0 or later
* Ninja (if not using the Visual Studio project generator for
Visual Studio 2010 or later)
* CMake (recommended for Visual Studio builds, used for dependency searching)
* pkg-config (or some compatible tool, highly recommended)
For all Windows builds, note that unless `-Dbuiltin_immodules=no` is
specified, the input modules (immodules) are built directly into the GTK
DLL.
For building with Meson using Visual Studio, do the following:
* Create an empty build directory somewhere that is on the same drive
as the source tree, and launch the Visual Studio command prompt that
matches the build configuration (Visual Studio version and architecture),
and run the following:
* Ensure that both the installation directory of Python 3.6+ and its script
directory is in your `%PATH%`, as well as the Ninja, CMake and pkg-config
executables (if used). If a pkg-config compatible drop-in replacement
tool is being used, ensure that `PKG_CONFIG` is set to point to the
executable of that tool as well.
* For non-GNOME dependencies (such as Cairo and Harfbuzz), where pkg-config
files or CMake files may not be properly located, set `%INCLUDE%` and
`%LIB%` to ensure that their header files and .lib files can be found
respectively. The DLLs of those dependencies should also be in the
`%PATH%` during the build as well, especially if introspection files ar
to be built.
* For GNOME dependencies, the pkg-config files for those dependencies
should be searchable by `pkg-config` (or a compatible tool). Verify
this by running `$(PKG_CONFIG) --modversion <dependency>`.
* Run the following:
`meson <path_to_directory_of_this_file> --buildtype=... --prefix=...,
where `buildtype` can be:
* release
* debugoptimized
* debug
* plain.
Please refer to the Meson documentation for more details. You may also
wish to pass in `-Dbroadway_backend=true` if building the Broadway GDK
backend is desired, and/or pass in `-Dbuiltin_immodules=no` to build the
immodules as standalone DLLs that can be loaded by GTK dynamically. For
Visual Studio 2010 or later builds, you may pass in --backend=vs to
generate Visual Studio project files to be used to carry out the builds.
If you are building with Visual Studio 2008, note the following items as
well:
* For x64 builds, the compiler may hang when building the certain
files, due to optimization issues in the compiler. If this happens,
use the Windows Task Manager and terminate all `cl.exe` processes,
and the build will fail with the source files that did not finish
compiling due to the hang. Look for them in build.ninja in the build
directory, and change their compiler
flag `/O2` to `/O1`, and the compilation and linking should proceed
normally.
* At this time of writing, the following files are known to cause this
hang:
* gtk\gtkfilechoosernativewin32.c
* gtk\gtkfilesystemmodel.c
* gtk\gtktextsegment.c
* gtk\gtktextbtree.c
* gtk\gtkrbtree.c
* testsuite\gtk\treemodel.c
* testsuite\gtk\textbuffer.c
* testsuite\gtk\rbtree.c
* testsuite\gtk\icontheme.c
* Upon running install (via "ninja install"), it is likely that
`gtk-query-immodules-3.0.exe` will fail to run as it cannot find
`msvcr90.dll` or `msvcr90D.dll`. You can ignore this if you did not
specify `-Dbuiltin_immodules=no` when configuring via Meson.
If `-Dbuiltin_immodules=no` is specified, you need to run the
following after embedding the manifests as outlined in the next
point:
`$(gtk_install_prefix)\bin\gtk-query-immodules-3.0.exe > $(gtk_install_prefix)\lib\gtk-3.0\3.0.0\immodules.cache`
* You will need to run the following upon completing install, from the
build directory in the Visual Studio 2008/SDK 6.0 command prompt
(third line is not needed unless `-Dbuiltin_immodules=no` is
specified) so that the built binaries can run:
```
for /r %f in (*.dll.manifest) do if exist $(gtk_install_prefix)\bin\%~nf mt /manifest %f /outputresource:$(gtk_install_prefix)\bin\%~nf;2
for /r %f in (*.exe.manifest) do if exist $(gtk_install_prefix)\bin\%~nf mt /manifest %f /outputresource:$(gtk_install_prefix)\bin\%~nf;1
for /r %f in (*.dll.manifest) do if exist $(gtk_install_prefix)\lib\gtk-3.0\3.0.0\immodules\%~nf mt /manifest %f /outputresource:$(gtk_install_prefix)\lib\gtk-3.0\3.0.0\immodules\%~nf;2
```
* The more modern visual style for the print dialog is not applied for
Visual Studio 2008 builds. Any solutions to this is really
appreciated.
Support for all pre-2012 Visual Studio builds
---
This release of GTK+ requires at least the Windows 8.0 or later SDK in
order to be built successfully using Visual Studio, which means that
building with Visual Studio 2008 or 2010 is possible only with a special
setup and must be done in the command line with Ninja, if using Meson.
Please see
https://devblogs.microsoft.com/cppblog/using-the-windows-software-development-kit-sdk-for-windows-8-consumer-preview-with-visual-studio-2010/
for references; basically, assuming that your Windows 8.0 SDK is installed
in `C:\Program Files (x86)\Windows Kits\8.0` (`$(WIN8SDKDIR)` in short),
you need to ensure the following before invoking Meson to configure the build. Your project files or Visual Studio IDE must also be similarly
configured (using the Windows 8.1 SDK is also possible for Visual Studio
2008~2012, replacing `$(WIN8SDKDIR)` with `$(WIN81SDKDIR)`, which is in
`C:\Program Files (x86)\Windows Kits\8.1` unless otherwise indicated):
* Your `%INCLUDE%` (i.e. "Additional Include Directories" in the IDE)
must not include the Windows 7.0/7.1 SDK include directories,
and `$(WIN8SDKDIR)\include\um`, `$(WIN8SDKDIR)\include\um\share` and
`$(WIN8SDKDIR)\include\winrt` (in this order) must be before your stock
Visual Studio 2008/2010 header directories. If you have the DirectX
SDK (2010 June or earlier) installed, you should remove its include
directory from your `%INCLUDE%` as well.
* You must replace the Windows 7.0/7.1 SDK library directory in `%LIB%`
(i.e. "Additional Library Paths" in the IDE) with the Windows 8.0/8.1
SDK library directory, i.e. `$(WIN8SDKDIR)\lib\win8\um\[x86|x64]` or
`$(WIN81SDKDIR)\lib\winv6.3\um\[x86|x64]`.
If you have the DirectX SDK installed, you should remove its library
directory from your `%LIB%` as well.
* You must replace the Windows 7.0/7.1 SDK tools directory from your
`%PATH%` ("Executables Directories" in the IDE) with the Windows 8.0
SDK tools directory, i.e. `$(WIN8SDKDIR)\bin\[x86|x64]`. If you have
the DirectX SDK installed, you should remove its utility directory from
your `%PATH%` as well.
* The Windows 8.0/8.1 SDK headers may contain an `roapi.h` that cannot be
used under plain C, so to remedy that, change the following lines
(around lines 55-57):
```
// RegisterActivationFactory/RevokeActivationFactory registration cookie
typedef struct {} *RO_REGISTRATION_COOKIE;
// RegisterActivationFactory/DllGetActivationFactory callback
```
to
```
// RegisterActivationFactory/RevokeActivationFactory registration cookie
#ifdef __cplusplus
typedef struct {} *RO_REGISTRATION_COOKIE;
#else
typedef struct _RO_REGISTRATION_COOKIE *RO_REGISTRATION_COOKIE; /* make this header includable in C files */
#endif
// RegisterActivationFactory/DllGetActivationFactory callback
```
This follows what is done in the Windows 8.1 SDK, which contains an
`roapi.h` that is usable under plain C. Please note that you might need
to copy that file into a location that is in your `%INCLUDE%` which
precedes the include path for the Windows 8.0 SDK headers, if you do not
have administrative privileges.
Visual Studio 2008 hacks
---
(Please see the section on Meson builds which touch on this topic)
Multi-threaded use of GTK+ on Win32
---
Multi-threaded GTK+ programs might work on Windows in special simple
cases, but not in general. Sorry. If you have all GTK+ and GDK calls
in the same thread, it might work. Otherwise, probably not at
all. Possible ways to fix this are being investigated.
* Tor Lillqvist <tml@iki.fi>, <tml@novell.com>
* Updated by Fan, Chun-wei <fanc999@yahoo.com.tw>
-79
View File
@@ -1,79 +0,0 @@
# autoconf 2.13 / 2.50 compatibility macro
# GLIB_AC_DIVERT_BEFORE_HELP(STUFF)
# ---------------------------------
# Put STUFF early enough so that they are available for $ac_help expansion.
# Handle both classic (<= v2.13) and modern autoconf
AC_DEFUN([GLIB_AC_DIVERT_BEFORE_HELP],
[ifdef([m4_divert_text], [m4_divert_text([NOTICE],[$1])],
[ifdef([AC_DIVERT], [AC_DIVERT([NOTICE],[$1])],
[AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
$1
AC_DIVERT_POP()])])])
# GTK_ADD_LIB(VAR,LIBNAME)
# ---------------------------------
# Helper macro to add a -lBlah to a variable, avoiding repeats
# Note that this needs to be quoted when used in an enclosing macro
AC_DEFUN([GTK_ADD_LIB],
[ case "$$1 " in
*-l$2[[\ \ ]]*) ;;
*) $1="-l$2 $$1" ;;
esac
])
# Checks the location of the XML Catalog
# Usage:
# JH_PATH_XML_CATALOG([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
# Defines XMLCATALOG and XML_CATALOG_FILE substitutions
AC_DEFUN([JH_PATH_XML_CATALOG],
[
# check for the presence of the XML catalog
AC_ARG_WITH([xml-catalog],
AC_HELP_STRING([--with-xml-catalog=CATALOG],
[path to xml catalog to use]),,
[with_xml_catalog=/etc/xml/catalog])
jh_found_xmlcatalog=true
XML_CATALOG_FILE="$with_xml_catalog"
AC_SUBST([XML_CATALOG_FILE])
AC_MSG_CHECKING([for XML catalog ($XML_CATALOG_FILE)])
if test -f "$XML_CATALOG_FILE"; then
AC_MSG_RESULT([found])
else
jh_found_xmlcatalog=false
AC_MSG_RESULT([not found])
fi
# check for the xmlcatalog program
AC_PATH_PROG(XMLCATALOG, xmlcatalog, no)
if test "x$XMLCATALOG" = xno; then
jh_found_xmlcatalog=false
fi
if $jh_found_xmlcatalog; then
ifelse([$1],,[:],[$1])
else
ifelse([$2],,[AC_MSG_ERROR([could not find XML catalog])],[$2])
fi
])
# Checks if a particular URI appears in the XML catalog
# Usage:
# JH_CHECK_XML_CATALOG(URI, [FRIENDLY-NAME], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
AC_DEFUN([JH_CHECK_XML_CATALOG],
[
AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl
AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog])
if $jh_found_xmlcatalog && \
AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then
AC_MSG_RESULT([found])
ifelse([$3],,,[$3
])dnl
else
AC_MSG_RESULT([not found])
ifelse([$4],,
[AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],
[$4])
fi
])
-46
View File
@@ -1,46 +0,0 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
test -n "$srcdir" || srcdir=`dirname "$0"`
test -n "$srcdir" || srcdir=.
olddir=`pwd`
cd "$srcdir"
mkdir -p m4
GTKDOCIZE=`which gtkdocize`
if test -z $GTKDOCIZE; then
echo "*** No GTK-Doc found, please install it ***"
exit 1
else
gtkdocize || exit $?
fi
PKGCONFIG=`which pkg-config`
if test -z "$PKGCONFIG"; then
echo "*** pkg-config not found, please install it ***"
exit 1
fi
pkg-config --print-errors gobject-introspection-1.0
if [ $? != 0 ]; then
echo "You probably need to install 'libgirepository1.0-dev'"
exit 1
fi
# README and INSTALL are required by automake, but may be deleted by clean
# up rules. to get automake to work, simply touch these here, they will be
# regenerated from their corresponding *.in files by ./configure anyway.
touch README INSTALL
AUTORECONF=`which autoreconf`
if test -z $AUTORECONF; then
echo "*** No autoreconf found, please install it ***"
exit 1
else
autoreconf --force --install --verbose || exit $?
fi
cd "$olddir"
test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"
-200
View File
@@ -1,200 +0,0 @@
#!/usr/bin/env python3
import re
import sys
try:
configure_ac = sys.argv[1]
except Exception:
configure_ac = 'configure.ac'
try:
meson_build = sys.argv[2]
except Exception:
meson_build = 'meson.build'
CONFIGURE_MAJOR_VERSION_RE = re.compile(
r'''
^
\s*
m4_define\(
\s*
\[gtk_major_version\]
\s*
,
\s*
\[
(?P<version>[0-9]+)
\]
\s*
\)
$
''',
re.UNICODE | re.VERBOSE
)
CONFIGURE_MINOR_VERSION_RE = re.compile(
r'''
^
\s*
m4_define\(
\s*
\[gtk_minor_version\]
\s*
,
\s*
\[
(?P<version>[0-9]+)
\]
\s*
\)
$
''',
re.UNICODE | re.VERBOSE
)
CONFIGURE_MICRO_VERSION_RE = re.compile(
r'''
^
\s*
m4_define\(
\s*
\[gtk_micro_version\]
\s*
,
\s*
\[
(?P<version>[0-9]+)
\]
\s*
\)
$
''',
re.UNICODE | re.VERBOSE
)
CONFIGURE_INTERFACE_AGE_RE = re.compile(
r'''
^
\s*
m4_define\(
\s*
\[gtk_interface_age\]
\s*
,
\s*
\[
(?P<age>[0-9]+)
\]
\s*
\)
$
''',
re.UNICODE | re.VERBOSE
)
MESON_VERSION_RE = re.compile(
r'''
^
\s*
version
\s*
:{1}
\s*
\'{1}
(?P<major>[0-9]+)
\.{1}
(?P<minor>[0-9]+)
\.{1}
(?P<micro>[0-9]+)
\'{1}
\s*
,?
$
''',
re.UNICODE | re.VERBOSE
)
MESON_INTERFACE_AGE_RE = re.compile(
r'''
^\s*gtk_interface_age\s*={1}\s*(?P<age>[0-9]+)\s*$
''',
re.UNICODE | re.VERBOSE
)
version = {}
with open(configure_ac, 'r') as f:
line = f.readline()
while line:
res = CONFIGURE_MAJOR_VERSION_RE.match(line)
if res:
if 'major' in version:
print(f'Redefinition of major version; version is already set to {version["major"]}')
sys.exit(1)
version['major'] = res.group('version')
line = f.readline()
continue
res = CONFIGURE_MINOR_VERSION_RE.match(line)
if res:
if 'minor' in version:
print(f'Redefinition of minor version; version is already set to {version["minor"]}')
sys.exit(1)
version['minor'] = res.group('version')
line = f.readline()
continue
res = CONFIGURE_MICRO_VERSION_RE.match(line)
if res:
if 'micro' in version:
print(f'Redefinition of micro version; version is already set to {version["micro"]}')
sys.exit(1)
version['micro'] = res.group('version')
line = f.readline()
continue
res = CONFIGURE_INTERFACE_AGE_RE.match(line)
if res:
if 'age' in version:
print(f'Redefinition of interface age; age is already set to {version["age"]}')
sys.exit(1)
version['age'] = res.group('age')
line = f.readline()
continue
if ('major', 'minor', 'micro', 'age') in version:
break
line = f.readline()
print(f'GTK version defined in {configure_ac}: {version["major"]}.{version["minor"]}.{version["micro"]} (age: {version["age"]})')
configure_version = version
version = {}
with open(meson_build, 'r') as f:
line = f.readline()
inside_project = False
while line:
if line.startswith('project('):
inside_project = True
if inside_project:
res = MESON_VERSION_RE.match(line)
if res:
version['major'] = res.group('major')
version['minor'] = res.group('minor')
version['micro'] = res.group('micro')
if inside_project and line.endswith(')'):
inside_project = False
res = MESON_INTERFACE_AGE_RE.match(line)
if res:
version['age'] = res.group('age')
if ('major', 'minor', 'micro', 'age') in version:
break
line = f.readline()
print(f'GTK version defined in {meson_build}: {version["major"]}.{version["minor"]}.{version["micro"]} (age: {version["age"]})')
meson_version = version
if configure_version != meson_version:
print('Version mismatch between Autotools and Meson builds')
sys.exit(1)
sys.exit(0)
-286
View File
@@ -1,286 +0,0 @@
/* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.ac by autoheader. */
/* Define to 1 if translation of program messages to the user's native
language is requested. */
#mesondefine ENABLE_NLS
/* The prefix for our gettext translation domains. */
#mesondefine GETTEXT_PACKAGE
/* Disable deprecation warnings from glib */
#mesondefine GLIB_DISABLE_DEPRECATION_WARNINGS
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
#mesondefine HAVE_BIND_TEXTDOMAIN_CODESET
/* Define if libcloudproviders is available */
#mesondefine HAVE_CLOUDPROVIDERS
/* define if we have colord */
#mesondefine HAVE_COLORD
/* Define if the GNU dcgettext() function is already present or preinstalled.
*/
#mesondefine HAVE_DCGETTEXT
/* Define to 1 if you have the declaration of `isinf', and to 0 if you don't.
*/
#mesondefine HAVE_DECL_ISINF
/* Define to 1 if you have the declaration of `isnan', and to 0 if you don't.
*/
#mesondefine HAVE_DECL_ISNAN
/* Define to 1 if you have the <dev/evdev/input.h> header file. */
#mesondefine HAVE_DEV_EVDEV_INPUT_H
/* Define to 1 if you have the <dlfcn.h> header file. */
#mesondefine HAVE_DLFCN_H
/* Define to 1 if you have the `exp2' function. */
#mesondefine HAVE_EXP2
/* Define to 1 if you have the `flockfile' function. */
#mesondefine HAVE_FLOCKFILE
/* Define to 1 if you have the <ftw.h> header file. */
#mesondefine HAVE_FTW_H
/* Define to 1 if you have the `getpagesize' function. */
#mesondefine HAVE_GETPAGESIZE
/* Define to 1 if you have the `getresuid' function. */
#mesondefine HAVE_GETRESUID
/* Define if gio-unix is available */
#mesondefine HAVE_GIO_UNIX
/* defines whether we have HarfBuzz */
#mesondefine HAVE_HARFBUZZ
/* Define to 1 if you have the <inttypes.h> header file. */
#mesondefine HAVE_INTTYPES_H
/* Define to 1 if the system has the type `IPrintDialogCallback'. */
#mesondefine HAVE_IPRINTDIALOGCALLBACK
/* Define to 1 if you have the <linux/input.h> header file. */
#mesondefine HAVE_LINUX_INPUT_H
/* Define to 1 if you have the <linux/memfd.h> header file. */
#mesondefine HAVE_LINUX_MEMFD_H
/* Define to 1 if you have the `localtime_r' function. */
#mesondefine HAVE_LOCALTIME_R
/* Define to 1 if you have the `log2' function. */
#mesondefine HAVE_LOG2
/* Define to 1 if you have the `lstat' function. */
#mesondefine HAVE_LSTAT
/* Define to 1 if you have the `mallinfo' function. */
#mesondefine HAVE_MALLINFO
/* Define to 1 if you have the <memory.h> header file. */
#mesondefine HAVE_MEMORY_H
/* Define to 1 if you have the `mkstemp' function. */
#mesondefine HAVE_MKSTEMP
/* Define to 1 if you have a working `mmap' system call. */
#mesondefine HAVE_MMAP
/* Define to 1 if you have the `nearbyint' function. */
#mesondefine HAVE_NEARBYINT
/* defines whether we have pangoft2 */
#mesondefine HAVE_PANGOFT
/* Define to 1 if libpapi available */
#mesondefine HAVE_PAPI
/* Define to 1 if you have the `posix_fallocate' function. */
#mesondefine HAVE_POSIX_FALLOCATE
/* Have the Xrandr extension library */
#mesondefine HAVE_RANDR
/* Have the Xrandr 1.5 extension library */
#mesondefine HAVE_RANDR15
/* Define to 1 if you have the `rint' function. */
#mesondefine HAVE_RINT
/* Define to 1 if you have the `round' function. */
#mesondefine HAVE_ROUND
/* Define to 1 if SetupDiGetDevicePropertyW() is available */
#mesondefine HAVE_SETUP_DI_GET_DEVICE_PROPERTY_W
/* Define to 1 if you have the `sincos' function. */
#mesondefine HAVE_SINCOS
/* Define to 1 if solaris xinerama is available */
#mesondefine HAVE_SOLARIS_XINERAMA
/* Define to 1 if you have the <stdint.h> header file. */
#mesondefine HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#mesondefine HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
#mesondefine HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#mesondefine HAVE_STRING_H
/* Define to 1 if you have the <sys/mman.h> header file. */
#mesondefine HAVE_SYS_MMAN_H
/* Define to 1 if you have the <sys/param.h> header file. */
#mesondefine HAVE_SYS_PARAM_H
/* Have the sysprof-capture library */
#mesondefine HAVE_SYSPROF_CAPTURE
/* Define to 1 if you have the <sys/stat.h> header file. */
#mesondefine HAVE_SYS_STAT_H
/* Define to 1 if sys/sysinfo.h is available */
#mesondefine HAVE_SYS_SYSINFO_H
/* Define to 1 if sys/systeminfo.h is available */
#mesondefine HAVE_SYS_SYSTEMINFO_H
/* Define to 1 if you have the <sys/time.h> header file. */
#mesondefine HAVE_SYS_TIME_H
/* Define to 1 if you have the <sys/types.h> header file. */
#mesondefine HAVE_SYS_TYPES_H
/* Define to 1 if you have the `trunc' function. */
#mesondefine HAVE_TRUNC
/* Define to 1 if you have the <unistd.h> header file. */
#mesondefine HAVE_UNISTD_H
/* Have the XCOMPOSITE X extension */
#mesondefine HAVE_XCOMPOSITE
/* Have the Xcursor library */
#mesondefine HAVE_XCURSOR
/* Have the XDAMAGE X extension */
#mesondefine HAVE_XDAMAGE
/* Have the XFIXES X extension */
#mesondefine HAVE_XFIXES
/* Define to 1 if XFree Xinerama is available */
#mesondefine HAVE_XFREE_XINERAMA
/* Have XGenericEvent */
#mesondefine HAVE_XGENERICEVENTS
/* Define to 1 if xinerama is available */
#mesondefine HAVE_XINERAMA
/* Define to use XKB extension */
#mesondefine HAVE_XKB
/* Have the SYNC extension library */
#mesondefine HAVE_XSYNC
/* Define to 1 if you have the `_lock_file' function. */
#mesondefine HAVE__LOCK_FILE
/* Define if _NL_MEASUREMENT_MEASUREMENT is available */
#mesondefine HAVE__NL_MEASUREMENT_MEASUREMENT
/* Define if _NL_PAPER_HEIGHT is available */
#mesondefine HAVE__NL_PAPER_HEIGHT
/* Define if _NL_PAPER_WIDTH is available */
#mesondefine HAVE__NL_PAPER_WIDTH
/* Define if _NL_TIME_FIRST_WEEKDAY is available */
#mesondefine HAVE__NL_TIME_FIRST_WEEKDAY
/* Define to the address where bug reports for this package should be sent. */
#mesondefine PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#mesondefine PACKAGE_NAME
/* Define to the full name and version of this package. */
#mesondefine PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#mesondefine PACKAGE_TARNAME
/* Define to the home page for this package. */
#mesondefine PACKAGE_URL
/* Define to the version of this package. */
#mesondefine PACKAGE_VERSION
/* Use NSBundle functions to determine load paths for libraries, translations,
etc. */
#mesondefine QUARTZ_RELOCATION
/* The size of `DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY', as computed by sizeof.
*/
#mesondefine SIZEOF_DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY
/* Define to 1 if XInput 2.0 is available */
#mesondefine XINPUT_2
/* Define to 1 if XInput 2.2 is available */
#mesondefine XINPUT_2_2
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE
# define _DARWIN_USE_64_BIT_INODE 1
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
#mesondefine _FILE_OFFSET_BITS
/* defines how to decorate public symbols while building */
#mesondefine _GDK_EXTERN
/* Define for large files, on AIX-style hosts. */
#mesondefine _LARGE_FILES
/* Define to 1 if on MINIX. */
#mesondefine _MINIX
/* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */
#mesondefine _POSIX_1_SOURCE
/* Define to 1 if you need to in order for `stat' and other things to work. */
#mesondefine _POSIX_SOURCE
/* Define to `int' if <sys/types.h> doesn't define. */
#mesondefine gid_t
/* Define to `int' if <sys/types.h> doesn't define. */
#mesondefine uid_t
#mesondefine GTK_DATADIR
#mesondefine GTK_LIBDIR
#mesondefine GTK_PRINT_BACKENDS
/* Define the location where the catalogs will be installed */
#mesondefine GTK_LOCALEDIR
#mesondefine ISO_CODES_PREFIX
/* Define if tracker3 is available */
#mesondefine HAVE_TRACKER3
-318
View File
@@ -1,318 +0,0 @@
/* config.h.win32.in. Merged from two versions generated by configure for gcc and MSVC. */
/* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.in by autoheader. */
/* always defined to indicate that i18n is enabled */
#define ENABLE_NLS 1
/* define to enable packagekit */
/* #undef ENABLE_PACKAGEKIT */
/* The prefix for our gettext translation domains. */
#define GETTEXT_PACKAGE "@GETTEXT_PACKAGE@"
/* Disable deprecation warnings from glib */
/* #undef GLIB_DISABLE_DEPRECATION_WARNINGS */
/* Define if debugging is enabled */
#define GTK_COMPILED_WITH_DEBUGGING "yes"
/* Define the location where the catalogs will be installed */
#define GTK_LOCALEDIR "NONE/share/locale"
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
#define HAVE_BIND_TEXTDOMAIN_CODESET 1
/* define if we have colord */
/* #undef HAVE_COLORD */
/* Define to 1 if you have the `dcgettext' function. */
#define HAVE_DCGETTEXT 1
/* Define to 1 if you have the declaration of `isinf', and to 0 if you don't.
*/
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
#define HAVE_DECL_ISINF 1
#endif
/* Define to 1 if you have the declaration of `isnan', and to 0 if you don't.
*/
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
#define HAVE_DECL_ISNAN 1
#endif
/* Define to 1 if you have the <dlfcn.h> header file. */
/* #undef HAVE_DLFCN_H */
/* Define to 1 if you have the `exp2' function. */
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
#define HAVE_EXP2 1
#endif
/* Define to 1 if you have the `flockfile' function. */
#undef HAVE_FLOCKFILE
/* Define to 1 if you have the <ftw.h> header file. */
/* #undef HAVE_FTW_H */
/* Define to 1 if you have the `getpagesize' function. */
#ifndef _MSC_VER
#define HAVE_GETPAGESIZE 1
#else
/* #undef HAVE_GETPAGESIZE */
#endif
/* Define to 1 if you have the `getresuid' function. */
/* #undef HAVE_GETRESUID */
/* Define if the GNU gettext() function is already present or preinstalled. */
#define HAVE_GETTEXT 1
/* Define if gio-unix is available */
/* #undef HAVE_GIO_UNIX */
/* Define to 1 if you have the <inttypes.h> header file. */
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
#define HAVE_INTTYPES_H 1
#else
/* #undef HAVE_INTTYPES_H */
#endif
/* Define to 1 if the system has the type `IPrintDialogCallback'. */
#define HAVE_IPRINTDIALOGCALLBACK 1
/* Define if your <locale.h> file defines LC_MESSAGES. */
/* #undef HAVE_LC_MESSAGES */
/* Define to 1 if you have the `m' library (-lm). */
#ifndef _MSC_VER
#define HAVE_LIBM 1
#endif
/* Define to 1 if you have the <locale.h> header file. */
#define HAVE_LOCALE_H 1
/* Define to 1 if you have the `localtime_r' function. */
/* #undef HAVE_LOCALTIME_R */
/* Define to 1 if you have the `log2' function. */
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
#define HAVE_LOG2 1
#endif
/* Define to 1 if you have the `lstat' function. */
/* #undef HAVE_LSTAT */
/* Define to 1 if you have the `mallinfo' function. */
/* #undef HAVE_MALLINFO */
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the `mkstemp' function. */
/* #undef HAVE_MKSTEMP */
/* Define to 1 if you have a working `mmap' system call. */
/* #undef HAVE_MMAP */
/* Define to 1 if nearbyint() is available */
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
#define HAVE_NEARBYINT 1
#endif
/* Define to 1 if libpapi available */
/* #undef HAVE_PAPI */
/* Define to 1 if you have the <pwd.h> header file. */
/* #undef HAVE_PWD_H */
/* Have the Xrandr extension library */
/* #undef HAVE_RANDR */
/* Define to 1 if rint() is available */
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
#define HAVE_RINT 1
#endif
/* Define to 1 if round() is available */
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
#define HAVE_ROUND 1
#endif
/* Define to 1 if sincos() is available */
/* #undef HAVE_SINCOS */
/* Define to 1 if solaris xinerama is available */
/* #undef HAVE_SOLARIS_XINERAMA */
/* Define to 1 if you have the <stdint.h> header file. */
#ifndef _MSC_VER
#define HAVE_STDINT_H 1
#else
#if (_MSC_VER >= 1600) /* VS 2010+ ships with stdint.h */
#define HAVE_STDINT_H 1
#endif
/* #undef HAVE_STDINT_H */
#endif
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#ifndef _MSC_VER
#define HAVE_STRINGS_H 1
#endif
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/mman.h> header file. */
/* #undef HAVE_SYS_MMAN_H */
/* Define to 1 if you have the <sys/param.h> header file. */
/* #undef HAVE_SYS_PARAM_H */
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if sys/sysinfo.h is available */
/* #undef HAVE_SYS_SYSINFO_H */
/* Define to 1 if sys/systeminfo.h is available */
/* #undef HAVE_SYS_SYSTEMINFO_H */
/* Define to 1 if you have the <sys/time.h> header file. */
#ifndef _MSC_VER
#define HAVE_SYS_TIME_H 1
#else /* _MSC_VER */
/* #undef HAVE_SYS_TIME_H */
#endif
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if trunc() is available */
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
# define HAVE_TRUNC 1
#endif
/* Define to 1 if you have the <unistd.h> header file. */
#ifndef _MSC_VER
#define HAVE_UNISTD_H 1
#else
/* #undef HAVE_UNISTD_H */
#endif
/* Have the XCOMPOSITE X extension */
/* #undef HAVE_XCOMPOSITE */
/* Have the Xcursor library */
/* #undef HAVE_XCURSOR */
/* Have the XDAMAGE X extension */
/* #undef HAVE_XDAMAGE */
/* Have the XFIXES X extension */
/* #undef HAVE_XFIXES */
/* Define to 1 if XFree Xinerama is available */
/* #undef HAVE_XFREE_XINERAMA */
/* Have XGenericEvent */
/* #undef HAVE_XGENERICEVENTS */
/* Define to 1 if xinerama is available */
/* #undef HAVE_XINERAMA */
/* Define to use XKB extension */
/* #undef HAVE_XKB */
/* Have the SYNC extension library */
/* #undef HAVE_XSYNC */
/* Define to 1 if you have the `_lock_file' function. */
#define HAVE__LOCK_FILE
/* Define if _NL_MEASUREMENT_MEASUREMENT is available */
/* #undef HAVE__NL_MEASUREMENT_MEASUREMENT */
/* Define if _NL_PAPER_HEIGHT is available */
/* #undef HAVE__NL_PAPER_HEIGHT */
/* Define if _NL_PAPER_WIDTH is available */
/* #undef HAVE__NL_PAPER_WIDTH */
/* Define if _NL_TIME_FIRST_WEEKDAY is available */
/* #undef HAVE__NL_TIME_FIRST_WEEKDAY */
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#define LT_OBJDIR ".libs/"
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
#ifndef _MSC_VER
/* #undef NO_MINUS_C_MINUS_O */
#else
#define NO_MINUS_C_MINUS_O 1
#endif
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B"
/* Define to the full name of this package. */
#define PACKAGE_NAME "gtk+"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "gtk+ @GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.@GTK_MICRO_VERSION@"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "gtk+"
/* Define to the home page for this package. */
#define PACKAGE_URL ""
/* Define to the version of this package. */
#define PACKAGE_VERSION "@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.@GTK_MICRO_VERSION@"
/* Use NSBundle functions to determine load paths for libraries, translations,
etc. */
/* #undef QUARTZ_RELOCATION */
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Define to 1 if gmodule works and should be used */
#define USE_GMODULE 1
/* Define to 1 if XInput 2.0 is available */
/* #undef XINPUT_2 */
/* Define to 1 if XInput 2.2 is available */
/* #undef XINPUT_2_2 */
/* Define to 1 if the X Window System is missing or not being used. */
/* #undef X_DISPLAY_MISSING */
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE
/* # define _DARWIN_USE_64_BIT_INODE 1 */
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */
/* defines how to decorate public symbols while building */
#ifdef _MSC_VER
#define _GDK_EXTERN __declspec (dllexport) extern
#else
#define _GDK_EXTERN __attribute__((visibility("default"))) __declspec (dllexport) extern
#endif
/* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */
/* Define to `int' if <sys/types.h> doesn't define. */
#define gid_t int
/* Define to `int' if <sys/types.h> doesn't define. */
#define uid_t int
-2025
View File
File diff suppressed because it is too large Load Diff
-9
View File
@@ -1,9 +0,0 @@
## Makefile.am for gtk+/demos
include $(top_srcdir)/Makefile.decl
SUBDIRS = gtk-demo widget-factory icon-browser
EXTRA_DIST += \
meson.build
-include $(top_srcdir)/git.mk
-207
View File
@@ -1,207 +0,0 @@
## Makefile.am for gtk+/demos
include $(top_srcdir)/Makefile.decl
## These should be in the order you want them to appear in the
## demo app, which means alphabetized by demo title, not filename
demos_base = \
application_demo.c \
assistant.c \
builder.c \
button_box.c \
changedisplay.c \
clipboard.c \
colorsel.c \
combobox.c \
css_accordion.c \
css_basics.c \
css_blendmodes.c \
css_multiplebgs.c \
css_pixbufs.c \
css_shadows.c \
cursors.c \
dialog.c \
drawingarea.c \
editable_cells.c \
entry_buffer.c \
entry_completion.c \
event_axes.c \
expander.c \
filtermodel.c \
fishbowl.c \
foreigndrawing.c \
gestures.c \
glarea.c \
headerbar.c \
hypertext.c \
iconview.c \
iconview_edit.c \
images.c \
infobar.c \
links.c \
listbox.c \
flowbox.c \
list_store.c \
markup.c \
menus.c \
modelbutton.c \
offscreen_window.c \
offscreen_window2.c \
overlay.c \
overlay2.c \
paint.c \
panes.c \
pickers.c \
pixbufs.c \
popover.c \
printing.c \
revealer.c \
rotated_text.c \
scale.c \
search_entry.c \
search_entry2.c \
shortcuts.c \
sidebar.c \
sizegroup.c \
spinbutton.c \
spinner.c \
stack.c \
tabs.c \
textmask.c \
textview.c \
textscroll.c \
theming_style_classes.c \
toolpalette.c \
transparent.c \
tree_store.c
demos_opt =
if BUILD_FONT_DEMO
demos_opt += font_features.c
endif
if OS_UNIX
demos_opt += pagesetup.c
endif
demos = $(demos_base) $(demos_opt)
AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_builddir)/gdk \
-DGDK_DISABLE_DEPRECATED \
-DGTK_DISABLE_DEPRECATED \
$(GTK_DEBUG_FLAGS) \
$(GTK_DEP_CFLAGS)
DEPS = \
$(top_builddir)/gtk/libgtk-3.la
LDADDS = \
$(top_builddir)/gtk/libgtk-3.la \
$(top_builddir)/gdk/libgdk-3.la \
$(GTK_DEP_LIBS) \
$(GDK_DEP_LIBS) \
-lm
bin_PROGRAMS = gtk3-demo gtk3-demo-application
desktopdir = $(datadir)/applications
dist_desktop_DATA = gtk3-demo.desktop
BUILT_SOURCES = demos.h demo_resources.c
EXTRA_DIST += \
data/source.svg \
data/symbolic-source.svg \
demo.gresource.xml \
$(resource_files) \
makefile.msc.in \
org.gtk.Demo.gschema.xml \
demos.h.win32 \
meson.build \
geninclude.py
gsettings_SCHEMAS = \
org.gtk.Demo.gschema.xml
@GSETTINGS_RULES@
demos.h: $(demos) geninclude.pl
$(AM_V_GEN) (here=`pwd` ; cd $(srcdir) && $(PERL) $$here/geninclude.pl $(demos)) > demos.h
demos.h.win32: $(demos_base) geninclude.pl
$(AM_V_GEN) (here=`pwd` ; cd $(srcdir) && $(PERL) $$here/geninclude.pl $(demos_base)) > demos.h.win32
nodist_gtk3_demo_SOURCES = demos.h
gtk3_demo_SOURCES = \
$(demos) \
gtkfishbowl.c \
gtkfishbowl.h \
demo_resources.c \
main.c
gtk3_demo_DEPENDENCIES = $(DEPS)
gtk3_demo_LDADD = $(LDADDS)
gtk3_demo_LDFLAGS = -export-dynamic
gtk3_demo_application_SOURCES = \
application.c \
demo_resources.c
gtk3_demo_application_LDADD = $(LDADDS)
resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/demo.gresource.xml)
demo_resources.c: demo.gresource.xml $(resource_files)
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source $(srcdir)/demo.gresource.xml
iconthemedir = $(datadir)/icons/hicolor
appsicon16dir = $(iconthemedir)/16x16/apps
appsicon22dir = $(iconthemedir)/22x22/apps
appsicon24dir = $(iconthemedir)/24x24/apps
appsicon32dir = $(iconthemedir)/32x32/apps
appsicon48dir = $(iconthemedir)/48x48/apps
appsicon256dir = $(iconthemedir)/256x256/apps
appsiconscalabledir = $(iconthemedir)/scalable/apps
dist_appsicon16_DATA = data/16x16/gtk3-demo.png data/16x16/gtk3-demo-symbolic.symbolic.png
dist_appsicon22_DATA = data/22x22/gtk3-demo.png data/22x22/gtk3-demo-symbolic.symbolic.png
dist_appsicon24_DATA = data/24x24/gtk3-demo.png data/24x24/gtk3-demo-symbolic.symbolic.png
dist_appsicon32_DATA = data/32x32/gtk3-demo.png data/32x32/gtk3-demo-symbolic.symbolic.png
dist_appsicon48_DATA = data/48x48/gtk3-demo.png data/48x48/gtk3-demo-symbolic.symbolic.png
dist_appsicon256_DATA = data/256x256/gtk3-demo.png data/256x256/gtk3-demo-symbolic.symbolic.png
update_icon_cache = $(top_builddir)/gtk/gtk-update-icon-cache$(EXEEXT) --ignore-theme-index --force
install-data-hook: install-update-icon-cache
uninstall-hook: uninstall-update-icon-cache
install-update-icon-cache:
$(AM_V_at)$(POST_INSTALL)
test -n "$(DESTDIR)" || $(update_icon_cache) "$(iconthemedir)"
uninstall-update-icon-cache:
$(AM_V_at)$(POST_UNINSTALL)
test -n "$(DESTDIR)" || $(update_icon_cache) "$(iconthemedir)"
# ------------------- MSVC Build Items ----------------
MSVCPROJS = gtk3-demo gtk3-demo-application
gtk3_demo_FILES = $(gtk3_demo_SOURCES)
gtk3_demo_EXCLUDES = font_features.c|pagesetup.c
gtk3_demo_application_FILES = $(gtk3_demo_application_SOURCES)
gtk3_demo_application_EXCLUDES = dummy
include $(top_srcdir)/win32/Makefile.msvcproj
dist-hook: \
$(top_builddir)/win32/vs9/gtk3-demo.vcproj \
$(top_builddir)/win32/vs9/gtk3-demo-application.vcproj
DISTCLEANFILES = demos.h demos.h.win32
-include $(top_srcdir)/git.mk
+75
View File
@@ -0,0 +1,75 @@
## These should be in the order you want them to appear in the
## demo app, which means alphabetized by demo title, not filename
demos_base = \
application_demo.c \
assistant.c \
builder.c \
button_box.c \
changedisplay.c \
clipboard.c \
colorsel.c \
combobox.c \
css_accordion.c \
css_basics.c \
css_blendmodes.c \
css_multiplebgs.c \
css_pixbufs.c \
css_shadows.c \
cursors.c \
dialog.c \
drawingarea.c \
editable_cells.c \
entry_buffer.c \
entry_completion.c \
event_axes.c \
expander.c \
filtermodel.c \
fishbowl.c \
foreigndrawing.c \
gestures.c \
glarea.c \
headerbar.c \
hypertext.c \
iconview.c \
iconview_edit.c \
images.c \
infobar.c \
links.c \
listbox.c \
flowbox.c \
list_store.c \
markup.c \
menus.c \
modelbutton.c \
offscreen_window.c \
offscreen_window2.c \
overlay.c \
overlay2.c \
paint.c \
panes.c \
pickers.c \
pixbufs.c \
popover.c \
printing.c \
revealer.c \
rotated_text.c \
scale.c \
search_entry.c \
search_entry2.c \
shortcuts.c \
sidebar.c \
sizegroup.c \
spinbutton.c \
spinner.c \
stack.c \
tabs.c \
textmask.c \
textview.c \
textscroll.c \
theming_style_classes.c \
toolpalette.c \
transparent.c \
tree_store.c
font_features_demo = font_features.c
page_setup_demo = pagesetup.c
+60 -11
View File
@@ -9,10 +9,23 @@
*/
#include <gtk/gtk.h>
#if PANGO_VERSION_CHECK(1,44,0)
# if !HB_VERSION_ATLEAST(2,2,0)
# define FONT_FEATURES_USE_PANGOFT2 1
# endif
#else
# define FONT_FEATURES_USE_PANGOFT2 1
#endif
#ifdef FONT_FEATURES_USE_PANGOFT2
#include <pango/pangofc-font.h>
#include <hb.h>
#include <hb-ot.h>
#include <hb-ft.h>
#else
#include <hb-ot.h>
#endif
static GtkWidget *label;
static GtkWidget *settings;
@@ -205,19 +218,32 @@ static void
update_script_combo (void)
{
GtkListStore *store;
hb_font_t *hb_font;
hb_font_t *hb_font = NULL;
gint i, j, k, l;
FT_Face ft_face;
PangoFont *pango_font;
GHashTable *tags;
GHashTableIter iter;
TagPair *pair;
gboolean cleanup_hb_face = FALSE;
#ifdef FONT_FEATURES_USE_PANGOFT2
FT_Face ft_face;
#endif
store = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT);
pango_font = get_pango_font ();
ft_face = pango_fc_font_lock_face (PANGO_FC_FONT (pango_font)),
hb_font = hb_ft_font_create (ft_face, NULL);
#ifdef FONT_FEATURES_USE_PANGOFT2
if (PANGO_IS_FC_FONT (pango_font))
{
ft_face = pango_fc_font_lock_face (PANGO_FC_FONT (pango_font)),
hb_font = hb_ft_font_create (ft_face, NULL);
cleanup_hb_face = TRUE;
}
#else
hb_font = pango_font_get_hb_font (pango_font);
#endif
tags = g_hash_table_new_full (tag_pair_hash, tag_pair_equal, g_free, NULL);
@@ -264,10 +290,15 @@ update_script_combo (void)
}
}
hb_face_destroy (hb_face);
if (cleanup_hb_face)
hb_face_destroy (hb_face);
}
pango_fc_font_unlock_face (PANGO_FC_FONT (pango_font));
#ifdef FONT_FEATURES_USE_PANGOFT2
if (PANGO_IS_FC_FONT (pango_font))
pango_fc_font_unlock_face (PANGO_FC_FONT (pango_font));
#endif
g_object_unref (pango_font);
g_hash_table_iter_init (&iter, tags);
@@ -346,8 +377,12 @@ update_features (void)
GtkTreeIter iter;
guint script_index, lang_index;
PangoFont *pango_font;
hb_font_t *hb_font = NULL;
gboolean cleanup_hb_face = FALSE;
#ifdef FONT_FEATURES_USE_PANGOFT2
FT_Face ft_face;
hb_font_t *hb_font;
#endif
for (i = 0; i < num_features; i++)
gtk_widget_set_opacity (icon[i], 0);
@@ -364,8 +399,17 @@ update_features (void)
-1);
pango_font = get_pango_font ();
ft_face = pango_fc_font_lock_face (PANGO_FC_FONT (pango_font)),
hb_font = hb_ft_font_create (ft_face, NULL);
#ifdef FONT_FEATURES_USE_PANGOFT2
if (PANGO_IS_FC_FONT (pango_font))
{
ft_face = pango_fc_font_lock_face (PANGO_FC_FONT (pango_font)),
hb_font = hb_ft_font_create (ft_face, NULL);
cleanup_hb_face = TRUE;
}
#else
hb_font = pango_font_get_hb_font (pango_font);
#endif
if (hb_font)
{
@@ -397,10 +441,15 @@ update_features (void)
}
}
hb_face_destroy (hb_face);
if (cleanup_hb_face)
hb_face_destroy (hb_face);
}
pango_fc_font_unlock_face (PANGO_FC_FONT (pango_font));
#ifdef FONT_FEATURES_USE_PANGOFT2
if (PANGO_IS_FC_FONT (pango_font))
pango_fc_font_unlock_face (PANGO_FC_FONT (pango_font));
#endif
g_object_unref (pango_font);
}
+1 -1
View File
@@ -160,7 +160,7 @@ do_gestures (GtkWidget *do_widget)
gtk_container_add (GTK_CONTAINER (window), drawing_area);
gtk_widget_add_events (drawing_area,
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
GDK_POINTER_MOTION_MASK | GDK_TOUCH_MASK);
GDK_POINTER_MOTION_MASK | GDK_TOUCH_MASK | GDK_TOUCHPAD_GESTURE_MASK);
g_signal_connect (drawing_area, "draw",
G_CALLBACK (drawing_area_draw), NULL);
+7 -1
View File
@@ -76,7 +76,13 @@ demos = files([
gtkdemo_deps = [libgtk_dep]
if harfbuzz_dep.found() and pangoft_dep.found()
if pango_dep.version().version_compare('>=1.44.0') and harfbuzz_dep.found() and cc.has_header_symbol(
'hb-ot.h',
'hb_ot_var_get_axis_count',
dependencies: harfbuzz_dep
)
demos += files('font_features.c')
elif harfbuzz_dep.found() and pangoft_dep.found()
demos += files('font_features.c')
gtkdemo_deps += [harfbuzz_dep, pangoft_dep]
endif
-50
View File
@@ -1,50 +0,0 @@
AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_srcdir)/gdk \
-I$(top_builddir)/gdk \
$(GTK_DEBUG_FLAGS) \
$(GTK_DEP_CFLAGS)
LDADD = \
$(top_builddir)/gtk/libgtk-3.la \
$(top_builddir)/gdk/libgdk-3.la \
$(GTK_DEP_LIBS)
bin_PROGRAMS = gtk3-icon-browser
desktopdir = $(datadir)/applications
dist_desktop_DATA = gtk3-icon-browser.desktop
gtk3_icon_browser_SOURCES = \
main.c \
iconbrowserapp.c iconbrowserapp.h \
iconbrowserwin.c iconbrowserwin.h \
iconstore.c iconstore.h \
resources.c
BUILT_SOURCES = \
resources.c
resources.c: iconbrowser.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/iconbrowser.gresource.xml)
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/iconbrowser.gresource.xml \
--target=$@ --sourcedir=$(srcdir) --generate-source
EXTRA_DIST = \
menus.ui \
iconbrowser.gresource.xml \
window.ui \
icon.list \
meson.build
# ------------------- MSVC Build Items ----------------
MSVCPROJS = gtk3-icon-browser
gtk3_icon_browser_FILES = $(gtk3_icon_browser_SOURCES)
gtk3_icon_browser_EXCLUDES = dummy
include $(top_srcdir)/win32/Makefile.msvcproj
dist-hook: $(top_builddir)/win32/vs9/gtk3-icon-browser.vcproj
-include $(top_srcdir)/git.mk
@@ -2,7 +2,6 @@
Name=Icon Browser
Comment=An application that shows themed icons
Exec=gtk3-icon-browser
Icon=gtk3-icon-browser
Terminal=false
Type=Application
StartupNotify=true
-72
View File
@@ -1,72 +0,0 @@
include $(top_srcdir)/Makefile.decl
bin_PROGRAMS = gtk3-widget-factory
desktopdir = $(datadir)/applications
dist_desktop_DATA = gtk3-widget-factory.desktop
gtk3_widget_factory_SOURCES = \
widget-factory.c \
widget_factory_resources.c
BUILT_SOURCES = \
widget_factory_resources.c
gtk3_widget_factory_DEPENDENCIES = \
$(top_builddir)/gtk/libgtk-3.la
gtk3_widget_factory_CPPFLAGS = \
-I$(top_srcdir) \
$(GTK_DEBUG_FLAGS) \
$(GTK_DEP_CFLAGS) \
$(NULL)
gtk3_widget_factory_LDADD = \
$(top_builddir)/gdk/libgdk-3.la \
$(top_builddir)/gtk/libgtk-3.la \
$(GTK_DEP_LIBS) \
$(NULL)
widget_factory_resources.c: widget-factory.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/widget-factory.gresource.xml)
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source $<
iconthemedir = $(datadir)/icons/hicolor
appsicon16dir = $(iconthemedir)/16x16/apps
appsicon22dir = $(iconthemedir)/22x22/apps
appsicon24dir = $(iconthemedir)/24x24/apps
appsicon32dir = $(iconthemedir)/32x32/apps
appsicon48dir = $(iconthemedir)/48x48/apps
appsicon256dir = $(iconthemedir)/256x256/apps
dist_appsicon16_DATA = data/16x16/gtk3-widget-factory.png data/16x16/gtk3-widget-factory-symbolic.symbolic.png
dist_appsicon22_DATA = data/22x22/gtk3-widget-factory.png data/22x22/gtk3-widget-factory-symbolic.symbolic.png
dist_appsicon24_DATA = data/24x24/gtk3-widget-factory.png data/24x24/gtk3-widget-factory-symbolic.symbolic.png
dist_appsicon32_DATA = data/32x32/gtk3-widget-factory.png data/32x32/gtk3-widget-factory-symbolic.symbolic.png
dist_appsicon48_DATA = data/48x48/gtk3-widget-factory.png data/48x48/gtk3-widget-factory-symbolic.symbolic.png
dist_appsicon256_DATA = data/256x256/gtk3-widget-factory.png data/256x256/gtk3-widget-factory-symbolic.symbolic.png
update_icon_cache = $(top_builddir)/gtk/gtk-update-icon-cache$(EXEEXT) --ignore-theme-index --force
install-data-hook: install-update-icon-cache
uninstall-hook: uninstall-update-icon-cache
install-update-icon-cache:
$(AM_V_at)$(POST_INSTALL)
test -n "$(DESTDIR)" || $(update_icon_cache) "$(iconthemedir)"
uninstall-update-icon-cache:
$(AM_V_at)$(POST_UNINSTALL)
test -n "$(DESTDIR)" || $(update_icon_cache) "$(iconthemedir)"
EXTRA_DIST += \
widget-factory.ui \
widget-factory.css \
help-overlay.ui \
widget-factory.gresource.xml \
data/source.svg \
data/symbolic-source.svg \
meson.build
-include $(top_srcdir)/git.mk
-21
View File
@@ -1,21 +0,0 @@
## Process this file with automake to produce Makefile.in
include $(top_srcdir)/Makefile.decl
SUBDIRS = reference tools
EXTRA_DIST += \
CODING-STYLE \
developers.txt \
dnd_internals.txt \
focus_tracking.txt \
iconcache.txt \
RELEASE-HOWTO \
sizing-test.txt \
styles.txt \
text_widget_internals.txt \
tree-column-sizing.png \
tree-column-sizing.txt \
widget_geometry.txt \
widget_system.txt
-include $(top_srcdir)/git.mk
-11
View File
@@ -1,11 +0,0 @@
## Process this file with automake to produce Makefile.in
include $(top_srcdir)/Makefile.decl
SUBDIRS = gdk gtk libgail-util
GITIGNOREFILES = */*.1
EXTRA_DIST += \
meson.build
-include $(top_srcdir)/git.mk
-212
View File
@@ -1,212 +0,0 @@
## Process this file with automake to produce Makefile.in
AUTOMAKE_OPTIONS = 1.6
# The name of the module.
DOC_MODULE=gdk3
# The top-level SGML file.
DOC_MAIN_SGML_FILE=gdk-docs.sgml
# Extra options to supply to gtkdoc-scan
SCAN_OPTIONS=--deprecated-guards=GDK_DISABLE_DEPRECATED \
--ignore-decorators=G_GNUC_WARN_UNUSED_RESULT
# The directory containing the source code. Relative to $(srcdir)
DOC_SOURCE_DIR=$(top_srcdir)/gdk $(top_srcdir)/gdk/x11
# Used for dependencies
HFILE_GLOB=$(top_srcdir)/gdk/*.h $(top_srcdir)/gdk/x11/gdkx.h
CFILE_GLOB=$(top_srcdir)/gdk/*.c
# Header files to ignore when scanning
IGNORE_HFILES= \
gdkintl.h \
gdkmarshalers.h \
gdkkeysyms.h \
gdkinternals.h \
gdkprivate.h \
gdk-private.h \
gdkapplaunchcontextprivate.h \
gdkcursorprivate.h \
gdkdevicemanagerprivate.h \
gdkdeviceprivate.h \
gdkdisplaymanagerprivate.h \
gdkdisplayprivate.h \
gdkdndprivate.h \
gdkframeclockprivate.h \
gdkglcontextprivate.h \
gdkkeysprivate.h \
gdkscreenprivate.h \
gdkseatdefaultprivate.h \
gdkseatprivate.h \
gdkvisualprivate.h \
keyname-table.h \
win32 \
x11 \
quartz \
broadway \
wayland
# Extra files to add when scanning
EXTRA_HFILES= \
$(top_srcdir)/gdk/x11/gdkx.h
# CFLAGS and LDFLAGS for compiling scan program. Only needed
# if $(DOC_MODULE).types is non-empty.
AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_builddir) \
-I$(top_builddir)/gdk \
$(GTK_DEBUG_FLAGS) \
$(GDK_DEP_CFLAGS)
GTKDOC_LIBS = $(top_builddir)/gdk/libgdk-3.la $(GDK_DEP_LIBS)
# Extra options to supply to gtkdoc-mkdb
MKDB_OPTIONS=--output-format=xml --name-space=gdk
# Extra SGML files that are included by DOC_MAIN_SGML_FILE
content_files = \
version.xml
# Images to copy into HTML directory
HTML_IMAGES = \
images/rotated-text.png \
images/X_cursor.png \
images/arrow.png \
images/based_arrow_down.png \
images/based_arrow_up.png \
images/boat.png \
images/bogosity.png \
images/bottom_left_corner.png \
images/bottom_right_corner.png \
images/bottom_side.png \
images/bottom_tee.png \
images/box_spiral.png \
images/center_ptr.png \
images/circle.png \
images/clock.png \
images/coffee_mug.png \
images/cross.png \
images/cross_reverse.png \
images/crosshair.png \
images/diamond_cross.png \
images/dot.png \
images/dotbox.png \
images/double_arrow.png \
images/draft_large.png \
images/draft_small.png \
images/draped_box.png \
images/exchange.png \
images/fleur.png \
images/gobbler.png \
images/gumby.png \
images/hand1.png \
images/hand2.png \
images/heart.png \
images/icon.png \
images/iron_cross.png \
images/left_ptr.png \
images/left_side.png \
images/left_tee.png \
images/leftbutton.png \
images/ll_angle.png \
images/lr_angle.png \
images/man.png \
images/middlebutton.png \
images/mouse.png \
images/pencil.png \
images/pirate.png \
images/plus.png \
images/question_arrow.png \
images/right_ptr.png \
images/right_side.png \
images/right_tee.png \
images/rightbutton.png \
images/rtl_logo.png \
images/sailboat.png \
images/sb_down_arrow.png \
images/sb_h_double_arrow.png \
images/sb_left_arrow.png \
images/sb_right_arrow.png \
images/sb_up_arrow.png \
images/sb_v_double_arrow.png \
images/shuttle.png \
images/sizing.png \
images/spider.png \
images/spraycan.png \
images/star.png \
images/target.png \
images/tcross.png \
images/top_left_arrow.png \
images/top_left_corner.png \
images/top_right_corner.png \
images/top_side.png \
images/top_tee.png \
images/trek.png \
images/ul_angle.png \
images/umbrella.png \
images/ur_angle.png \
images/watch.png \
images/xterm.png \
images/alias_cursor.png \
images/all_scroll_cursor.png \
images/cell_cursor.png \
images/col_resize_cursor.png \
images/copy_cursor.png \
images/crosshair_cursor.png \
images/default_cursor.png \
images/e_resize_cursor.png \
images/ew_resize_cursor.png \
images/grabbing_cursor.png \
images/grab_cursor.png \
images/hand_cursor.png \
images/context_menu_cursor.png \
images/help_cursor.png \
images/move_cursor.png \
images/ne_resize_cursor.png \
images/nesw_resize_cursor.png \
images/no_drop_cursor.png \
images/not_allowed_cursor.png \
images/n_resize_cursor.png \
images/ns_resize_cursor.png \
images/nw_resize_cursor.png \
images/nwse_resize_cursor.png \
images/pointer_cursor.png \
images/progress_cursor.png \
images/row_resize_cursor.png \
images/se_resize_cursor.png \
images/s_resize_cursor.png \
images/sw_resize_cursor.png \
images/text_cursor.png \
images/vertical_text_cursor.png \
images/wait_cursor.png \
images/w_resize_cursor.png \
images/X_cursor.png \
images/zoom_in_cursor.png \
images/zoom_out_cursor.png
if ENABLE_DOC_CROSS_REFERENCES
# Extra options to supply to gtkdoc-fixref
FIXXREF_OPTIONS= \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gobject \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/glib \
--extra-dir=$(CAIRO_PREFIX)/share/gtk-doc/html/cairo
endif
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
EXTRA_DIST += \
version.xml.in \
meson.build
if ENABLE_GTK_DOC
TESTS_ENVIRONMENT = cd $(srcdir) && \
DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
#TESTS = $(GTKDOC_CHECK)
endif
-include $(top_srcdir)/git.mk
+2
View File
@@ -1279,6 +1279,8 @@ GdkWaylandWindowExported
gdk_wayland_window_export_handle
gdk_wayland_window_unexport_handle
gdk_wayland_window_set_transient_for_exported
gdk_wayland_window_add_frame_callback_surface
gdk_wayland_window_remove_frame_callback_surface
<SUBSECTION Standard>
GDK_TYPE_WAYLAND_DEVICE
-562
View File
@@ -1,562 +0,0 @@
## Process this file with automake to produce Makefile.in
AUTOMAKE_OPTIONS = 1.6
# The name of the module.
DOC_MODULE=gtk3
# The top-level SGML file.
DOC_MAIN_SGML_FILE=gtk-docs.sgml
# Extra options to supply to gtkdoc-scan
SCAN_OPTIONS=--deprecated-guards="GTK_ENABLE_BROKEN|GTK_DISABLE_DEPRECATED"
# The directory containing the source code. Relative to $(srcdir)
DOC_SOURCE_DIR=$(top_srcdir)/gtk
# Used for dependencies
HFILE_GLOB=$(top_srcdir)/gtk/*.h
CFILE_GLOB=$(top_srcdir)/gtk/*.c
# Header files to ignore when scanning
IGNORE_HFILES = \
inspector \
a11y \
gtkaccelgroupprivate.h \
gtkaccelmapprivate.h \
gtkadjustmentprivate.h \
gtkallocatedbitmaskprivate.h \
gtkappchooserprivate.h \
gtkapplicationaccelsprivate.h \
gtkapplicationprivate.h \
gtkbindingsprivate.h \
gtkbitmaskprivate.h \
gtkboxprivate.h \
gtkbuilderprivate.h \
gtkbuttonprivate.h \
gtkcairoblurprivate.h \
gtkcellareaboxcontextprivate.h \
gtkclipboardprivate.h \
gtkcolorchooserprivate.h \
gtkcoloreditorprivate.h \
gtkcolorplaneprivate.h \
gtkcolorscaleprivate.h \
gtkcolorswatchprivate.h \
gtkcomboboxprivate.h \
gtkcontainerprivate.h \
gtkcssanimatedstyleprivate.h \
gtkcssanimationprivate.h \
gtkcssarrayvalueprivate.h \
gtkcssbgsizevalueprivate.h \
gtkcssbordervalueprivate.h \
gtkcsscolorvalueprivate.h \
gtkcsscornervalueprivate.h \
gtkcsscustompropertyprivate.h \
gtkcsseasevalueprivate.h \
gtkcssenginevalueprivate.h \
gtkcssenumvalueprivate.h \
gtkcssiconthemevalueprivate.h \
gtkcssimagebuiltinprivate.h \
gtkcssimagecrossfadeprivate.h \
gtkcssimagegradientprivate.h \
gtkcssimageiconthemeprivate.h \
gtkcssimagelinearprivate.h \
gtkcssimageprivate.h \
gtkcssimagescaledprivate.h \
gtkcssimagesurfaceprivate.h \
gtkcssimageurlprivate.h \
gtkcssimagevalueprivate.h \
gtkcssimagewin32private.h \
gtkcssinheritvalueprivate.h \
gtkcssinitialvalueprivate.h \
gtkcsskeyframesprivate.h \
gtkcsslookupprivate.h \
gtkcssmatcherprivate.h \
gtkcssnodeprivate.h \
gtkcssnodedeclarationprivate.h \
gtkcssnumbervalueprivate.h \
gtkcsspathnodeprivate.h \
gtkcssparserprivate.h \
gtkcsspositionvalueprivate.h \
gtkcssproviderprivate.h \
gtkcssrepeatvalueprivate.h \
gtkcssrgbavalueprivate.h \
gtkcsssectionprivate.h \
gtkcssselectorprivate.h \
gtkcssshadowsvalueprivate.h \
gtkcssshadowvalueprivate.h \
gtkcssshorthandpropertyprivate.h\
gtkcssstaticstyleprivate.h \
gtkcssstringvalueprivate.h \
gtkcssstylefuncsprivate.h \
gtkcssstyleprivate.h \
gtkcssstylepropertyprivate.h \
gtkcsstransformvalueprivate.h \
gtkcsstransientnodeprivate.h \
gtkcsstransitionprivate.h \
gtkcsstypedvalueprivate.h \
gtkcsstypesprivate.h \
gtkcssunsetvalueprivate.h \
gtkcssvalueprivate.h \
gtkcsswidgetnodeprivate.h \
gtkdialogprivate.h \
gtkentryprivate.h \
gtkeventcontrollerprivate.h \
gtkfilechooserprivate.h \
gtkfilechooserwidgetprivate.h \
gtkfontchooserprivate.h \
gtkgesturedragprivate.h \
gtkgesturelongpressprivate.h \
gtkgesturemultipressprivate.h \
gtkgesturepanprivate.h \
gtkgestureprivate.h \
gtkgesturerotateprivate.h \
gtkgesturesingleprivate.h \
gtkgestureswipeprivate.h \
gtkgesturezoomprivate.h \
gtkheaderbarprivate.h \
gtkhslaprivate.h \
gtkiconhelperprivate.h \
gtkiconviewprivate.h \
gtkimageprivate.h \
gtkimmoduleprivate.h \
gtklabelprivate.h \
gtklockbuttonprivate.h \
gtkmagnifierprivate.h \
gtkmenubuttonprivate.h \
gtkmenuitemprivate.h \
gtkmenuprivate.h \
gtkmenushellprivate.h \
gtkmodulesprivate.h \
gtkmountoperationprivate.h \
gtkorientableprivate.h \
gtkpixelcacheprivate.h \
gtkplacessidebarprivate.h \
gtkplacesviewprivate.h \
gtkplacesviewrowprivate.h \
gtkpopoverprivate.h \
gtkprinter-private.h \
gtkprintoperation-private.h \
gtkprivate.h \
gtkrangeprivate.h \
gtkrecentchooserprivate.h \
gtkrenderbackgroundprivate.h \
gtkrenderborderprivate.h \
gtkrendericonprivate.h \
gtkrenderprivate.h \
gtkroundedboxprivate.h \
gtkscaleprivate.h \
gtksearchengine.h \
gtksearchenginemodel.h \
gtksearchenginequartz.h \
gtksearchenginesimple.h \
gtksearchenginetracker.h \
gtksearchentryprivate.h \
gtkselectionprivate.h \
gtksettingsprivate.h \
gtksidebarrowprivate.h \
gtksizegroup-private.h \
gtksizerequestcacheprivate.h \
gtksocketprivate.h \
gtkstyleanimationprivate.h \
gtkstylecascadeprivate.h \
gtkstylecontextprivate.h \
gtkstylepropertyprivate.h \
gtkstyleproviderprivate.h \
gtktextattributesprivate.h \
gtktextchildprivate.h \
gtktexthandleprivate.h \
gtktextiterprivate.h \
gtktextmarkprivate.h \
gtktexttagprivate.h \
gtktogglebuttonprivate.h \
gtktoolbarprivate.h \
gtktoolpaletteprivate.h \
gtktooltipprivate.h \
gtktooltipwindowprivate.h \
gtktreeprivate.h \
gtkwidgetprivate.h \
gtkwin32themeprivate.h \
gtkwindowprivate.h \
fnmatch.h \
gtkactionmuxer.h \
gtkactionobserver.h \
gtkactionobservable.h \
gtk9slice.h \
gtkanimationdescription.h \
gtkbitmaskprivateimpl.h \
gtkbookmarksmanager.h \
gtkdbusgenerated.c \
gtkdbusgenerated.h \
gtkdebug.h \
gtkactionhelper.h \
gtkdndcursors.h \
gtkfilechooserdefault.h \
gtkfilechooserembed.h \
gtkfilechooserentry.h \
gtkfilechoosersettings.h \
gtkfilechooserutils.h \
gtkfilesystem.h \
gtkfilesystemmodel.h \
gtkfilesystemunix.h \
gtkfilesystemwin32.h \
gtkfontchooserutils.h \
gtkiconcache.h \
gtkiconcachevalidator.h \
gtkiconthemeparser.h \
gtkintl.h \
gtkkeyhash.h \
gtkkineticscrolling.h \
gtkmarshal.h \
gtkmnemonichash.h \
gtkmenutracker.h \
gtkmenutrackeritem.h \
gtkmenusectionbox.h \
gtkmodelmenu.h \
gtkmodelmenuitem.h \
gtkmodifierstyle.h \
gtkpathbar.h \
gtkprintbackend.h \
gtkprinteroption.h \
gtkprinteroptionset.h \
gtkprinteroptionwidget.h \
gtkprint-win32.h \
gtkprintutils.h \
gtkprivate.h \
gtkprivatetypebuiltins.h \
gtkquery.h \
gtkrbtree.h \
gtkrecentchooserdefault.h \
gtkrecentchooserutils.h \
gtksearchengine.h \
gtksearchenginetracker.h \
gtksearchenginesimple.h \
gtksearchenginequartz.h \
gtksequence.h \
gtksocketprivate.h \
gtktextbtree.h \
gtktextbufferserialize.h \
gtktextdisplay.h \
gtktextlayout.h \
gtktextsegment.h \
gtktexttypes.h \
gtktextutil.h \
gtktimeline.h \
gtkthemes.h \
gtktrashmonitor.h \
gtktrayicon.h \
gtktreedatalist.h \
gtktreemenu.h \
gtktypebuiltins.h \
gtkxembed.h \
gtkwin32embed.h \
gtkwin32embedwidget.h \
gtkwindow-decorate.h \
xdgmime \
xembed.h
# CFLAGS and LDFLAGS for compiling scan program. Only needed
# if $(DOC_MODULE).types is non-empty.
AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_builddir) \
-I$(top_builddir)/gdk \
-DGTK_ENABLE_BROKEN \
-Wno-deprecated-declarations \
$(GTK_DEBUG_FLAGS) \
$(GTK_DEP_CFLAGS)
CPPFLAGS += \
-UGTK_DISABLE_SINGLE_INCLUDES
GTKDOC_LIBS = \
$(top_builddir)/gdk/libgdk-3.la \
$(top_builddir)/gtk/libgtk-3.la \
$(GTK_DEP_LIBS)
# Extra options to supply to gtkdoc-mkdb
MKDB_OPTIONS=--output-format=xml --name-space=gtk --default-includes=gtk/gtk.h
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE)
content_files = \
broadway.xml \
broadwayd.xml \
building.sgml \
compiling.sgml \
css-overview.xml \
css-properties.xml \
drawing-model.xml \
$(builddir)/getting_started.xml \
glossary.xml \
gtk3-demo-application.xml \
gtk3-demo.xml \
gtk3-icon-browser.xml \
gtk3-widget-factory.xml \
gtk-builder-tool.xml \
gtk-encode-symbolic-svg.xml \
gtk-launch.xml \
gtk-query-immodules-3.0.xml \
gtk-query-settings.xml \
gtk-update-icon-cache.xml \
input-handling.xml \
migrating-2to3.xml \
migrating-3xtoy.xml \
migrating-checklist.sgml \
migrating-GtkGrid.xml \
migrating-GtkStyleContext.xml \
migrating-smclient-GtkApplication.xml \
migrating-unique-GtkApplication.xml \
osx.sgml \
overview.xml \
question_index.sgml \
resources.sgml \
running.sgml \
text_widget.sgml \
tree_widget.sgml \
version.xml \
visual_index.xml \
wayland.xml \
windows.sgml \
x11.sgml
expand_content_files = \
compiling.sgml \
drawing-model.xml \
$(builddir)/getting_started.xml \
glossary.xml \
input-handling.xml \
migrating-2to3.xml \
migrating-3xtoy.xml \
migrating-checklist.sgml \
migrating-GtkGrid.xml \
migrating-GtkStyleContext.xml \
migrating-smclient-GtkApplication.xml \
migrating-unique-GtkApplication.xml \
question_index.sgml \
text_widget.sgml \
tree_widget.sgml
# Images to copy into HTML directory
HTML_IMAGES = \
$(srcdir)/images/aboutdialog.png \
$(srcdir)/images/accel-label.png \
$(srcdir)/images/action-bar.png \
$(srcdir)/images/appchooserbutton.png \
$(srcdir)/images/appchooserdialog.png \
$(srcdir)/images/assistant.png \
$(srcdir)/images/box-packing.png \
$(srcdir)/images/box-expand.png \
$(srcdir)/images/button.png \
$(srcdir)/images/check-button.png \
$(srcdir)/images/color-button.png \
$(srcdir)/images/colorchooser.png \
$(srcdir)/images/combo-box.png \
$(srcdir)/images/combo-box-entry.png \
$(srcdir)/images/combo-box-text.png \
$(srcdir)/images/entry.png \
$(srcdir)/images/figure-hierarchical-drawing.png \
$(srcdir)/images/figure-windowed-label.png \
$(srcdir)/images/file-button.png \
$(srcdir)/images/filechooser.png \
$(srcdir)/images/font-button.png \
$(srcdir)/images/fontchooser.png \
$(srcdir)/images/frame.png \
$(srcdir)/images/glarea.png \
$(srcdir)/images/headerbar.png \
$(srcdir)/images/icon-view.png \
$(srcdir)/images/image.png \
$(srcdir)/images/info-bar.png \
$(srcdir)/images/label.png \
$(srcdir)/images/levelbar.png \
$(srcdir)/images/link-button.png \
$(srcdir)/images/list-and-tree.png \
$(srcdir)/images/lock-button.png \
$(srcdir)/images/lockbutton.png \
$(srcdir)/images/lockbutton-locked.png \
$(srcdir)/images/lockbutton-unlocked.png \
$(srcdir)/images/lockbutton-sorry.png \
$(srcdir)/images/menubar.png \
$(srcdir)/images/menu-button.png \
$(srcdir)/images/messagedialog.png \
$(srcdir)/images/multiline-text.png \
$(srcdir)/images/notebook.png \
$(srcdir)/images/panes.png \
$(srcdir)/images/pagesetupdialog.png \
$(srcdir)/images/placessidebar.png \
$(srcdir)/images/popup-anchors.png \
$(srcdir)/images/popup-at.svg \
$(srcdir)/images/popup-flip.png \
$(srcdir)/images/popup-slide.png \
$(srcdir)/images/printdialog.png \
$(srcdir)/images/progressbar.png \
$(srcdir)/images/radio-group.png \
$(srcdir)/images/recentchooserdialog.png \
$(srcdir)/images/scales.png \
$(srcdir)/images/scrollbar.png \
$(srcdir)/images/scrolledwindow.png \
$(srcdir)/images/search-bar.png \
$(srcdir)/images/search-entry.png \
$(srcdir)/images/separator.png \
$(srcdir)/images/sidebar.png \
$(srcdir)/images/spinbutton.png \
$(srcdir)/images/spinner.png \
$(srcdir)/images/stack.png \
$(srcdir)/images/stackswitcher.png \
$(srcdir)/images/statusbar.png \
$(srcdir)/images/toggle-button.png \
$(srcdir)/images/toolbar.png \
$(srcdir)/images/toolpalette.png \
$(srcdir)/images/tree-view-coordinates.png \
$(srcdir)/images/volumebutton.png \
$(srcdir)/images/window.png \
$(srcdir)/images/layout-btlr.png \
$(srcdir)/images/layout-btrl.png \
$(srcdir)/images/layout-lrbt.png \
$(srcdir)/images/layout-lrtb.png \
$(srcdir)/images/layout-rlbt.png \
$(srcdir)/images/layout-rltb.png \
$(srcdir)/images/layout-tblr.png \
$(srcdir)/images/layout-tbrl.png \
$(srcdir)/images/widget-hvalign.png \
$(srcdir)/images/window-default.png \
$(srcdir)/images/hello-world.png \
$(srcdir)/images/grid-packing.png \
$(srcdir)/images/drawing.png \
$(srcdir)/images/switch.png \
$(srcdir)/images/linear.png \
$(srcdir)/images/ease.png \
$(srcdir)/images/ease-in-out.png \
$(srcdir)/images/ease-in.png \
$(srcdir)/images/ease-out.png \
$(srcdir)/images/gradient1.png \
$(srcdir)/images/gradient2.png \
$(srcdir)/images/gradient3.png \
$(srcdir)/images/gradient4.png \
$(srcdir)/images/border1.png \
$(srcdir)/images/border2.png \
$(srcdir)/images/border3.png \
$(srcdir)/images/slices.png \
$(srcdir)/images/checks.png \
$(srcdir)/images/options.png \
$(srcdir)/images/arrows.png \
$(srcdir)/images/expanders.png \
$(srcdir)/images/background.png \
$(srcdir)/images/frames.png \
$(srcdir)/images/frame-gap.png \
$(srcdir)/images/sliders.png \
$(srcdir)/images/focus.png \
$(srcdir)/images/handles.png \
$(srcdir)/images/extensions.png \
$(srcdir)/images/numerableicon.png \
$(srcdir)/images/numerableicon2.png \
$(srcdir)/images/bloatpad-osx.png \
$(srcdir)/images/bloatpad-gnome.png \
$(srcdir)/images/bloatpad-xfce.png \
$(srcdir)/images/down-center.png \
$(srcdir)/images/down-end.png \
$(srcdir)/images/down-start.png \
$(srcdir)/images/left-center.png \
$(srcdir)/images/left-end.png \
$(srcdir)/images/left-start.png \
$(srcdir)/images/right-center.png \
$(srcdir)/images/right-end.png \
$(srcdir)/images/right-start.png \
$(srcdir)/images/up-center.png \
$(srcdir)/images/up-end.png \
$(srcdir)/images/up-start.png \
$(srcdir)/images/list-box.png \
$(srcdir)/images/getting-started-app1.png \
$(srcdir)/images/getting-started-app2.png \
$(srcdir)/images/getting-started-app3.png \
$(srcdir)/images/getting-started-app4.png \
$(srcdir)/images/getting-started-app6.png \
$(srcdir)/images/getting-started-app7.png \
$(srcdir)/images/getting-started-app8.png \
$(srcdir)/images/getting-started-app9.png \
$(srcdir)/images/getting-started-app10.png \
$(srcdir)/images/exampleapp.png \
$(srcdir)/images/flow-box.png \
$(srcdir)/images/inspector.png \
$(srcdir)/images/gedit-shortcuts.png \
$(srcdir)/images/clocks-shortcuts.png \
$(srcdir)/images/builder-shortcuts.png
if ENABLE_DOC_CROSS_REFERENCES
# Extra options to supply to gtkdoc-fixref
FIXXREF_OPTIONS=--extra-dir=../gdk/html \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gobject \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/glib \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gio \
--extra-dir=$(ATK_PREFIX)/share/gtk-doc/html/atk \
--extra-dir=$(PANGO_PREFIX)/share/gtk-doc/html/pango \
--extra-dir=$(CAIRO_PREFIX)/share/gtk-doc/html/cairo
endif
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
EXTRA_DIST += version.xml.in gtk3.types.in getting_started.xml.in
########################################################################
man_MANS = \
gtk-query-immodules-3.0.1 \
gtk-update-icon-cache.1 \
gtk-encode-symbolic-svg.1 \
gtk-launch.1 \
gtk3-demo.1 \
gtk3-demo-application.1 \
gtk3-widget-factory.1 \
gtk3-icon-browser.1 \
broadwayd.1 \
gtk-builder-tool.1 \
gtk-query-settings.1
if ENABLE_MAN
XSLTPROC_FLAGS = \
--nonet \
--stringparam man.output.quietly 1 \
--stringparam funcsynopsis.style ansi \
--stringparam man.th.extra1.suppress 1 \
--stringparam man.authors.section.enabled 0 \
--stringparam man.copyright.section.enabled 0
.xml.1:
$(AM_V_GEN) $(XSLTPROC) $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
dist-local-check-mans-enabled:
if grep "Man generation disabled" $(man_MANS) >/dev/null; then $(RM) $(man_MANS); fi
else
$(man_MANS):
echo Man generation disabled. Creating dummy $@. Configure with --enable-man to enable it.
echo Man generation disabled. Remove this file, configure with --enable-man, and rebuild > $@
dist-local-check-mans-enabled:
echo "*** --enable-man must be used in order to make dist"
false
endif
MAINTAINERCLEANFILES = $(man_MANS) $(BUILT_SOURCES)
EXTRA_DIST += \
$(man_MANS) \
meson.build
if ENABLE_GTK_DOC
TESTS_ENVIRONMENT = cd $(srcdir) && \
DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
#TESTS = $(GTKDOC_CHECK)
endif
dist-hook-local: dist-local-check-mans-enabled all-local
gtk-docs-clean: clean
cd $(srcdir) && rm -rf xml html
-include $(top_srcdir)/git.mk
+72 -306
View File
@@ -35,64 +35,37 @@ How to compile GTK+ itself
already.
</para>
<para>
On UNIX-like systems GTK+ uses the standard GNU build system,
using <application>autoconf</application> for package
configuration and resolving portability issues,
<application>automake</application> for building makefiles that
comply with the GNU Coding Standards, and
<application>libtool</application> for building shared libraries
on multiple platforms.
</para>
<para>
If you are building GTK+ from the distributed source packages,
then you won't need these tools installed; the necessary pieces
of the tools are already included in the source packages. But
it's useful to know a bit about how packages that use these
tools work. A source package is distributed as a
<literal>tar.bz2</literal> or <literal>tar.xz</literal> file
which you unpack into a directory full of the source files as follows:
On all supported platforms, GTK+ uses the Meson build system.
</para>
<programlisting>
tar xvfj gtk+-3.2.0.tar.bz2
tar xvfJ gtk+-3.2.0.tar.xz
tar xvfJ gtk+-3.24.0.tar.xz
</programlisting>
<para>
In the toplevel directory that is created, there will be
a shell script called <filename>configure</filename> which
you then run to take the template makefiles called
<filename>Makefile.in</filename> in the package and create
makefiles customized for your operating system.
The <filename>configure</filename> script can be passed
various command line arguments to determine how the package
is built and installed. The most commonly useful argument is
the <systemitem>--prefix</systemitem> argument which
determines where the package is installed. To install a package
in <filename>/opt/gtk</filename> you would run configure as:
Once you have extracted the files from the release archive, and
you entered the source directory, you can use the <command>meson</command>
command to configure the project.
</para>
<programlisting>
./configure --prefix=/opt/gtk
meson setup --prefix=/opt/gtk _builddir .
</programlisting>
<para>
A full list of options can be found by running
<filename>configure</filename> with the
<systemitem>--help</systemitem> argument. In general, the defaults are
right and should be trusted. After you've run
<filename>configure</filename>, you then run the
<command>make</command> command to build the package and install
it.
<command>meson configure</command> from within the build directory.
In general, the defaults are right and should be trusted.
</para>
<para>
After you've run <command>meson setup</command>, you then run the
<command>meson compile</command> command to build the project and
install it.
</para>
<programlisting>
make
make install
meson compile -C _builddir
meson install -C _builddir
</programlisting>
<para>
If you don't have permission to write to the directory you are
installing in, you may have to change to root temporarily before
running <literal>make install</literal>. Also, if you are
installing in a system directory, on some systems (such as
Linux), you will need to run <command>ldconfig</command> after
<literal>make install</literal> so that the newly installed
libraries will be found.
running <command>meson install</command>.
</para>
<para>
Several environment variables are useful to pass to set before
@@ -131,10 +104,10 @@ How to compile GTK+ itself
<para>
Before you can compile the GTK+ widget toolkit, you need to have
various other tools and libraries installed on your
system. The two tools needed during the build process (as
system. The main tool needed during the build process (as
differentiated from the tools used in when creating GTK+
mentioned above such as <application>autoconf</application>)
are <command>pkg-config</command> and GNU make.
mentioned above such as <application>meson</application>)
is <command>pkg-config</command>.
</para>
<itemizedlist>
<listitem>
@@ -148,17 +121,6 @@ How to compile GTK+ itself
needed for that library along with version number information.)
</para>
</listitem>
<listitem>
<para>
The GTK+ makefiles will mostly work with different versions
of <command>make</command>, however, there tends to be
a few incompatibilities, so the GTK+ team recommends
installing <ulink url="https://www.gnu.org/software/make">GNU
make</ulink> if you don't already have it on your system
and using it. (It may be called <command>gmake</command>
rather than <command>make</command>.)
</para>
</listitem>
</itemizedlist>
<para>
Some of the libraries that GTK+ depends on are maintained by
@@ -168,17 +130,15 @@ How to compile GTK+ itself
<itemizedlist>
<listitem>
<para>
The GLib library provides core non-graphical functionality
such as high level data types, Unicode manipulation, and
an object and type system to C programs. It is available
from the <ulink url="https://ftp.gtk.org/pub/glib/">GTK+
FTP site</ulink> or
<ulink url="https://download.gnome.org/sources/glib/">here</ulink>.
The <ulink url="https://gitlab.gnome.org/GNOME/glib">GLib library</ulink>
provides core non-graphical functionality such as high level data types,
Unicode manipulation, and an object and type system to C programs. It is
available <ulink url="https://download.gnome.org/sources/glib/">here</ulink>.
</para>
</listitem>
<listitem>
<para>
The <ulink url="https://git.gnome.org/browse/gdk-pixbuf/">GdkPixbuf library</ulink>
The <ulink url="https://gitlab.gnome.org/GNOME/gdk-pixbuf/">GdkPixbuf library</ulink>
provides facilities for loading images in a variety of file formats.
It is available
<ulink url="https://download.gnome.org/sources/gdk-pixbuf/">here</ulink>.
@@ -186,14 +146,15 @@ How to compile GTK+ itself
</listitem>
<listitem>
<para>
<ulink url="http://www.pango.org">Pango</ulink> is a library
<ulink url="https://gitlab.gnome.org/GNOME/pango">Pango</ulink> is a library
for internationalized text handling. It is available
<ulink url="https://download.gnome.org/sources/pango/">here</ulink>.
</para>
</listitem>
<listitem>
<para>
ATK is the Accessibility Toolkit. It provides a set of generic
<ulink url="https://gitlab.gnome.org/GNOME/atk">ATK</ulink> is the
Accessibility Toolkit. It provides a set of generic
interfaces allowing accessibility technologies such as
screen readers to interact with a graphical user interface.
It is available
@@ -202,7 +163,7 @@ How to compile GTK+ itself
</listitem>
<listitem>
<para>
<ulink url="https://wiki.gnome.org/Projects/GObjectIntrospection">Gobject Introspection</ulink>
<ulink url="https://gitlab.gnome.org/GNOME/gobject-introspection">Gobject Introspection</ulink>
is a framework for making introspection data available to
language bindings. It is available
<ulink url="https://download.gnome.org/sources/gobject-introspection/">here</ulink>.
@@ -304,244 +265,80 @@ How to compile GTK+ itself
GTK+ installs.
</para>
<para>
If one of the <filename>configure</filename> scripts fails or running
<command>make</command> fails, look closely at the error
messages printed; these will often provide useful information
as to what went wrong. When <filename>configure</filename>
fails, extra information, such as errors that a test compilation
ran into, is found in the file <filename>config.log</filename>.
Looking at the last couple of hundred lines in this file will
frequently make clear what went wrong. If all else fails, you
can ask for help on the gtk-list mailing list.
See <xref linkend="gtk-resources"/> for more information.
If either the <command>meson setup</command> or the
<command>meson compile</command> commands fail, look closely
at the error messages printed; these will often provide useful
information as to what went wrong.
</para>
</refsect1>
<refsect1 id="extra-configuration-options">
<refsect1 id="extra-configuration-options">
<title>Extra Configuration Options</title>
<para>
In addition to the normal options, the
<command>configure</command> script for the GTK+ library
supports a number of additional arguments. (Command line
arguments for the other GTK+ libraries are described in
the documentation distributed with the those libraries.)
In addition to the standard <command>meson</command> options
when configuring the GTK+ project, you have a number of
additional arguments. (Command line arguments for the other
libraries are described in the documentation distributed with
the those libraries.)
<cmdsynopsis>
<command>configure</command>
<command>meson setup</command>
<sbr/>
<group>
<arg choice="plain">--disable-modules</arg>
<arg choice="plain">--enable-modules</arg>
<arg choice="plain">-Dxinerama=[yes/no/auto]</arg>
</group>
<sbr/>
<group>
<arg>--with-included-immodules=MODULE1,MODULE2,...</arg>
<arg choice="plain">-Dgtk_doc=[false/true]</arg>
</group>
<sbr/>
<group>
<arg choice="plain">--enable-debug=[no/minimum/yes]</arg>
<arg choice="plain">-Dprint_backends=["cups,file,lpr,papi,test,auto"]</arg>
</group>
<sbr/>
<group>
<arg choice="plain">--disable-Bsymbolic</arg>
<arg choice="plain">--enable-Bsymbolic</arg>
<arg choice="plain">-Dx11_backend=[false/true]</arg>
</group>
<sbr/>
<group>
<arg choice="plain">--disable-xkb</arg>
<arg choice="plain">--enable-xkb</arg>
<arg choice="plain">-Dwin32_backend=[false/true]</arg>
</group>
<sbr/>
<group>
<arg choice="plain">--disable-xinerama</arg>
<arg choice="plain">--enable-xinerama</arg>
<arg choice="plain">-Dquartz_backend=[false/true]</arg>
</group>
<sbr/>
<group>
<arg choice="plain">--disable-gtk-doc</arg>
<arg choice="plain">--enable-gtk-doc</arg>
<arg choice="plain">-Dbroadway_backend=[false/true]</arg>
</group>
<sbr/>
<group>
<arg choice="plain">--disable-cups</arg>
<arg choice="plain">--enable-cups</arg>
<arg choice="plain">-Dwayland_backend=[false/true]</arg>
</group>
<sbr/>
<group>
<arg choice="plain">--disable-papi</arg>
<arg choice="plain">--enable-papi</arg>
<arg choice="plain">-Dintrospection=[false/true]</arg>
</group>
<sbr/>
<group>
<arg choice="plain">--enable-xinput</arg>
<arg choice="plain">--disable-xinput</arg>
</group>
<sbr/>
<group>
<arg choice="plain">--enable-packagekit</arg>
<arg choice="plain">--disable-packagekit</arg>
</group>
<sbr/>
<group>
<arg choice="plain">--enable-x11-backend</arg>
<arg choice="plain">--disable-x11-backend</arg>
</group>
<sbr/>
<group>
<arg choice="plain">--enable-win32-backend</arg>
<arg choice="plain">--disable-win32-backend</arg>
</group>
<sbr/>
<group>
<arg choice="plain">--enable-quartz-backend</arg>
<arg choice="plain">--disable-quartz-backend</arg>
</group>
<sbr/>
<group>
<arg choice="plain">--enable-broadway-backend</arg>
<arg choice="plain">--disable-broadway-backend</arg>
</group>
<sbr/>
<group>
<arg choice="plain">--enable-wayland-backend</arg>
<arg choice="plain">--disable-wayland-backend</arg>
</group>
<sbr/>
<group>
<arg choice="plain">--enable-introspection=[no/auto/yes]</arg>
</group>
<sbr/>
<group>
<arg choice="plain">--enable-installed-tests</arg>
<arg choice="plain">--disable-installed-tests</arg>
<arg choice="plain">-Dinstalled_tests=[false/true]</arg>
</group>
</cmdsynopsis>
</para>
<formalpara>
<title><systemitem>--disable-modules</systemitem> and
<systemitem>--enable-modules</systemitem></title>
<title><systemitem>-Dxinerama</systemitem></title>
<para>
Normally GTK+ will try to build the input method modules
as little shared libraries that are loaded on demand.
The <systemitem>--disable-modules</systemitem> argument
indicates that they should all be built statically
into the GTK+ library instead. This is useful for
people who need to produce statically-linked binaries.
If neither <systemitem>--disable-modules</systemitem> nor
<systemitem>--enable-modules</systemitem> is specified,
then the <command>configure</command> script will try to
auto-detect whether shared modules work on your system.
By default GTK will try to link against the Xinerama libraries
if they are found. This option can be used to explicitly control
whether Xinerama should be used.
</para>
</formalpara>
<formalpara>
<title><systemitem>--with-included-immodules</systemitem></title>
<para>
This option allows you to specify which input method modules you
want to include directly into the GTK+ shared library, as opposed
to building them as loadable modules.
</para>
</formalpara>
<formalpara>
<title><systemitem>--enable-debug</systemitem></title>
<para>
Turns on various amounts of debugging support. Setting this to
'no' disables g_assert(), g_return_if_fail(), g_return_val_if_fail() and all cast checks between different object types. Setting it
to 'minimum' disables only cast checks. Setting it to 'yes' enables
<link linkend="GTK-Debug-Options">runtime debugging</link>.
The default is 'minimum'.
Note that 'no' is fast, but dangerous as it tends to destabilize
even mostly bug-free software by changing the effect of many bugs
from simple warnings into fatal crashes. Thus
<option>--enable-debug=no</option> should <emphasis>not</emphasis>
be used for stable releases of GTK+.
</para>
</formalpara>
<formalpara>
<title><systemitem>--disable-Bsymbolic</systemitem> and
<systemitem>--enable-Bsymbolic</systemitem></title>
<para>
The option <systemitem>--disable-Bsymbolic</systemitem>
turns off the use of the -Bsymbolic-functions linker flag.
This is only necessary if you want to override GTK+ functions
by using <envar>LD_PRELOAD</envar>.
</para>
</formalpara>
<formalpara>
<title><systemitem>--enable-explicit-deps</systemitem> and
<systemitem>--disable-explicit-deps</systemitem></title>
<para>
If <systemitem>--enable-explicit-deps</systemitem> is
specified then GTK+ will write the full set of libraries
that GTK+ depends upon into its <literal>.pc</literal> files to be used when
programs depending on GTK+ are linked. Otherwise, GTK+
only will include the GTK+ libraries themselves, and
will depend on system library dependency facilities to
bring in the other libraries.
By default GTK+ will disable explicit dependencies unless
it detects that they are needed on the system. (If you
specify <systemitem>--enable-static</systemitem> to force
building of static libraries, then explicit dependencies
will be written since library dependencies don't work
for static libraries.) Specifying
<systemitem>--enable-explicit-deps</systemitem> or
<systemitem>--enable-static</systemitem> can cause
compatibility
problems when libraries that GTK+ depends upon change
their versions, and should be avoided if possible.
</para>
</formalpara>
<formalpara>
<title><systemitem>--disable-xkb</systemitem> and
<systemitem>--enable-xkb</systemitem></title>
<para>
By default the <command>configure</command> script will try
to auto-detect whether the XKB extension is supported by
the X libraries GTK+ is linked with.
These options can be used to explicitly control whether
GTK+ will support the XKB extension.
</para>
</formalpara>
<formalpara>
<title><systemitem>--disable-xinerama</systemitem> and
<systemitem>--enable-xinerama</systemitem></title>
<para>
By default the <command>configure</command> script will try
to link against the Xinerama libraries if they are found.
These options can be used to explicitly control whether
Xinerama should be used.
</para>
</formalpara>
<formalpara>
<title><systemitem>--disable-xinput</systemitem> and
<systemitem>--enable-xinput</systemitem></title>
<para>
Controls whether GTK+ is built with support for the XInput
or XInput2 extension. These extensions provide an extended
interface to input devices such as graphics tablets.
When this support is compiled in, specially written
GTK+ programs can get access to subpixel positions,
multiple simultaneous input devices, and extra "axes"
provided by the device such as pressure and tilt
information.
</para>
</formalpara>
<formalpara>
<title><systemitem>--disable-gtk-doc</systemitem> and
<systemitem>--enable-gtk-doc</systemitem></title>
<title><systemitem>-Dgtk_doc</systemitem></title>
<para>
The <application>gtk-doc</application> package is
@@ -552,88 +349,57 @@ How to compile GTK+ itself
<application>gtk-doc</application> installed and
are modifying GTK+, you may want to enable
<application>gtk-doc</application> support by passing
in <systemitem>--enable-gtk-doc</systemitem>. If not
in <systemitem>-Dgtk_doc=true</systemitem>. If not
enabled, pre-generated HTML files distributed with GTK+
will be installed.
</para>
</formalpara>
<formalpara>
<title><systemitem>--disable-cups</systemitem> and
<systemitem>--enable-cups</systemitem></title>
<title><systemitem>-Dprint_backends</systemitem></title>
<para>
By default the <command>configure</command> script will try
to build the cups print backend if the cups libraries are found.
These options can be used to explicitly control whether
the cups print backend should be built.
By default GTK will try to build the appropriate print backend
for the system. You can specify the print backends manually to
explicitly control which backends should be build.
</para>
</formalpara>
<formalpara>
<title><systemitem>--disable-papi</systemitem> and
<systemitem>--enable-papi</systemitem></title>
<title><systemitem>-Dx11_backend</systemitem>,
<systemitem>-Dwin32_backend</systemitem>,
<systemitem>-Dquartz_backend</systemitem>,
<systemitem>-Dbroadway_backend</systemitem>,
<systemitem>-Dwayland_backend</systemitem></title>
<para>
By default the <command>configure</command> script will try
to build the papi print backend if the papi libraries are found.
These options can be used to explicitly control whether
the papi print backend should be built.
</para>
</formalpara>
<formalpara>
<title><systemitem>--disable-packagekit</systemitem> and
<systemitem>--enable-packagekit</systemitem></title>
<para>
By default the <command>configure</command> script will try
to build the PackageKit support for the open-with dialog if
the PackageKit libraries are found.
These options can be used to explicitly control whether
PackageKit support should be built.
</para>
</formalpara>
<formalpara>
<title><systemitem>--enable-x11-backend</systemitem>,
<systemitem>--disable-x11-backend</systemitem>,
<systemitem>--enable-win32-backend</systemitem>,
<systemitem>--disable-win32-backend</systemitem>,
<systemitem>--enable-quartz-backend</systemitem>,
<systemitem>--disable-quartz-backend</systemitem>,
<systemitem>--enable-broadway-backend</systemitem>,
<systemitem>--disable-broadway-backend</systemitem>,
<systemitem>--enable-wayland-backend</systemitem>,
<systemitem>--disable-wayland-backend</systemitem></title>
<para>
Enables specific backends for GDK. If none of these options
Enable specific backends for GDK. If none of these options
are given, the x11 backend will be enabled by default,
unless the platform is Windows, in which case the default is
win32. If any backend is explicitly enabled or disabled, no
other platform will be enabled automatically. Other
supported backends are the quartz backend for OS X.
supported backends are the quartz backend for macOS, and the
HTML-based Broadway backend.
</para>
</formalpara>
<formalpara>
<title><systemitem>--enable-introspection</systemitem></title>
<title><systemitem>-Dintrospection</systemitem></title>
<para>
Build with or without introspection support.
The default is 'auto'.
The default is 'true'.
</para>
</formalpara>
<formalpara>
<title><systemitem>--enable-installed-tests</systemitem> or
<systemitem>--disable-installed-tests</systemitem></title>
<title><systemitem>-Dinstalled-tests</systemitem></title>
<para>
Whether to install tests on the system. If enabled, tests
and their data are installed in <filename>${libexecdir}/gtk+/installed-tests</filename>.
Metadata for the tests is installed in <filename>${prefix}/share/installed-tests/gtk+</filename>.
To run the installed tests, gnome-desktop-testing-runner
To run the installed tests, <command>gnome-desktop-testing-runner</command>
can be used.
</para>
</formalpara>
+10 -10
View File
@@ -450,7 +450,7 @@ example_app_window_class_init (ExampleAppWindowClass *class)
...
]]></programlisting>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application2/exampleappwin.c">full source</ulink>)</para>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/examples/application2/exampleappwin.c">full source</ulink>)</para>
</informalexample>
<para>You may have noticed that we used the <literal>_from_resource(<!-- -->)</literal> variant
@@ -518,7 +518,7 @@ example_app_window_class_init (ExampleAppWindowClass *class)
...
]]></programlisting>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application3/exampleappwin.c">full source</ulink>)</para>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/examples/application3/exampleappwin.c">full source</ulink>)</para>
</informalexample>
<para>Now we revisit the example_app_window_open() function that
@@ -567,7 +567,7 @@ example_app_window_open (ExampleAppWindow *win,
...
]]></programlisting>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application3/exampleappwin.c">full source</ulink>)</para>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/examples/application3/exampleappwin.c">full source</ulink>)</para>
</informalexample>
<para>Note that we did not have to touch the stack switcher
@@ -665,7 +665,7 @@ example_app_class_init (ExampleAppClass *class)
...
</programlisting>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application4/exampleapp.c">full source</ulink>)</para>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/examples/application4/exampleapp.c">full source</ulink>)</para>
</informalexample>
<para>Our preferences menu item does not do anything yet,
@@ -731,7 +731,7 @@ example_app_window_init (ExampleAppWindow *win)
...
]]></programlisting>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application5/exampleappwin.c">full source</ulink>)</para>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/examples/application5/exampleappwin.c">full source</ulink>)</para>
</informalexample>
<para>The code to connect the font setting is a little more involved,
@@ -780,7 +780,7 @@ preferences_activated (GSimpleAction *action,
...
]]></programlisting>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application6/exampleapp.c">full source</ulink>)</para>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/examples/application6/exampleapp.c">full source</ulink>)</para>
</informalexample>
<para>After all this work, our application can now show
@@ -866,7 +866,7 @@ example_app_window_init (ExampleAppWindow *win)
...
]]></programlisting>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application7/exampleappwin.c">full source</ulink>)</para>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/examples/application7/exampleappwin.c">full source</ulink>)</para>
</informalexample>
<para>With the search bar, our application now looks like this:</para>
@@ -926,7 +926,7 @@ example_app_window_init (ExampleAppWindow *win)
...
]]></programlisting>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application8/exampleappwin.c">full source</ulink>)</para>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/examples/application8/exampleappwin.c">full source</ulink>)</para>
</informalexample>
<para>What our application looks like now:</para>
@@ -989,12 +989,12 @@ example_app_window_init (ExampleAppWindow *win)
...
</programlisting>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application9/exampleappwin.c">full source</ulink>)</para>
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/examples/application9/exampleappwin.c">full source</ulink>)</para>
</informalexample>
<para>We also need a function that counts the lines of the currently
active tab, and updates the @lines label. See the
<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application9/exampleappwin.c">full source</ulink>
<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/examples/application9/exampleappwin.c">full source</ulink>
if you are interested in the details.</para>
<para>This brings our example application to this appearance:</para>
+9 -4
View File
@@ -503,14 +503,19 @@ if get_option('man') and xsltproc.found()
[ 'gtk-update-icon-cache', '1', ],
[ 'gtk-encode-symbolic-svg', '1', ],
[ 'gtk-launch', '1', ],
[ 'gtk3-demo', '1', ],
[ 'gtk3-demo-application', '1', ],
[ 'gtk3-widget-factory', '1', ],
[ 'gtk3-icon-browser', '1', ],
[ 'gtk-builder-tool', '1', ],
[ 'gtk-query-settings', '1', ],
]
if get_option('demos')
man_files += [
[ 'gtk3-demo', '1', ],
[ 'gtk3-demo-application', '1', ],
[ 'gtk3-widget-factory', '1', ],
[ 'gtk3-icon-browser', '1', ],
]
endif
if broadway_enabled
man_files += [[ 'broadwayd', '1', ]]
endif
+18 -87
View File
@@ -20,12 +20,8 @@ Getting help with GTK+
<title>Filing a bug report or feature request</title>
<para>
If you encounter a bug, misfeature, or missing feature in GTK+, please
file a bug report on
<ulink url="https://bugzilla.gnome.org">https://bugzilla.gnome.org</ulink>.
We'd also appreciate reports of incomplete or misleading information in
the GTK+ documentation; file those against the "docs" component of the "gtk+"
product in Bugzilla.
If you encounter a bug, misfeature, or missing feature in GTK, please
file a bug report on <ulink url="https://gitlab.gnome.org/GNOME/gtk/issues">GitLab</ulink>.
</para>
<para>
@@ -37,103 +33,38 @@ discussed, we'll add a note to that effect in the report.
<para>
The bug tracker should definitely be used for feature requests, it's
not only for bugs. We track all GTK+ development in Bugzilla, so it's
the way to be sure the GTK+ developers won't forget about an issue.
not only for bugs. We track all GTK development in GitLab, so it's
the way to be sure the GTK developers won't forget about an issue.
</para>
<para>
Just make sure that any issue filed is actionable, and contains clear
instructions on how to reproduce an issue, and the conditions to close
the bug report or feature request. Non-actionable, or user support
questions will be directed to Discourse.
</para>
</refsect1>
<refsect1>
<title>Submitting Patches</title>
<title>Contributing</title>
<para>
If you develop a bugfix or enhancement for GTK+, please file that in
Bugzilla as well. Bugzilla allows you to attach files; please attach a
patch generated by the <command>diff</command> utility, using the
<option>-u</option> option to make the patch more readable. All patches
must be offered under the terms of the GNU LGPL license, so be sure you
are authorized to give us the patch under those terms.
</para>
<para>
If you want to discuss your patch before or after developing it, mail
<ulink url="mailto:gtk-devel-list@gnome.org">gtk-devel-list@gnome.org</ulink>.
But be sure to file the Bugzilla report as well; if the patch is only on the
list and not in Bugzilla, it's likely to slip through the cracks.
Please, follow the instructions outlined in the
<ulink url="https://gitlab.gnome.org/GNOME/gtk/-/blob/main/CONTRIBUTING.md">Contribution Guide</ulink> available in the GTK
source code repository.
</para>
</refsect1>
<refsect1>
<title>Mailing lists</title>
<title>User support</title>
<para>
There are several mailing lists dedicated to GTK+ and related
libraries. Discussion of GLib, Pango, and ATK in addition to GTK+
proper is welcome on these lists. You can subscribe or view the
archives of these lists on
<ulink url="https://mail.gnome.org">http://mail.gnome.org</ulink>.
If you aren't subscribed to the list, any message you post to
the list will be held for manual moderation, which might take
some days to happen.
</para>
<para>
<variablelist>
<varlistentry>
<term><ulink url="mailto:gtk-list@gnome.org">gtk-list@gnome.org</ulink></term>
<listitem><para>
gtk-list covers general GTK+ topics; questions about using GTK+ in programs,
GTK+ from a user standpoint, announcements of GTK+-related projects
such as themes or GTK+ modules would all be on-topic. The bulk of the
traffic consists of GTK+ programming questions.
</para></listitem>
</varlistentry>
<varlistentry>
<term><ulink url="mailto:gtk-app-devel-list@gnome.org">gtk-app-devel-list@gnome.org</ulink></term>
<listitem><para>
gtk-app-devel-list covers writing applications in GTK+. It's narrower
in scope than gtk-list, but the two lists overlap quite a
bit. gtk-app-devel-list is a good place to ask questions about GTK+
programming. </para></listitem>
</varlistentry>
<varlistentry>
<term><ulink url="mailto:gtk-devel-list@gnome.org">gtk-devel-list@gnome.org</ulink></term>
<listitem><para>
gtk-devel-list is for discussion of work on GTK+ itself, it is
<emphasis>not</emphasis> for
asking questions about how to use GTK+ in applications. gtk-devel-list
is appropriate for discussion of patches, bugs, proposed features,
and so on.
</para></listitem>
</varlistentry>
<varlistentry>
<term><ulink url="mailto:gtk-i18n-list@gnome.org">gtk-i18n-list@gnome.org</ulink></term>
<listitem><para>
gtk-i18n-list is for discussion of internationalization in GTK+;
Pango is the main focus of the list. Questions about the details of
using Pango, and discussion of proposed Pango patches or features, are
all on topic.
</para></listitem>
</varlistentry>
<varlistentry>
<term><ulink url="mailto:gtk-doc-list@gnome.org">gtk-doc-list@gnome.org</ulink></term>
<listitem><para>
gtk-doc-list is for discussion of the <application>gtk-doc</application>
documentation system (used to document GTK+), and for work on the GTK+
documentation.
</para></listitem>
</varlistentry>
</variablelist>
If you have questions about building, using, or contributing to GTK, please
open a topic on <ulink url="https://discourse.gnome.org/tag/gtk">Discourse</ulink>.
</para>
</refsect1>
</refentry>
+3 -3
View File
@@ -134,9 +134,9 @@ additional environment variables.
<title><envar>GTK_DEBUG</envar></title>
<para>
Unless GTK+ has been configured with <option>--enable-debug=no</option>,
this variable can be set to a list of debug options, which cause GTK+
to print out different types of debugging information.
This variable can be set to a list of debug options, which cause GTK to
print out different types of debugging information. Some of these options
are only available when GTK has been configured with <option>--enable-debug=yes</option>.
<variablelist>
<varlistentry>
<term>actions</term>
-41
View File
@@ -1,41 +0,0 @@
## Process this file with automake to produce Makefile.in
AUTOMAKE_OPTIONS = 1.7
# The name of the module.
DOC_MODULE=gail-libgail-util3
# The top-level SGML file.
DOC_MAIN_SGML_FILE=gail-libgail-util-docs.sgml
# The directory containing the source code (if it contains documentation).
DOC_SOURCE_DIR=$(top_srcdir)/libgail-util
# Used for dependencies
HFILE_GLOB = $(top_srcdir)/libgail-util/*.h
CFILE_GLOB = $(top_srcdir)/libgail-util/*.c
# CFLAGS and LDFLAGS for compiling scan program. Only needed
# if $(DOC_MODULE).types is non-empty.
AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_builddir) \
$(DEP_CFLAGS)
GTKDOC_LIBS = $(top_builddir)/libgail-util/libgailutil-3.la
# gtkdoc-mkdb related varaibles
MKDB_OPTIONS =
content_files = \
version.xml
HTML_IMAGES =
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
EXTRA_DIST += \
version.xml.in \
meson.build
-include $(top_srcdir)/git.mk
+3 -3
View File
@@ -1,11 +1,11 @@
if get_option('gtk_doc')
glib_prefix = dependency('glib-2.0').get_pkgconfig_variable('prefix')
glib_prefix = dependency('glib-2.0').get_variable(pkgconfig: 'prefix')
glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html')
cairo_prefix = dependency('cairo-gobject').get_pkgconfig_variable('prefix')
cairo_prefix = dependency('cairo-gobject').get_variable(pkgconfig: 'prefix')
cairo_docpath = join_paths(cairo_prefix, 'share', 'gtk-doc', 'html', 'cairo')
gdkpixbuf_prefix = dependency('gdk-pixbuf-2.0').get_pkgconfig_variable('prefix')
gdkpixbuf_prefix = dependency('gdk-pixbuf-2.0').get_variable(pkgconfig: 'prefix')
gdkpixbuf_docpath = join_paths(gdkpixbuf_prefix, 'share', 'gtk-doc', 'html', 'gdk-pixbuf')
docpath = join_paths(gtk_datadir, 'gtk-doc', 'html')
-48
View File
@@ -1,48 +0,0 @@
include $(top_srcdir)/Makefile.decl
AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_builddir)/gdk \
-I$(top_srcdir)/gdk \
-I$(top_srcdir)/gdk/x11 \
-I$(top_srcdir)/tests \
$(GTK_DEBUG_FLAGS) \
$(GTK_DEP_CFLAGS)
DEPS = \
$(top_builddir)/gtk/libgtk-3.la
LDADDS = \
$(top_builddir)/gtk/libgtk-3.la \
$(top_builddir)/gdk/libgdk-3.la \
$(top_builddir)/tests/gtkgears.o \
$(GTK_DEP_LIBS) \
$(GDK_DEP_LIBS) \
-lm
EXTRA_DIST += \
meson.build
if USE_X11
noinst_PROGRAMS = \
doc-shooter
endif
doc_shooter_DEPENDENCIES = $(DEPS)
doc_shooter_LDADD = $(LDADDS)
doc_shooter_SOURCES = \
shadow.c \
shadow.h \
shooter.c \
widgets.c \
widgets.h
clean-local:
for file in *.png; do \
case "$$file" in \
folder.png|gnome.png) ;; \
*) rm -f $$file ;; \
esac ; \
done
-include $(top_srcdir)/git.mk
-38
View File
@@ -1,38 +0,0 @@
SUBDIRS = \
bp \
application1 application2 application3 \
application4 application5 application6 \
application7 application8 application9 \
application10
AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_srcdir)/gdk \
-I$(top_builddir)/gdk \
-DGDK_DISABLE_DEPRECATED \
-DGTK_DISABLE_DEPRECATED \
$(GTK_DEBUG_FLAGS) \
$(GTK_DEP_CFLAGS)
LDADD = \
$(top_builddir)/gtk/libgtk-3.la \
$(top_builddir)/gdk/libgdk-3.la \
$(GTK_DEP_LIBS)
noinst_PROGRAMS = \
hello-world \
window-default \
plugman \
sunny \
action-namespace \
grid-packing \
drawing \
builder \
search-bar \
listbox-dnd
EXTRA_DIST = \
builder.ui \
meson.build
-include $(top_srcdir)/git.mk
-24
View File
@@ -1,24 +0,0 @@
GTK_CFLAGS = \
-I$(top_srcdir) \
$(GTK_DEP_CFLAGS)
GTK_LIBS = \
$(top_builddir)/gtk/libgtk-3.la \
$(top_builddir)/gdk/libgdk-3.la \
$(GTK_DEP_LIBS)
noinst_PROGRAMS = exampleapp
exampleapp_CFLAGS = $(GTK_CFLAGS)
exampleapp_LDADD = $(GTK_LIBS)
exampleapp_SOURCES = \
main.c \
exampleapp.c exampleapp.h \
exampleappwin.c exampleappwin.h
EXTRA_DIST = \
exampleapp.desktop \
meson.build
-include $(top_srcdir)/git.mk
-50
View File
@@ -1,50 +0,0 @@
GTK_CFLAGS = \
-I$(top_srcdir) \
$(GTK_DEP_CFLAGS)
GTK_LIBS = \
$(top_builddir)/gtk/libgtk-3.la \
$(top_builddir)/gdk/libgdk-3.la \
$(GTK_DEP_LIBS)
noinst_PROGRAMS = exampleapp
exampleapp_CFLAGS = $(GTK_CFLAGS)
exampleapp_LDADD = $(GTK_LIBS)
exampleapp_SOURCES = \
main.c \
exampleapp.c exampleapp.h \
exampleappwin.c exampleappwin.h \
exampleappprefs.c exampleappprefs.h \
resources.c
BUILT_SOURCES = \
resources.c \
gschemas.compiled
resources.c: exampleapp.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/exampleapp.gresource.xml)
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/exampleapp.gresource.xml \
--target=$@ --sourcedir=$(srcdir) --generate-source
gsettings_SCHEMAS = \
org.gtk.exampleapp.gschema.xml
@GSETTINGS_RULES@
gschemas.compiled: org.gtk.exampleapp.gschema.xml
$(GLIB_COMPILE_SCHEMAS) .
EXTRA_DIST = \
window.ui \
app-menu.ui \
prefs.ui \
gears-menu.ui \
exampleapp.gresource.xml \
org.gtk.exampleapp.gschema.xml \
meson.build
CLEANFILES = \
gschemas.compiled
-include $(top_srcdir)/git.mk
+3 -1
View File
@@ -5,7 +5,7 @@ app10_resources = gnome.compile_resources(
source_dir: '.'
)
app10_schemas = gnome.compile_schemas()
app10_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
app10 = executable(
@@ -21,3 +21,5 @@ app10 = executable(
app10_schemas,
dependencies: libgtk_dep
)
install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
-32
View File
@@ -1,32 +0,0 @@
GTK_CFLAGS = \
-I$(top_srcdir) \
$(GTK_DEP_CFLAGS)
GTK_LIBS = \
$(top_builddir)/gtk/libgtk-3.la \
$(top_builddir)/gdk/libgdk-3.la \
$(GTK_DEP_LIBS)
noinst_PROGRAMS = exampleapp
exampleapp_CFLAGS = $(GTK_CFLAGS)
exampleapp_LDADD = $(GTK_LIBS)
exampleapp_SOURCES = \
main.c \
exampleapp.c exampleapp.h \
exampleappwin.c exampleappwin.h \
resources.c
BUILT_SOURCES = resources.c
resources.c: exampleapp.gresource.xml window.ui
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/exampleapp.gresource.xml \
--target=$@ --sourcedir=$(srcdir) --generate-source
EXTRA_DIST = \
window.ui \
exampleapp.gresource.xml \
meson.build
-include $(top_srcdir)/git.mk
-32
View File
@@ -1,32 +0,0 @@
GTK_CFLAGS = \
-I$(top_srcdir) \
$(GTK_DEP_CFLAGS)
GTK_LIBS = \
$(top_builddir)/gtk/libgtk-3.la \
$(top_builddir)/gdk/libgdk-3.la \
$(GTK_DEP_LIBS)
noinst_PROGRAMS = exampleapp
exampleapp_CFLAGS = $(GTK_CFLAGS)
exampleapp_LDADD = $(GTK_LIBS)
exampleapp_SOURCES = \
main.c \
exampleapp.c exampleapp.h \
exampleappwin.c exampleappwin.h \
resources.c
BUILT_SOURCES = resources.c
resources.c: exampleapp.gresource.xml window.ui
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/exampleapp.gresource.xml \
--target=$@ --sourcedir=$(srcdir) --generate-source
EXTRA_DIST = \
window.ui \
exampleapp.gresource.xml \
meson.build
-include $(top_srcdir)/git.mk
-33
View File
@@ -1,33 +0,0 @@
GTK_CFLAGS = \
-I$(top_srcdir) \
$(GTK_DEP_CFLAGS)
GTK_LIBS = \
$(top_builddir)/gtk/libgtk-3.la \
$(top_builddir)/gdk/libgdk-3.la \
$(GTK_DEP_LIBS)
noinst_PROGRAMS = exampleapp
exampleapp_CFLAGS = $(GTK_CFLAGS)
exampleapp_LDADD = $(GTK_LIBS)
exampleapp_SOURCES = \
main.c \
exampleapp.c exampleapp.h \
exampleappwin.c exampleappwin.h \
resources.c
BUILT_SOURCES = resources.c
resources.c: exampleapp.gresource.xml window.ui app-menu.ui
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/exampleapp.gresource.xml \
--target=$@ --sourcedir=$(srcdir) --generate-source
EXTRA_DIST = \
window.ui \
app-menu.ui \
exampleapp.gresource.xml \
meson.build
-include $(top_srcdir)/git.mk
-47
View File
@@ -1,47 +0,0 @@
GTK_CFLAGS = \
-I$(top_srcdir) \
$(GTK_DEP_CFLAGS)
GTK_LIBS = \
$(top_builddir)/gtk/libgtk-3.la \
$(top_builddir)/gdk/libgdk-3.la \
$(GTK_DEP_LIBS)
noinst_PROGRAMS = exampleapp
exampleapp_CFLAGS = $(GTK_CFLAGS)
exampleapp_LDADD = $(GTK_LIBS)
exampleapp_SOURCES = \
main.c \
exampleapp.c exampleapp.h \
exampleappwin.c exampleappwin.h \
resources.c
BUILT_SOURCES = \
resources.c \
gschemas.compiled
resources.c: exampleapp.gresource.xml window.ui app-menu.ui
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/exampleapp.gresource.xml \
--target=$@ --sourcedir=$(srcdir) --generate-source
gsettings_SCHEMAS = \
org.gtk.exampleapp.gschema.xml
@GSETTINGS_RULES@
gschemas.compiled: org.gtk.exampleapp.gschema.xml
$(GLIB_COMPILE_SCHEMAS) .
EXTRA_DIST = \
window.ui \
app-menu.ui \
exampleapp.gresource.xml \
org.gtk.exampleapp.gschema.xml \
meson.build
CLEANFILES = \
gschemas.compiled
-include $(top_srcdir)/git.mk
+3 -1
View File
@@ -5,7 +5,7 @@ app5_resources = gnome.compile_resources(
source_dir: '.'
)
app5_schemas = gnome.compile_schemas()
app5_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
app5 = executable(
@@ -19,3 +19,5 @@ app5 = executable(
app5_schemas,
dependencies: libgtk_dep
)
install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
-49
View File
@@ -1,49 +0,0 @@
GTK_CFLAGS = \
-I$(top_srcdir) \
$(GTK_DEP_CFLAGS)
GTK_LIBS = \
$(top_builddir)/gtk/libgtk-3.la \
$(top_builddir)/gdk/libgdk-3.la \
$(GTK_DEP_LIBS)
noinst_PROGRAMS = exampleapp
exampleapp_CFLAGS = $(GTK_CFLAGS)
exampleapp_LDADD = $(GTK_LIBS)
exampleapp_SOURCES = \
main.c \
exampleapp.c exampleapp.h \
exampleappwin.c exampleappwin.h \
exampleappprefs.c exampleappprefs.h \
resources.c
BUILT_SOURCES = \
resources.c \
gschemas.compiled
resources.c: exampleapp.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/exampleapp.gresource.xml)
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/exampleapp.gresource.xml \
--target=$@ --sourcedir=$(srcdir) --generate-source
gsettings_SCHEMAS = \
org.gtk.exampleapp.gschema.xml
@GSETTINGS_RULES@
gschemas.compiled: org.gtk.exampleapp.gschema.xml
$(GLIB_COMPILE_SCHEMAS) .
EXTRA_DIST = \
window.ui \
app-menu.ui \
prefs.ui \
exampleapp.gresource.xml \
org.gtk.exampleapp.gschema.xml \
meson.build
CLEANFILES = \
gschemas.compiled
-include $(top_srcdir)/git.mk
+3 -1
View File
@@ -5,7 +5,7 @@ app6_resources = gnome.compile_resources(
source_dir: '.'
)
app6_schemas = gnome.compile_schemas()
app6_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
app6 = executable(
@@ -21,3 +21,5 @@ app6 = executable(
app6_schemas,
dependencies: libgtk_dep
)
install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
-49
View File
@@ -1,49 +0,0 @@
GTK_CFLAGS = \
-I$(top_srcdir) \
$(GTK_DEP_CFLAGS)
GTK_LIBS = \
$(top_builddir)/gtk/libgtk-3.la \
$(top_builddir)/gdk/libgdk-3.la \
$(GTK_DEP_LIBS)
noinst_PROGRAMS = exampleapp
exampleapp_CFLAGS = $(GTK_CFLAGS)
exampleapp_LDADD = $(GTK_LIBS)
exampleapp_SOURCES = \
main.c \
exampleapp.c exampleapp.h \
exampleappwin.c exampleappwin.h \
exampleappprefs.c exampleappprefs.h \
resources.c
BUILT_SOURCES = \
resources.c \
gschemas.compiled
resources.c: exampleapp.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/exampleapp.gresource.xml)
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/exampleapp.gresource.xml \
--target=$@ --sourcedir=$(srcdir) --generate-source
gsettings_SCHEMAS = \
org.gtk.exampleapp.gschema.xml
@GSETTINGS_RULES@
gschemas.compiled: org.gtk.exampleapp.gschema.xml
$(GLIB_COMPILE_SCHEMAS) .
EXTRA_DIST = \
window.ui \
app-menu.ui \
prefs.ui \
exampleapp.gresource.xml \
org.gtk.exampleapp.gschema.xml \
meson.build
CLEANFILES = \
gschemas.compiled
-include $(top_srcdir)/git.mk
+3 -1
View File
@@ -5,7 +5,7 @@ app7_resources = gnome.compile_resources(
source_dir: '.'
)
app7_schemas = gnome.compile_schemas()
app7_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
app7 = executable(
@@ -21,3 +21,5 @@ app7 = executable(
app7_schemas,
dependencies: libgtk_dep
)
install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
-50
View File
@@ -1,50 +0,0 @@
GTK_CFLAGS = \
-I$(top_srcdir) \
$(GTK_DEP_CFLAGS)
GTK_LIBS = \
$(top_builddir)/gtk/libgtk-3.la \
$(top_builddir)/gdk/libgdk-3.la \
$(GTK_DEP_LIBS)
noinst_PROGRAMS = exampleapp
exampleapp_CFLAGS = $(GTK_CFLAGS)
exampleapp_LDADD = $(GTK_LIBS)
exampleapp_SOURCES = \
main.c \
exampleapp.c exampleapp.h \
exampleappwin.c exampleappwin.h \
exampleappprefs.c exampleappprefs.h \
resources.c
BUILT_SOURCES = \
resources.c \
gschemas.compiled
resources.c: exampleapp.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/exampleapp.gresource.xml)
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/exampleapp.gresource.xml \
--target=$@ --sourcedir=$(srcdir) --generate-source
gsettings_SCHEMAS = \
org.gtk.exampleapp.gschema.xml
@GSETTINGS_RULES@
gschemas.compiled: org.gtk.exampleapp.gschema.xml
$(GLIB_COMPILE_SCHEMAS) .
EXTRA_DIST = \
window.ui \
app-menu.ui \
prefs.ui \
gears-menu.ui \
exampleapp.gresource.xml \
org.gtk.exampleapp.gschema.xml \
meson.build
CLEANFILES = \
gschemas.compiled
-include $(top_srcdir)/git.mk
+3 -1
View File
@@ -5,7 +5,7 @@ app8_resources = gnome.compile_resources(
source_dir: '.'
)
app8_schemas = gnome.compile_schemas()
app8_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
app8 = executable(
@@ -21,3 +21,5 @@ app8 = executable(
app8_schemas,
dependencies: libgtk_dep
)
install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
-50
View File
@@ -1,50 +0,0 @@
GTK_CFLAGS = \
-I$(top_srcdir) \
$(GTK_DEP_CFLAGS)
GTK_LIBS = \
$(top_builddir)/gtk/libgtk-3.la \
$(top_builddir)/gdk/libgdk-3.la \
$(GTK_DEP_LIBS)
noinst_PROGRAMS = exampleapp
exampleapp_CFLAGS = $(GTK_CFLAGS)
exampleapp_LDADD = $(GTK_LIBS)
exampleapp_SOURCES = \
main.c \
exampleapp.c exampleapp.h \
exampleappwin.c exampleappwin.h \
exampleappprefs.c exampleappprefs.h \
resources.c
BUILT_SOURCES = \
resources.c \
gschemas.compiled
resources.c: exampleapp.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/exampleapp.gresource.xml)
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/exampleapp.gresource.xml \
--target=$@ --sourcedir=$(srcdir) --generate-source
gsettings_SCHEMAS = \
org.gtk.exampleapp.gschema.xml
@GSETTINGS_RULES@
gschemas.compiled: org.gtk.exampleapp.gschema.xml
$(GLIB_COMPILE_SCHEMAS) .
EXTRA_DIST = \
window.ui \
app-menu.ui \
prefs.ui \
gears-menu.ui \
exampleapp.gresource.xml \
org.gtk.exampleapp.gschema.xml \
meson.build
CLEANFILES = \
gschemas.compiled
-include $(top_srcdir)/git.mk
+3 -1
View File
@@ -5,7 +5,7 @@ app9_resources = gnome.compile_resources(
source_dir: '.'
)
app9_schemas = gnome.compile_schemas()
app9_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
app9 = executable(
@@ -21,3 +21,5 @@ app9 = executable(
app9_schemas,
dependencies: libgtk_dep
)
install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
-34
View File
@@ -1,34 +0,0 @@
AM_CPPFLAGS = \
-DSRCDIR=\"$(abs_srcdir)\" \
-I$(top_srcdir) \
-I$(top_srcdir)/gdk \
-I$(top_builddir)/gdk \
$(GTK_DEBUG_FLAGS) \
$(GTK_DEP_CFLAGS)
LDADD = \
$(top_builddir)/gtk/libgtk-3.la \
$(top_builddir)/gdk/libgdk-3.la \
$(GTK_DEP_LIBS)
noinst_PROGRAMS = bloatpad
bloatpad_SOURCES = bloatpad.c
nodist_bloatpad_SOURCES = bloatpad-gresources.c
resource_files = \
bloatpad.gresources.xml \
gtk/menus.ui \
gtk/help-overlay.ui
bloatpad-gresources.c: $(resource_files)
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source $<
CLEANFILES = bloatpad-gresources.c
EXTRA_DIST = \
$(resource_files) \
meson.build
-include $(top_srcdir)/git.mk
+1 -1
View File
@@ -182,7 +182,7 @@ main (int argc,
GtkApplication *app;
int status;
app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
app = gtk_application_new ("org.gtk.example", 0);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
status = g_application_run (G_APPLICATION (app), argc, argv);
g_object_unref (app);
+1 -1
View File
@@ -66,7 +66,7 @@ main (int argc,
GtkApplication *app;
int status;
app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
app = gtk_application_new ("org.gtk.example", 0);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
status = g_application_run (G_APPLICATION (app), argc, argv);
g_object_unref (app);
+1 -1
View File
@@ -37,7 +37,7 @@ main (int argc,
GtkApplication *app;
int status;
app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
app = gtk_application_new ("org.gtk.example", 0);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
status = g_application_run (G_APPLICATION (app), argc, argv);
g_object_unref (app);
+10 -11
View File
@@ -2,15 +2,15 @@
static gboolean
window_key_press_event_cb (GtkWidget *window,
GdkEvent *event,
GtkSearchBar *search_bar)
GdkEvent *event,
GtkSearchBar *search_bar)
{
return gtk_search_bar_handle_event (search_bar, event);
}
static void
activate_cb (GtkApplication *app,
gpointer user_data)
gpointer user_data)
{
GtkWidget *window;
GtkWidget *search_bar;
@@ -40,19 +40,18 @@ activate_cb (GtkApplication *app,
gtk_search_bar_connect_entry (GTK_SEARCH_BAR (search_bar), GTK_ENTRY (entry));
g_signal_connect (window, "key-press-event",
G_CALLBACK (window_key_press_event_cb), search_bar);
G_CALLBACK (window_key_press_event_cb),
search_bar);
}
gint
main (gint argc,
gchar *argv[])
int
main (int argc,
char *argv[])
{
GtkApplication *app;
app = gtk_application_new ("org.gtk.Example.GtkSearchBar",
G_APPLICATION_FLAGS_NONE);
g_signal_connect (app, "activate",
G_CALLBACK (activate_cb), NULL);
app = gtk_application_new ("org.gtk.Example.GtkSearchBar", 0);
g_signal_connect (app, "activate", G_CALLBACK (activate_cb), NULL);
return g_application_run (G_APPLICATION (app), argc, argv);
}
+1 -1
View File
@@ -19,7 +19,7 @@ main (int argc,
GtkApplication *app;
int status;
app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
app = gtk_application_new ("org.gtk.example", 0);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
status = g_application_run (G_APPLICATION (app), argc, argv);
g_object_unref (app);
-577
View File
@@ -1,577 +0,0 @@
## Makefile.am for gtk+/gdk
include $(top_srcdir)/Makefile.decl
-include $(INTROSPECTION_MAKEFILE)
INTROSPECTION_GIRS =
INTROSPECTION_SCANNER_ENV = \
CC="$(CC)"
INTROSPECTION_SCANNER_ARGS = \
--add-include-path=../gdk \
--warn-all
INTROSPECTION_COMPILER_ARGS = \
--includedir=$(srcdir) \
--includedir=.
SUBDIRS = $(GDK_BACKENDS) .
DIST_SUBDIRS = win32 x11 quartz broadway wayland
CLEANFILES =
EXTRA_DIST += \
keynames.txt \
keynames-translate.txt \
keyname-table.h \
gdkkeynames.c \
gen-keyname-table.pl \
gdkconfig.h.win32 \
gdkconfig.h.win32_broadway \
gdkkeysyms-update.pl \
gdkmarshalers.list \
gdkwindowimpl.h \
makefile.msc \
gdkenumtypes.c.template \
gdkenumtypes.h.template \
gdkversionmacros.h.in \
meson.build \
gen-gdk-gresources-xml.py \
gdkconfig.h.meson
GDK_CFLAGS_DEFINES = \
-DG_LOG_USE_STRUCTURED=1 \
-DGDK_COMPILATION
AM_CPPFLAGS = \
-DG_LOG_DOMAIN=\"Gdk\" \
$(GDK_CFLAGS_DEFINES) \
-I$(top_builddir) \
-I$(top_builddir)/gdk \
-I$(top_srcdir) \
$(GTK_DEBUG_FLAGS) \
$(GDK_DEP_CFLAGS)
# libtool stuff: set version and export symbols for resolving
# since automake doesn't support conditionalized libsomething_la_LDFLAGS
# we use the general approach here
LDADD = \
$(GTK_LINK_FLAGS) \
-version-info $(LT_VERSION_INFO) \
-export-dynamic \
-rpath $(libdir) \
$(no_undefined)
#
# setup source file variables
#
#
# GDK header files for public installation (non-generated)
#
#
gdk_public_h_sources = \
gdk.h \
gdk-autocleanup.h \
gdkapplaunchcontext.h \
gdkcairo.h \
gdkcursor.h \
gdkdevice.h \
gdkdevicepad.h \
gdkdevicetool.h \
gdkdevicemanager.h \
gdkdisplay.h \
gdkdisplaymanager.h \
gdkdnd.h \
gdkdrawingcontext.h \
gdkevents.h \
gdkframetimings.h \
gdkglcontext.h \
gdkkeys.h \
gdkkeysyms.h \
gdkkeysyms-compat.h \
gdkmain.h \
gdkmonitor.h \
gdkpango.h \
gdkframeclock.h \
gdkpixbuf.h \
gdkprivate.h \
gdkproperty.h \
gdkrectangle.h \
gdkrgba.h \
gdkscreen.h \
gdkseat.h \
gdkselection.h \
gdktestutils.h \
gdkthreads.h \
gdktypes.h \
gdkvisual.h \
gdkwindow.h
deprecated_h_sources = \
deprecated/gdkcolor.h
gdk_h_sources = \
$(gdk_public_h_sources) \
$(deprecated_h_sources)
gdk_private_headers = \
gdk-private.h \
gdkapplaunchcontextprivate.h \
gdkconstructor.h \
gdkcursorprivate.h \
gdkdevicemanagerprivate.h \
gdkdeviceprivate.h \
gdkdevicepadprivate.h \
gdkdevicetoolprivate.h \
gdkdisplaymanagerprivate.h \
gdkdisplayprivate.h \
gdkdndprivate.h \
gdkdrawingcontextprivate.h \
gdkframeclockidle.h \
gdkframeclockprivate.h \
gdkglcontextprivate.h \
gdkmonitorprivate.h \
gdkprofilerprivate.h \
gdkscreenprivate.h \
gdkseatprivate.h \
gdkseatdefaultprivate.h \
gdkinternals.h \
gdkintl.h \
gdkkeysprivate.h \
gdkvisualprivate.h \
gdkx.h
deprecated_c_sources = \
deprecated/gdkcolor.c
gdk_c_sources = \
$(deprecated_c_sources) \
gdk-private.c \
gdk.c \
gdkapplaunchcontext.c \
gdkcairo.c \
gdkcursor.c \
gdkdeprecated.c \
gdkdevice.c \
gdkdevicepad.c \
gdkdevicetool.c \
gdkdevicemanager.c \
gdkdisplay.c \
gdkdisplaymanager.c \
gdkdnd.c \
gdkdrawingcontext.c \
gdkevents.c \
gdkframetimings.c \
gdkgl.c \
gdkglcontext.c \
gdkglobals.c \
gdkkeys.c \
gdkkeyuni.c \
gdkmonitor.c \
gdkoffscreenwindow.c \
gdkframeclock.c \
gdkframeclockidle.c \
gdkpango.c \
gdkpixbuf-drawable.c \
gdkprofiler.c \
gdkproperty.c \
gdkrectangle.c \
gdkrgba.c \
gdkscreen.c \
gdkseat.c \
gdkseatdefault.c \
gdkselection.c \
gdkvisual.c \
gdkwindow.c \
gdkwindowimpl.c
gdk_built_sources = \
gdkenumtypes.h \
gdkenumtypes.c \
gdkmarshalers.h \
gdkmarshalers.c \
gdkresources.h \
gdkresources.c \
gdkversionmacros.h
#
# setup GDK sources and their dependencies
#
gdkincludedir = $(includedir)/gtk-3.0/gdk
gdkinclude_HEADERS = $(gdk_public_h_sources)
nodist_gdkinclude_HEADERS = gdkconfig.h gdkenumtypes.h gdkversionmacros.h
deprecatedincludedir = $(includedir)/gtk-3.0/gdk/deprecated
deprecatedinclude_HEADERS = $(deprecated_h_sources)
common_sources = \
$(gdk_private_headers) \
$(gdk_c_sources) \
gdkenumtypes.c \
gdkmarshalers.c \
gdkmarshalers.h \
gdkresources.h \
gdkresources.c
libgdk_3_la_SOURCES = $(common_sources)
libgdk_3_la_CFLAGS = $(AM_CFLAGS) $(GDK_HIDDEN_VISIBILITY_CFLAGS)
libgdk_3_la_LIBADD = $(GDK_DEP_LIBS) $(SHM_LIBS)
libgdk_3_la_LDFLAGS = $(LDADD)
if USE_X11
libgdk_3_la_LIBADD += x11/libgdk-x11.la
endif # USE_X11
if USE_QUARTZ
libgdk_3_la_LIBADD += quartz/libgdk-quartz.la
endif # USE_QUARTZ
if USE_WIN32
libgdk_3_la_LIBADD += win32/libgdk-win32.la
libgdk_3_la_DEPENDENCIES = win32/libgdk-win32.la win32/rc/gdk-win32-res.o
libgdk_3_la_LDFLAGS += -Wl,win32/rc/gdk-win32-res.o
endif # USE_WIN32
if USE_BROADWAY
libgdk_3_la_LIBADD += broadway/libgdk-broadway.la
endif # USE_BROADWAY
if USE_WAYLAND
libgdk_3_la_LIBADD += wayland/libgdk-wayland.la
endif
if HAVE_INTROSPECTION
introspection_files = \
$(filter-out gdkkeysyms-compat.h, $(gdk_h_sources)) \
$(gdk_c_sources) \
$(gdk_built_sources)
Gdk-3.0.gir: libgdk-3.la Makefile
Gdk_3_0_gir_SCANNERFLAGS = \
--c-include="gdk/gdk.h"
Gdk_3_0_gir_INCLUDES = Gio-2.0 GdkPixbuf-2.0 Pango-1.0 cairo-1.0
Gdk_3_0_gir_LIBS = libgdk-3.la
Gdk_3_0_gir_FILES = $(introspection_files)
Gdk_3_0_gir_CFLAGS = $(AM_CPPFLAGS)
Gdk_3_0_gir_EXPORT_PACKAGES = gdk-3.0
INTROSPECTION_GIRS += Gdk-3.0.gir
if OS_WIN32
Gdk_3_0_gir_CFLAGS += -I$(srcdir)/win32 -I$(srcdir)
endif
if USE_X11
x11_introspection_files = \
x11/gdkapplaunchcontext-x11.c \
x11/gdkasync.c \
x11/gdkcursor-x11.c \
x11/gdkdevice-core-x11.c \
x11/gdkdevicemanager-core-x11.c \
x11/gdkdevicemanager-x11.c \
x11/gdkdevicemanager-xi2.c \
x11/gdkdevice-xi2.c \
x11/gdkdisplay-x11.c \
x11/gdkdisplaymanager-x11.c \
x11/gdkdnd-x11.c \
x11/gdkeventsource.c \
x11/gdkeventtranslator.c \
x11/gdkgeometry-x11.c \
x11/gdkglcontext-x11.c \
x11/gdkkeys-x11.c \
x11/gdkmain-x11.c \
x11/gdkmonitor-x11.c \
x11/gdkproperty-x11.c \
x11/gdkscreen-x11.c \
x11/gdkselection-x11.c \
x11/gdksettings.c \
x11/gdktestutils-x11.c \
x11/gdkvisual-x11.c \
x11/gdkwindow-x11.c \
x11/gdkxftdefaults.c \
x11/gdkxid.c \
x11/xsettings-client.c \
x11/gdkx.h \
x11/gdkx11applaunchcontext.h \
x11/gdkx11cursor.h \
x11/gdkx11device.h \
x11/gdkx11device-core.h \
x11/gdkx11device-xi2.h \
x11/gdkx11devicemanager.h \
x11/gdkx11devicemanager-core.h \
x11/gdkx11devicemanager-xi2.h \
x11/gdkx11display.h \
x11/gdkx11displaymanager.h \
x11/gdkx11dnd.h \
x11/gdkx11glcontext.h \
x11/gdkx11keys.h \
x11/gdkx11monitor.h \
x11/gdkx11property.h \
x11/gdkx11screen.h \
x11/gdkx11selection.h \
x11/gdkx11utils.h \
x11/gdkx11visual.h \
x11/gdkx11window.h
GdkX11-3.0.gir: libgdk-3.la Gdk-3.0.gir Makefile
GdkX11_3_0_gir_SCANNERFLAGS = \
--identifier-prefix=Gdk \
--c-include="gdk/gdkx.h" \
--include-uninstalled=$(top_builddir)/gdk/Gdk-3.0.gir
GdkX11_3_0_gir_INCLUDES = Gio-2.0 GdkPixbuf-2.0 Pango-1.0 xlib-2.0
GdkX11_3_0_gir_LIBS = libgdk-3.la
GdkX11_3_0_gir_FILES = $(x11_introspection_files)
GdkX11_3_0_gir_CFLAGS = $(AM_CPPFLAGS) -L$(top_builddir)/gdk
GdkX11_3_0_gir_EXPORT_PACKAGES = gdk-x11-3.0
INTROSPECTION_GIRS += GdkX11-3.0.gir
endif # USE_X11
w32_introspection_files = \
win32/gdkcursor-win32.c \
win32/gdkdevicemanager-win32.c \
win32/gdkdevice-virtual.c \
win32/gdkdevice-win32.c \
win32/gdkdevice-wintab.c \
win32/gdkdisplaymanager-win32.c \
win32/gdkdisplay-win32.c \
win32/gdkdnd-win32.c \
win32/gdkevents-win32.c \
win32/gdkgeometry-win32.c \
win32/gdkglobals-win32.c \
win32/gdkkeys-win32.c \
win32/gdkmain-win32.c \
win32/gdkproperty-win32.c \
win32/gdkscreen-win32.c \
win32/gdkselection-win32.c \
win32/gdktestutils-win32.c \
win32/gdkwin32.h \
win32/gdkwin32cursor.h \
win32/gdkwin32display.h \
win32/gdkwin32displaymanager.h \
win32/gdkwin32dnd.h \
win32/gdkwin32id.c \
win32/gdkwin32keys.h \
win32/gdkwin32misc.h \
win32/gdkwin32screen.h \
win32/gdkwin32window.h \
win32/gdkwindow-win32.c
if OS_WIN32
GdkWin32-3.0.gir: libgdk-3.la Gdk-3.0.gir Makefile
GdkWin32_3_0_gir_SCANNERFLAGS = \
--identifier-prefix=Gdk \
--c-include="gdk/gdkwin32.h" \
--include-uninstalled=$(top_builddir)/gdk/Gdk-3.0.gir
GdkWin32_3_0_gir_INCLUDES = Gio-2.0 GdkPixbuf-2.0 Pango-1.0
GdkWin32_3_0_gir_LIBS = libgdk-3.la
GdkWin32_3_0_gir_FILES = $(w32_introspection_files)
GdkWin32_3_0_gir_CFLAGS = $(AM_CPPFLAGS) -L$(top_builddir)/gdk -I$(srcdir)/win32 -I$(srcdir)
INTROSPECTION_GIRS += GdkWin32-3.0.gir
endif # OS_WIN32
girdir = $(datadir)/gir-1.0
gir_DATA = $(INTROSPECTION_GIRS)
typelibsdir = $(libdir)/girepository-1.0
typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
CLEANFILES += $(gir_DATA) $(typelibs_DATA)
endif # HAVE_INTROSPECTION
if OS_WIN32
gdk.def: libgdk-3.la
echo "LIBRARY libgdk-$(GTK_MAJOR_VERSION)-@LT_CURRENT_MINUS_AGE@" >$@
echo "EXPORTS" >>$@
objdump -p .libs/libgdk-$(GTK_MAJOR_VERSION)-@LT_CURRENT_MINUS_AGE@.dll | sed -n -e 's/\t\[\s\+\([0-9]\+\)\]\s\([A-Za-z_][A-Za-z0-9_]\)/\2/p' >>$@
install-def-file: gdk.def
mkdir -p $(DESTDIR)$(libdir)
$(INSTALL) gdk.def $(DESTDIR)$(libdir)/gdk-win32-3.0.def
uninstall-def-file:
-rm $(DESTDIR)$(libdir)/gdk-win32-3.0.def
else
install-def-file:
uninstall-def-file:
endif
if MS_LIB_AVAILABLE
noinst_DATA = gdk-win32-$(GTK_API_VERSION).lib
gdk-win32-$(GTK_API_VERSION).lib: libgdk-3.la gdk.def
lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgdk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -def:gdk.def -out:$@
install-ms-lib:
mkdir -p $(DESTDIR)$(libdir)
$(INSTALL) gdk-win32-$(GTK_API_VERSION).lib $(DESTDIR)$(libdir)
uninstall-ms-lib:
-rm $(DESTDIR)$(libdir)/gdk-win32-$(GTK_API_VERSION).lib
else
install-ms-lib:
uninstall-ms-lib:
endif
lib_LTLIBRARIES = libgdk-3.la
MAINTAINERCLEANFILES = $(gdk_built_sources) stamp-gdkenumtypes.h
EXTRA_DIST += \
$(gdk_built_sources) \
fallback-c89.c
install-exec-hook:
if DISABLE_EXPLICIT_DEPS
$(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/libgdk-3.la
endif
BUILT_SOURCES = \
$(gdk_built_sources) \
gdkconfig.h
gdkenumtypes.h: stamp-gdkenumtypes.h
@true
stamp-gdkenumtypes.h: $(gdk_h_sources) gdkenumtypes.h.template
$(AM_V_GEN) ( cd $(srcdir) && $(GLIB_MKENUMS) --template gdkenumtypes.h.template \
$(gdk_h_sources) ) >> xgen-geth \
&& (cmp -s xgen-geth gdkenumtypes.h || cp xgen-geth gdkenumtypes.h ) \
&& rm -f xgen-geth \
&& echo timestamp > $(@F)
gdkenumtypes.c: $(gdk_h_sources) gdkenumtypes.c.template
$(AM_V_GEN) ( cd $(srcdir) && $(GLIB_MKENUMS) --template gdkenumtypes.c.template \
$(gdk_h_sources) ) > xgen-getc \
&& cp xgen-getc gdkenumtypes.c \
&& rm -f xgen-getc
#
# Marshaller generation
#
gdkmarshalers.h: gdkmarshalers.list
$(AM_V_GEN) $(GLIB_GENMARSHAL) \
--prefix=_gdk_marshal \
--valist-marshallers \
--header \
$(srcdir)/gdkmarshalers.list > gdkmarshalers-h.tmp \
&& mv gdkmarshalers-h.tmp gdkmarshalers.h \
|| ( rm -f gdkmarshalers-h.tmp && exit 1)
gdkmarshalers.c: gdkmarshalers.list
$(AM_V_GEN) $(GLIB_GENMARSHAL) \
--prefix=_gdk_marshal \
--valist-marshallers \
--body \
$(srcdir)/gdkmarshalers.list > gdkmarshalers-c.tmp \
&& mv gdkmarshalers-c.tmp gdkmarshalers.c \
|| ( rm -f gdkmarshalers-c.tmp && exit 1 )
gdkconfig.h: stamp-gc-h
$(AM_V_GEN) if test -f gdkconfig.h; then :; \
else rm -f stamp-gc-h; $(MAKE) stamp-gc-h; fi
stamp-gc-h: $(top_builddir)/config.status
$(AM_V_at) cd $(top_builddir) && $(SHELL) ./config.status gdk/gdkconfig.h \
&& echo timestamp > gdk/$(@F)
#
# Resources
#
glsl_sources := $(sort $(wildcard $(srcdir)/resources/glsl/*.glsl))
gdk.gresource.xml: Makefile.am
$(AM_V_GEN) echo "<?xml version='1.0' encoding='UTF-8'?>" > $@; \
echo "<gresources>" >> $@; \
echo " <gresource prefix='/org/gtk/libgdk'>" >> $@; \
for f in $(glsl_sources); do \
n=`basename $$f`; \
echo " <file alias='glsl/$$n'>resources/glsl/$$n</file>" >> $@; \
done; \
echo " </gresource>" >> $@; \
echo "</gresources>" >> $@;
EXTRA_DIST += $(glsl_sources)
CLEANFILES += gdk.gresource.xml
resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(builddir)/gdk.gresource.xml)
gdkresources.h: gdk.gresource.xml
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ \
--sourcedir=$(srcdir) --c-name _gdk --generate-header --manual-register --internal
gdkresources.c: gdk.gresource.xml $(resource_files)
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ \
--sourcedir=$(srcdir) --c-name _gdk --generate-source --manual-register --internal
# ------------------- MSVC Build Items ----------------
MSVCPROJS = gdk-3
gdk_3_FILES = $(libgdk_3_la_SOURCES)
gdk_3_EXCLUDES = dummy
gdk_3_HEADERS_DIR = $(gdkincludedir)
gdk_3_HEADERS_INST = \
$(gdkinclude_HEADERS) \
$(deprecatedinclude_HEADERS) \
$(nodist_gdkinclude_HEADERS)
gdk_3_HEADERS_EXCLUDES = dummy
include $(top_srcdir)/win32/Makefile.msvcproj
if HAVE_INTROSPECTION
# Introspection Items for MSVC
MSVC_INTROSPECT_GIRS = Gdk-3.0.gir GdkWin32-3.0.gir
BASE_MSVC_GIR_CFLAGS = \
$(GDK_CFLAGS_DEFINES) \
-I.. -I../gdk -I../gdk/win32
INTROSPECTION_INTERMEDIATE_ITEMS = \
$(top_builddir)/win32/Gdk-3.0.gir.msvc.introspect \
$(top_builddir)/win32/Gdk_3_0_gir_list \
$(top_builddir)/win32/GdkWin32-3.0.gir.msvc.introspect \
$(top_builddir)/win32/GdkWin32_3_0_gir_list
Gdk_3_0_gir_MSVC_FILES = $(introspection_files)
Gdk_3_0_gir_MSVC_EXPORT_PACKAGES = $(Gdk_3_0_gir_EXPORT_PACKAGES)
Gdk_3_0_gir_MSVC_INCLUDE_GIRS = $(Gdk_3_0_gir_INCLUDES)
Gdk_3_0_gir_MSVC_LIBS = gdk-3.0
Gdk_3_0_gir_MSVC_CFLAGS = $(BASE_MSVC_GIR_CFLAGS)
Gdk_3_0_gir_MSVC_SCANNERFLAGS = $(Gdk_3_0_gir_SCANNERFLAGS)
GdkWin32_3_0_gir_MSVC_FILES = $(w32_introspection_files)
GdkWin32_3_0_gir_MSVC_INCLUDE_GIRS = $(GdkWin32_3_0_gir_INCLUDES)
GdkWin32_3_0_gir_MSVC_LIBS = $(Gdk_3_0_gir_MSVC_LIBS)
GdkWin32_3_0_gir_MSVC_CFLAGS = $(BASE_MSVC_GIR_CFLAGS)
GdkWin32_3_0_gir_MSVC_SCANNERFLAGS = \
--identifier-prefix=Gdk \
--c-include="gdk/gdkwin32.h" \
--include-uninstalled='./vs$$$$(VSVER)/$$$$(CFG)/$$$$(PLAT)/bin/Gdk-3.0.gir'
include $(top_srcdir)/win32/Makefile.msvc-introspection
else
INTROSPECTION_INTERMEDIATE_ITEMS =
endif
dist-hook: \
$(top_builddir)/win32/vs9/gdk-3.vcproj \
$(top_builddir)/win32/vs9/gdk-3.headers \
$(INTROSPECTION_INTERMEDIATE_ITEMS)
DISTCLEANFILES = gdkconfig.h stamp-gc-h
install-data-local: install-ms-lib install-def-file
uninstall-local: uninstall-ms-lib uninstall-def-file
rm -f $(DESTDIR)$(configexecincludedir)/gdkconfig.h
# if srcdir!=builddir, clean out maintainer-clean files from builddir
# this allows dist to pass.
distclean-local:
if test $(srcdir) != .; then \
rm -f $(MAINTAINERCLEANFILES); \
fi
.PHONY: files
files:
@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
echo $$p; \
done
-include $(top_srcdir)/git.mk
-136
View File
@@ -1,136 +0,0 @@
## Process this file with automake to produce Makefile.in
include $(top_srcdir)/Makefile.decl
NULL =
libgdkincludedir = $(includedir)/gtk-3.0/gdk
libgdkbroadwayincludedir = $(includedir)/gtk-3.0/gdk/broadway
AM_CPPFLAGS = \
-DG_LOG_DOMAIN=\"Gdk\" \
-DG_LOG_USE_STRUCTURED=1 \
-DGDK_COMPILATION \
-DGDK_DISABLE_DEPRECATION_WARNINGS \
-I$(top_srcdir) \
-I$(top_srcdir)/gdk \
-I$(top_builddir)/gdk \
$(GDK_HIDDEN_VISIBILITY_CFLAGS) \
$(GTK_DEBUG_FLAGS) \
$(GDK_DEP_CFLAGS)
LDADDS = $(GDK_DEP_LIBS) -lrt
noinst_LTLIBRARIES = libgdk-broadway.la
bin_PROGRAMS = broadwayd
libgdkinclude_HEADERS = \
gdkbroadway.h
libgdkbroadwayinclude_HEADERS = \
gdkbroadwaydisplay.h \
gdkbroadwaywindow.h \
gdkbroadwaycursor.h \
gdkbroadwaymonitor.h \
gdkbroadwayvisual.h
EXTRA_DIST += toarray.pl
clienthtml.h: client.html
$(AM_V_GEN) $(PERL) $(srcdir)/toarray.pl client_html $(srcdir)/client.html > $@
EXTRA_DIST += client.html
broadwayjs.h: broadway.js rawinflate.min.js
$(AM_V_GEN) $(PERL) $(srcdir)/toarray.pl broadway_js $(srcdir)/broadway.js $(srcdir)/rawinflate.min.js > $@
EXTRA_DIST += broadway.js rawinflate.min.js
# built headers that don't get installed
broadway_built_private_headers = \
clienthtml.h \
broadwayjs.h
broadway_built_sources = \
${broadway_built_private_headers}
libgdk_broadway_la_SOURCES = \
${broadway_built_private_headers}\
gdkcursor-broadway.c \
gdkdevice-broadway.h \
gdkdevice-broadway.c \
gdkdevicemanager-broadway.h \
gdkdevicemanager-broadway.c \
gdkdisplay-broadway.c \
gdkdisplay-broadway.h \
gdkdnd-broadway.c \
gdkeventsource.c \
gdkeventsource.h \
gdkglobals-broadway.c \
gdkkeys-broadway.c \
gdkmonitor-broadway.c \
gdkmonitor-broadway.h \
gdkproperty-broadway.c \
gdkscreen-broadway.c \
gdkscreen-broadway.h \
gdkselection-broadway.c \
gdktestutils-broadway.c \
gdkvisual-broadway.c \
gdkwindow-broadway.c \
gdkwindow-broadway.h \
gdkprivate-broadway.h \
gdkbroadway-server.h \
gdkbroadway-server.c
if OS_UNIX
libgdk_broadway_la_LIBADD = \
$(SHM_LIBS) \
$(NULL)
endif
broadwayd_SOURCES = \
broadway-protocol.h \
broadwayd.c \
broadway-server.h \
broadway-server.c \
broadway-buffer.c \
broadway-buffer.h \
broadway-output.h \
broadway-output.c
if OS_WIN32
broadwayd_LDADD = $(GDK_DEP_LIBS) -lws2_32
else
broadwayd_LDADD = $(GDK_DEP_LIBS) @SHM_LIBS@
endif
MAINTAINERCLEANFILES = $(broadway_built_sources)
EXTRA_DIST += $(broadway_built_sources)
BUILT_SOURCES = $(broadway_built_sources)
EXTRA_DIST += \
meson.build \
gen-c-array.py
# ------------------- MSVC Build Items ----------------
MSVCPROJS = gdk3-broadway broadwayd
gdk3_broadway_FILES = $(libgdk_broadway_la_SOURCES)
gdk3_broadway_EXCLUDES = dummy
gdk3_broadway_HEADERS_DIR = $(libgdkbroadwayincludedir)
gdk3_broadway_HEADERS_INST = $(libgdkbroadwayinclude_HEADERS)
gdk3_broadway_HEADERS_EXCLUDES = dummy
broadwayd_FILES = $(broadwayd_SOURCES)
broadwayd_EXCLUDES = dummy
include $(top_srcdir)/win32/Makefile.msvcproj
dist-hook: \
$(top_builddir)/win32/vs9/gdk3-broadway.vcproj \
$(top_builddir)/win32/vs9/broadwayd.vcproj \
$(top_builddir)/win32/vs9/gdk3-broadway.headers
-include $(top_srcdir)/git.mk
+9 -1
View File
@@ -157,7 +157,8 @@ typedef enum {
BROADWAY_REQUEST_GRAB_POINTER,
BROADWAY_REQUEST_UNGRAB_POINTER,
BROADWAY_REQUEST_FOCUS_WINDOW,
BROADWAY_REQUEST_SET_SHOW_KEYBOARD
BROADWAY_REQUEST_SET_SHOW_KEYBOARD,
BROADWAY_REQUEST_SET_MODAL_HINT
} BroadwayRequestType;
typedef struct {
@@ -231,6 +232,12 @@ typedef struct {
guint32 show_keyboard;
} BroadwayRequestSetShowKeyboard;
typedef struct {
BroadwayRequestBase base;
guint32 id;
gboolean modal_hint;
} BroadwayRequestSetModalHint;
typedef union {
BroadwayRequestBase base;
BroadwayRequestNewWindow new_window;
@@ -248,6 +255,7 @@ typedef union {
BroadwayRequestTranslate translate;
BroadwayRequestFocusWindow focus_window;
BroadwayRequestSetShowKeyboard set_show_keyboard;
BroadwayRequestSetModalHint set_modal_hint;
} BroadwayRequest;
typedef enum {
+38
View File
@@ -113,6 +113,7 @@ struct BroadwayWindow {
gboolean is_temp;
gboolean visible;
gint32 transient_for;
gboolean modal_hint;
BroadwayBuffer *buffer;
gboolean buffer_synced;
@@ -276,6 +277,14 @@ update_event_state (BroadwayServer *server,
{
window->x = message->configure_notify.x;
window->y = message->configure_notify.y;
if (server->focused_window_id != message->configure_notify.id &&
server->pointer_grab_window_id == -1 && window->modal_hint)
{
broadway_server_window_raise (server, message->configure_notify.id);
broadway_server_focus_window (server, message->configure_notify.id);
broadway_server_flush (server);
}
}
break;
case BROADWAY_EVENT_DELETE_NOTIFY:
@@ -1435,6 +1444,7 @@ broadway_server_destroy_window (BroadwayServer *server,
gint id)
{
BroadwayWindow *window;
gint transient_for = -1;
if (server->mouse_in_toplevel_id == id)
{
@@ -1453,6 +1463,9 @@ broadway_server_destroy_window (BroadwayServer *server,
GINT_TO_POINTER (id));
if (window != NULL)
{
if (server->focused_window_id == id)
transient_for = window->transient_for;
server->toplevels = g_list_remove (server->toplevels, window);
g_hash_table_remove (server->id_ht,
GINT_TO_POINTER (id));
@@ -1463,6 +1476,17 @@ broadway_server_destroy_window (BroadwayServer *server,
g_free (window);
}
if (transient_for != -1)
{
window = g_hash_table_lookup (server->id_ht,
GINT_TO_POINTER (transient_for));
if (window != NULL)
{
broadway_server_focus_window (server, transient_for);
broadway_server_flush (server);
}
}
}
gboolean
@@ -1588,6 +1612,20 @@ broadway_server_window_set_transient_for (BroadwayServer *server,
}
}
void
broadway_server_window_set_modal_hint (BroadwayServer *server,
gint id, gboolean modal_hint)
{
BroadwayWindow *window;
window = g_hash_table_lookup (server->id_ht,
GINT_TO_POINTER (id));
if (window == NULL)
return;
window->modal_hint = modal_hint;
}
gboolean
broadway_server_has_client (BroadwayServer *server)
{
+3
View File
@@ -95,5 +95,8 @@ cairo_surface_t * broadway_server_open_surface (BroadwayServer *server,
char *name,
int width,
int height);
void broadway_server_window_set_modal_hint (BroadwayServer *server,
gint id,
gboolean modal_hint);
#endif /* __BROADWAY_SERVER__ */
+142 -20
View File
@@ -1,3 +1,27 @@
/* check if we are on Android and using Chrome */
var isAndroidChrome = false;
{
var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf("android") > -1 && ua.indexOf("chrom") > -1) {
isAndroidChrome = true;
}
}
/* check for the passive option for Event listener */
let passiveSupported = false;
try {
const options = {
get passive() { // This function will be called when the browser
// attempts to access the passive property.
passiveSupported = true;
return false;
}
};
window.addEventListener("test", null, options);
window.removeEventListener("test", null, options);
} catch(err) {
passiveSupported = false;
}
/* Helper functions for debugging */
var logDiv = null;
function log(str) {
@@ -10,6 +34,25 @@ function log(str) {
logDiv.appendChild(document.createTextNode(str));
logDiv.appendChild(document.createElement('br'));
}
/* Helper functions for touch identifier to make it unique on Android */
var globalTouchIdentifier = Math.round(Date.now() / 1000);
function touchIdentifierStart(tId)
{
if (isAndroidChrome) {
if (tId == 0) {
return ++globalTouchIdentifier;
}
return globalTouchIdentifier + tId;
}
return tId;
}
function touchIdentifier(tId)
{
if (isAndroidChrome) {
return globalTouchIdentifier + tId;
}
return tId;
}
function getStackTrace()
{
@@ -91,6 +134,7 @@ grab.window = null;
grab.ownerEvents = false;
grab.implicit = false;
var keyDownList = [];
var inputList = [];
var lastSerial = 0;
var lastX = 0;
var lastY = 0;
@@ -223,6 +267,7 @@ function cmdSetTransientFor(id, parentId)
{
var surface = surfaces[id];
if (surface === undefined) return;
if (surface.transientParent == parentId)
return;
@@ -253,8 +298,9 @@ function moveToHelper(surface, position) {
for (var cid in surfaces) {
var child = surfaces[cid];
if (child.transientParent == surface.id)
if (child.transientParent == surface.id) {
moveToHelper(child, stackingOrder.indexOf(surface) + 1);
}
}
}
@@ -269,6 +315,13 @@ function cmdDeleteSurface(id)
stackingOrder.splice(i, 1);
var canvas = surface.canvas;
canvas.parentNode.removeChild(canvas);
if (id == windowWithMouse) {
windowWithMouse = 0;
}
if (id == realWindowWithMouse) {
realWindowWithMouse = 0;
firstTouchDownId = null;
}
delete surfaces[id];
}
@@ -307,6 +360,7 @@ function cmdRaiseSurface(id)
{
var surface = surfaces[id];
if (surface === undefined) return;
moveToHelper(surface);
restackWindows();
}
@@ -315,6 +369,7 @@ function cmdLowerSurface(id)
{
var surface = surfaces[id];
if (surface === undefined) return;
moveToHelper(surface, 0);
restackWindows();
}
@@ -520,6 +575,7 @@ function cmdPutBuffer(id, w, h, compressed)
var data = inflate.decompress();
var imageData = decodeBuffer (context, surface.imageData, w, h, data, debugDecoding);
context.imageSmoothingEnabled = false;
context.putImageData(imageData, 0, 0);
if (debugDecoding)
@@ -776,8 +832,15 @@ function getEffectiveEventTarget (id) {
function updateKeyboardStatus() {
if (fakeInput != null && showKeyboardChanged) {
showKeyboardChanged = false;
if (showKeyboard)
if (showKeyboard) {
if (isAndroidChrome) {
fakeInput.blur();
fakeInput.value = ' '.repeat(80); // TODO: Should be exchange with broadway server
// to bring real value here.
}
fakeInput.focus();
//if (isAndroidChrome) fakeInput.click();
}
else
fakeInput.blur();
}
@@ -2329,6 +2392,19 @@ function pushKeyEvent(fev) {
keyDownList.push(fev);
}
function copyInputEvent(ev) {
var members = ['inputType', 'data'], i, obj = {};
for (i = 0; i < members.length; i++) {
if (typeof ev[members[i]] !== "undefined")
obj[members[i]] = ev[members[i]];
}
return obj;
}
function pushInputEvent(fev) {
inputList.push(fev);
}
function getKeyEvent(keyCode, pop) {
var i, fev = null;
for (i = keyDownList.length-1; i >= 0; i--) {
@@ -2366,8 +2442,9 @@ function handleKeyDown(e) {
// If it is a key or key combination that might trigger
// browser behaviors or it has no corresponding keyPress
// event, then send it immediately
if (!ignoreKeyEvent(ev))
if (!ignoreKeyEvent(ev)) {
sendInput("k", [keysym, lastState]);
}
suppress = true;
}
@@ -2411,8 +2488,9 @@ function handleKeyPress(e) {
}
// Send the translated keysym
if (keysym > 0)
if (keysym > 0) {
sendInput ("k", [keysym, lastState]);
}
// Stop keypress events just in case
return cancelEvent(ev);
@@ -2427,11 +2505,45 @@ function handleKeyUp(e) {
keysym = fev.keysym;
else {
//log("Key event (keyCode = " + ev.keyCode + ") not found on keyDownList");
if (isAndroidChrome && (ev.keyCode == 229)) {
var i, fev = null, len = inputList.length, str;
for (i = 0; i < len; i++) {
fev = inputList[i];
switch(fev.inputType) {
case "deleteContentBackward":
sendInput ("k", [65288, lastState]);
sendInput ("K", [65288, lastState]);
break;
case "insertText":
if (fev.data !== undefined) {
for (let sym of fev.data) {
sendInput ("k", [sym.codePointAt(0), lastState]);
sendInput ("K", [sym.codePointAt(0), lastState]);
}
}
break;
default:
break;
}
}
inputList.splice(0, len);
}
keysym = 0;
}
if (keysym > 0)
if (keysym > 0) {
sendInput ("K", [keysym, lastState]);
}
return cancelEvent(ev);
}
function handleInput (e) {
var fev = null, ev = (e ? e : window.event), keysym = null, suppress = false;
fev = copyInputEvent(ev);
pushInputEvent(fev);
// Stop keypress events just in case
return cancelEvent(ev);
}
@@ -2450,6 +2562,11 @@ function onKeyUp (ev) {
return handleKeyUp(ev);
}
function onInput (ev) {
updateForEvent(ev);
return handleInput(ev);
}
function cancelEvent(ev)
{
ev = ev ? ev : window.event;
@@ -2481,13 +2598,14 @@ function onMouseWheel(ev)
}
function onTouchStart(ev) {
event.preventDefault();
ev.preventDefault();
updateKeyboardStatus();
updateForEvent(ev);
for (var i = 0; i < ev.changedTouches.length; i++) {
var touch = ev.changedTouches.item(i);
var touchId = touchIdentifierStart(touch.identifier);
var origId = getSurfaceId(touch);
var id = getEffectiveEventTarget (origId);
@@ -2495,7 +2613,7 @@ function onTouchStart(ev) {
var isEmulated = 0;
if (firstTouchDownId == null) {
firstTouchDownId = touch.identifier;
firstTouchDownId = touchId;
isEmulated = 1;
if (realWindowWithMouse != origId || id != windowWithMouse) {
@@ -2510,52 +2628,54 @@ function onTouchStart(ev) {
}
}
sendInput ("t", [0, id, touch.identifier, isEmulated, pos.rootX, pos.rootY, pos.winX, pos.winY, lastState]);
sendInput ("t", [0, id, touchId, isEmulated, pos.rootX, pos.rootY, pos.winX, pos.winY, lastState]);
}
}
function onTouchMove(ev) {
event.preventDefault();
ev.preventDefault();
updateKeyboardStatus();
updateForEvent(ev);
for (var i = 0; i < ev.changedTouches.length; i++) {
var touch = ev.changedTouches.item(i);
var touchId = touchIdentifier(touch.identifier);
var origId = getSurfaceId(touch);
var id = getEffectiveEventTarget (origId);
var pos = getPositionsFromEvent(touch, id);
var isEmulated = 0;
if (firstTouchDownId == touch.identifier) {
if (firstTouchDownId == touchId) {
isEmulated = 1;
}
sendInput ("t", [1, id, touch.identifier, isEmulated, pos.rootX, pos.rootY, pos.winX, pos.winY, lastState]);
sendInput ("t", [1, id, touchId, isEmulated, pos.rootX, pos.rootY, pos.winX, pos.winY, lastState]);
}
}
function onTouchEnd(ev) {
event.preventDefault();
ev.preventDefault();
updateKeyboardStatus();
updateForEvent(ev);
for (var i = 0; i < ev.changedTouches.length; i++) {
var touch = ev.changedTouches.item(i);
var touchId = touchIdentifier(touch.identifier);
var origId = getSurfaceId(touch);
var id = getEffectiveEventTarget (origId);
var pos = getPositionsFromEvent(touch, id);
var isEmulated = 0;
if (firstTouchDownId == touch.identifier) {
if (firstTouchDownId == touchId) {
isEmulated = 1;
firstTouchDownId = null;
}
sendInput ("t", [2, id, touch.identifier, isEmulated, pos.rootX, pos.rootY, pos.winX, pos.winY, lastState]);
sendInput ("t", [2, id, touchId, isEmulated, pos.rootX, pos.rootY, pos.winX, pos.winY, lastState]);
}
}
@@ -2572,11 +2692,11 @@ function setupDocument(document)
document.onkeyup = onKeyUp;
if (document.addEventListener) {
document.addEventListener('DOMMouseScroll', onMouseWheel, false);
document.addEventListener('mousewheel', onMouseWheel, false);
document.addEventListener('touchstart', onTouchStart, false);
document.addEventListener('touchmove', onTouchMove, false);
document.addEventListener('touchend', onTouchEnd, false);
document.addEventListener('DOMMouseScroll', onMouseWheel, passiveSupported ? { passive: false, capture: false } : false);
document.addEventListener('mousewheel', onMouseWheel, passiveSupported ? { passive: false, capture: false } : false);
document.addEventListener('touchstart', onTouchStart, passiveSupported ? { passive: false, capture: false } : false);
document.addEventListener('touchmove', onTouchMove, passiveSupported ? { passive: false, capture: false } : false);
document.addEventListener('touchend', onTouchEnd, passiveSupported ? { passive: false, capture: false } : false);
} else if (document.attachEvent) {
element.attachEvent("onmousewheel", onMouseWheel);
}
@@ -2630,12 +2750,14 @@ function connect()
};
var iOS = /(iPad|iPhone|iPod)/g.test( navigator.userAgent );
if (iOS) {
if (iOS || isAndroidChrome) {
fakeInput = document.createElement("input");
fakeInput.type = "text";
fakeInput.style.position = "absolute";
fakeInput.style.left = "-1000px";
fakeInput.style.top = "-1000px";
document.body.appendChild(fakeInput);
if (isAndroidChrome)
fakeInput.addEventListener('input', onInput, passiveSupported ? { passive: false, capture: false } : false);
}
}
+5
View File
@@ -301,6 +301,11 @@ client_handle_request (BroadwayClient *client,
case BROADWAY_REQUEST_SET_SHOW_KEYBOARD:
broadway_server_set_show_keyboard (server, request->set_show_keyboard.show_keyboard);
break;
case BROADWAY_REQUEST_SET_MODAL_HINT:
broadway_server_window_set_modal_hint (server,
request->set_modal_hint.id,
request->set_modal_hint.modal_hint);
break;
default:
g_warning ("Unknown request of type %d", request->base.type);
}
+12
View File
@@ -523,6 +523,18 @@ _gdk_broadway_server_window_set_transient_for (GdkBroadwayServer *server,
BROADWAY_REQUEST_SET_TRANSIENT_FOR);
}
void
_gdk_broadway_server_window_set_modal_hint (GdkBroadwayServer *server,
gint id, gboolean modal_hint)
{
BroadwayRequestSetModalHint msg;
msg.id = id;
msg.modal_hint = modal_hint;
gdk_broadway_server_send_message (server, msg,
BROADWAY_REQUEST_SET_MODAL_HINT);
}
static void *
map_named_shm (char *name, gsize size, gboolean *is_shm)
{
+3
View File
@@ -71,5 +71,8 @@ gboolean _gdk_broadway_server_window_move_resize (GdkBroadwaySer
int y,
int width,
int height);
void _gdk_broadway_server_window_set_modal_hint (GdkBroadwayServer *server,
gint id,
gboolean modal_hint);
#endif /* __GDK_BROADWAY_SERVER__ */
-46
View File
@@ -1,46 +0,0 @@
/* gdkbroadwaydisplaymanager.h
*
* Copyright (C) 2005-2007 Imendio AB
* Copyright 2010 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __GDK_BROADWAY_DISPLAY_MANAGER_H__
#define __GDK_BROADWAY_DISPLAY_MANAGER_H__
#if !defined(__GDKBROADWAY_H_INSIDE__) && !defined (GDK_COMPILATION)
#error "Only <gdk/gdkbroadway.h> can be included directly."
#endif
#include <gdk/gdk.h>
G_BEGIN_DECLS
#define GDK_TYPE_BROADWAY_DISPLAY_MANAGER (gdk_broadway_display_manager_get_type ())
#define GDK_BROADWAY_DISPLAY_MANAGER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_BROADWAY_DISPLAY_MANAGER, GdkBroadwayDisplayManager))
#ifdef GDK_COMPILATION
typedef struct _GdkBroadwayDisplayManager GdkBroadwayDisplayManager;
#else
typedef GdkDisplayManager _GdkBroadwayDisplayManager;
#endif
typedef struct _GdkDisplayManagerClass GdkBroadwayDisplayManagerClass;
GDK_AVAILABLE_IN_ALL
GType gdk_broadway_display_manager_get_type (void);
G_END_DECLS
#endif /* __GDK_BROADWAY_DISPLAY_MANAGER_H__ */
+1 -1
View File
@@ -109,7 +109,7 @@ _gdk_broadway_display_open (const gchar *display_name)
broadway_display->server = _gdk_broadway_server_new (display_name, &error);
if (broadway_display->server == NULL)
{
g_printerr ("Unable to init server: %s\n", error->message);
GDK_NOTE (MISC, g_message ("Unable to init Broadway server: %s\n", error->message));
g_error_free (error);
return NULL;
}
+21
View File
@@ -89,6 +89,24 @@ gdk_event_source_check (GSource *source)
return retval;
}
static void
handle_focus_change (GdkEventCrossing *event)
{
gboolean focus_in = (event->type != GDK_ENTER_NOTIFY);
GdkEvent *focus_event;
if (event->window->parent) {
focus_event = gdk_event_new (GDK_FOCUS_CHANGE);
focus_event->focus_change.window = g_object_ref (event->window->parent);
focus_event->focus_change.send_event = FALSE;
focus_event->focus_change.in = focus_in;
gdk_event_set_device (focus_event, gdk_event_get_device ((GdkEvent *) event));
gdk_event_put (focus_event);
gdk_event_free (focus_event);
}
}
void
_gdk_broadway_events_got_input (BroadwayInputMsg *message)
{
@@ -160,6 +178,8 @@ _gdk_broadway_events_got_input (BroadwayInputMsg *message)
gdk_event_set_device (event, device_manager->core_pointer);
gdk_event_set_seat (event, gdk_device_get_seat (device_manager->core_pointer));
handle_focus_change (&event->crossing);
node = _gdk_event_queue_append (display, event);
_gdk_windowing_got_event (display, node, event, message->base.serial);
}
@@ -224,6 +244,7 @@ _gdk_broadway_events_got_input (BroadwayInputMsg *message)
event->scroll.y = message->pointer.win_y;
event->scroll.x_root = message->pointer.root_x;
event->scroll.y_root = message->pointer.root_y;
event->scroll.state = message->pointer.state;
event->scroll.direction = message->scroll.dir == 0 ? GDK_SCROLL_UP : GDK_SCROLL_DOWN;
gdk_event_set_device (event, device_manager->core_pointer);
gdk_event_set_seat (event, gdk_device_get_seat (device_manager->core_pointer));
+9
View File
@@ -584,6 +584,15 @@ static void
gdk_broadway_window_set_modal_hint (GdkWindow *window,
gboolean modal)
{
GdkBroadwayDisplay *display;
GdkWindowImplBroadway *impl;
impl = GDK_WINDOW_IMPL_BROADWAY (window->impl);
impl->modal_hint = modal;
display = GDK_BROADWAY_DISPLAY (gdk_window_get_display (impl->wrapper));
_gdk_broadway_server_window_set_modal_hint (display->server, impl->id, impl->modal_hint);
}
static void
+1
View File
@@ -73,6 +73,7 @@ struct _GdkWindowImplBroadway
GdkGeometry geometry_hints;
GdkWindowHints geometry_hints_mask;
gboolean modal_hint;
};
struct _GdkWindowImplBroadwayClass
+2 -1
View File
@@ -22,7 +22,8 @@ gdk__private__ (void)
gdk_get_desktop_autostart_id,
gdk_profiler_is_running,
gdk_profiler_start,
gdk_profiler_stop
gdk_profiler_stop,
gdk_window_titlebar_gesture,
};
return &table;
+3
View File
@@ -66,6 +66,9 @@ typedef struct {
gboolean (* gdk_profiler_is_running) (void);
void (* gdk_profiler_start) (int fd);
void (* gdk_profiler_stop) (void);
gboolean (* gdk_window_titlebar_gesture) (GdkWindow *window,
GdkTitlebarGesture gesture);
} GdkPrivateVTable;
GDK_AVAILABLE_IN_ALL
+4 -3
View File
@@ -1132,7 +1132,8 @@ gdk_unichar_direction (gunichar ch)
return PANGO_DIRECTION_LTR;
}
#ifdef G_HAS_CONSTRUCTORS
#if defined (G_HAS_CONSTRUCTORS) && !defined (G_OS_WIN32)
#define GDK_USE_CONSTRUCTORS
#ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA
#pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(stash_startup_id)
#pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(stash_autostart_id)
@@ -1175,7 +1176,7 @@ gdk_get_desktop_startup_id (void)
if (g_once_init_enter (&init))
{
#ifndef G_HAS_CONSTRUCTORS
#ifndef GDK_USE_CONSTRUCTORS
stash_startup_id ();
#endif
/* Clear the environment variable so it won't be inherited by
@@ -1196,7 +1197,7 @@ gdk_get_desktop_autostart_id (void)
if (g_once_init_enter (&init))
{
#ifndef G_HAS_CONSTRUCTORS
#ifndef GDK_USE_CONSTRUCTORS
stash_autostart_id ();
#endif
/* Clear the environment variable so it won't be inherited by
+3
View File
@@ -205,6 +205,9 @@ gdk_app_launch_context_set_display (GdkAppLaunchContext *context,
* Sets the screen on which applications will be launched when
* using this context. See also gdk_app_launch_context_set_display().
*
* Note that, typically, a #GdkScreen represents a logical screen,
* not a physical monitor.
*
* If both @screen and @display are set, the @screen takes priority.
* If neither @screen or @display are set, the default screen and
* display are used.
+2 -2
View File
@@ -5,14 +5,14 @@
/*** END file-header ***/
/*** BEGIN file-production ***/
/* enumerations from "@filename@" */
/* enumerations from "@basename@" */
/*** END file-production ***/
/*** BEGIN value-header ***/
GType
@enum_name@_get_type (void)
{
static volatile gsize g_define_type_id__volatile = 0;
static gsize g_define_type_id__volatile = 0;
if (g_once_init_enter (&g_define_type_id__volatile))
{
+12 -6
View File
@@ -258,6 +258,7 @@ _gdk_event_queue_handle_motion_compression (GdkDisplay *display)
GList *pending_motions = NULL;
GdkWindow *pending_motion_window = NULL;
GdkDevice *pending_motion_device = NULL;
gboolean uncompressed_motion = FALSE;
/* If the last N events in the event queue are motion notify
* events for the same window, drop all but the last */
@@ -282,10 +283,14 @@ _gdk_event_queue_handle_motion_compression (GdkDisplay *display)
pending_motion_device != event->event.motion.device)
break;
if (!event->event.motion.window->event_compression)
break;
pending_motion_window = event->event.motion.window;
if (!event->event.motion.window->event_compression)
{
uncompressed_motion = TRUE;
break;
}
pending_motion_device = event->event.motion.device;
pending_motions = tmp_list;
@@ -301,9 +306,10 @@ _gdk_event_queue_handle_motion_compression (GdkDisplay *display)
pending_motions = next;
}
if (pending_motions &&
pending_motions == display->queued_events &&
pending_motions == display->queued_tail)
if (uncompressed_motion ||
(pending_motions &&
pending_motions == display->queued_events &&
pending_motions == display->queued_tail))
{
GdkFrameClock *clock = gdk_window_get_frame_clock (pending_motion_window);
if (clock) /* might be NULL if window was destroyed */
+29 -17
View File
@@ -352,6 +352,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
int alpha_size = 0;
cairo_region_t *clip_region;
GdkGLContextPaintData *paint_data;
GLsync sync = NULL;
impl_window = window->impl_window;
@@ -366,11 +367,22 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
clip_region = gdk_cairo_region_from_clip (cr);
if ((gdk_gl_context_get_current () != NULL) && (gdk_gl_context_get_current () != paint_context))
sync = glFenceSync (GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
gdk_gl_context_make_current (paint_context);
if (sync)
{
glWaitSync (sync, 0, GL_TIMEOUT_IGNORED);
glDeleteSync (sync);
sync = NULL;
}
paint_data = gdk_gl_context_get_paint_data (paint_context);
if (paint_data->tmp_framebuffer == 0)
glGenFramebuffersEXT (1, &paint_data->tmp_framebuffer);
glGenFramebuffers (1, &paint_data->tmp_framebuffer);
if (source_type == GL_RENDERBUFFER)
{
@@ -423,10 +435,10 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
/* Create a framebuffer with the source renderbuffer and
make it the current target for reads */
framebuffer = paint_data->tmp_framebuffer;
glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, framebuffer);
glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
GL_RENDERBUFFER_EXT, source);
glBindFramebufferEXT (GL_DRAW_FRAMEBUFFER_EXT, 0);
glBindFramebuffer (GL_FRAMEBUFFER, framebuffer);
glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
GL_RENDERBUFFER, source);
glBindFramebuffer (GL_DRAW_FRAMEBUFFER, 0);
/* Translate to impl coords */
cairo_region_translate (clip_region, dx, dy);
@@ -481,11 +493,11 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
{
int clipped_src_x = x + (dest.x - dx * window_scale);
int clipped_src_y = y + (height - dest.height - (dest.y - dy * window_scale));
glBlitFramebufferEXT(clipped_src_x, clipped_src_y,
(clipped_src_x + dest.width), (clipped_src_y + dest.height),
dest.x, FLIP_Y(dest.y + dest.height),
dest.x + dest.width, FLIP_Y(dest.y),
GL_COLOR_BUFFER_BIT, GL_NEAREST);
glBlitFramebuffer (clipped_src_x, clipped_src_y,
(clipped_src_x + dest.width), (clipped_src_y + dest.height),
dest.x, FLIP_Y(dest.y + dest.height),
dest.x + dest.width, FLIP_Y(dest.y),
GL_COLOR_BUFFER_BIT, GL_NEAREST);
if (impl_window->current_paint.flushed_region)
{
cairo_rectangle_int_t flushed_rect;
@@ -505,7 +517,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
glDisable (GL_SCISSOR_TEST);
glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, 0);
glBindFramebuffer (GL_FRAMEBUFFER, 0);
#undef FLIP_Y
@@ -671,19 +683,19 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
cairo_surface_set_device_scale (image, buffer_scale, buffer_scale);
framebuffer = paint_data->tmp_framebuffer;
glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, framebuffer);
glBindFramebuffer (GL_FRAMEBUFFER, framebuffer);
if (source_type == GL_RENDERBUFFER)
{
/* Create a framebuffer with the source renderbuffer and
make it the current target for reads */
glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
GL_RENDERBUFFER_EXT, source);
glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
GL_RENDERBUFFER, source);
}
else
{
glFramebufferTexture2DEXT (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
GL_TEXTURE_2D, source, 0);
glFramebufferTexture2D (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
GL_TEXTURE_2D, source, 0);
}
glPixelStorei (GL_PACK_ALIGNMENT, 4);
@@ -699,7 +711,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
glPixelStorei (GL_PACK_ROW_LENGTH, 0);
glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, 0);
glBindFramebuffer (GL_FRAMEBUFFER, 0);
cairo_surface_mark_dirty (image);
+3
View File
@@ -557,6 +557,9 @@ void _gdk_synthesize_crossing_events_for_geometry_change (GdkWindow *changed_win
gboolean _gdk_window_has_impl (GdkWindow *window);
GdkWindow * _gdk_window_get_impl_window (GdkWindow *window);
gboolean gdk_window_titlebar_gesture (GdkWindow *window,
GdkTitlebarGesture gesture);
/*****************************
* offscreen window routines *
*****************************/
+1 -8
View File
@@ -835,18 +835,13 @@ static const struct {
/* Following items added to GTK, not in the xterm table */
/* A few ASCII control characters */
#ifndef GDK_WINDOWING_WIN32
{ 0xFF08 /* Backspace */, '\b' },
{ 0xFF09 /* Tab */, '\t' },
#endif
{ 0xFF0A /* Linefeed */, '\n' },
{ 0xFF0B /* Vert. Tab */, '\v' },
#ifndef GDK_WINDOWING_WIN32
{ 0xFF0D /* Return */, '\r' },
{ 0xFF1B /* Escape */, '\033' },
#endif
/* Numeric keypad */
@@ -871,9 +866,7 @@ static const struct {
/* End numeric keypad */
#ifndef GDK_WINDOWING_WIN32
{ 0xFFFF /* Delete */, '\177' }
#endif
};
/**
+25 -7
View File
@@ -51,9 +51,11 @@
* @height: Height in pixels of region to get
*
* Transfers image data from a #GdkWindow and converts it to an RGB(A)
* representation inside a #GdkPixbuf. In other words, copies
* image data from a server-side drawable to a client-side RGB(A) buffer.
* This allows you to efficiently read individual pixels on the client side.
* representation inside a #GdkPixbuf.
*
* In other words, copies image data from a server-side drawable to a
* client-side RGB(A) buffer. This allows you to efficiently read
* individual pixels on the client side.
*
* This function will create an RGB pixbuf with 8 bits per channel with
* the size specified by the @width and @height arguments scaled by the
@@ -62,7 +64,8 @@
*
* If the window is off the screen, then there is no image data in the
* obscured/offscreen regions to be placed in the pixbuf. The contents of
* portions of the pixbuf corresponding to the offscreen region are undefined.
* portions of the pixbuf corresponding to the offscreen region are
* undefined.
*
* If the window youre obtaining data from is partially obscured by
* other windows, then the contents of the pixbuf areas corresponding
@@ -74,11 +77,13 @@
* If memory cant be allocated for the return value, %NULL will be returned
* instead.
*
* (In short, there are several ways this function can fail, and if it fails
* it returns %NULL; so check the return value.)
* In short, there are several ways this function can fail, and if it fails
* it returns %NULL; so check the return value.
*
* You should rarely, if ever, need to call this function.
*
* Returns: (nullable) (transfer full): A newly-created pixbuf with a
* reference count of 1, or %NULL on error
* reference count of 1, or %NULL on error
*/
GdkPixbuf *
gdk_pixbuf_get_from_window (GdkWindow *src,
@@ -102,8 +107,20 @@ gdk_pixbuf_get_from_window (GdkWindow *src,
/* We do not know what happened to this surface outside of GDK.
* Especially for foreign windows, they will have been modified
* by external applications.
*
* So be on the safe side and:
* - flush the Cairo state
* - mark the surface as dirty, in case the GdkWindow was
* created from a foreign X11 surface
*
* THE ORDER IS IMPORTANT. DO NOT CHANGE IT.
*
* For reference, see:
* - https://bugzilla.gnome.org/show_bug.cgi?id=754952
* - https://gitlab.gnome.org/GNOME/gtk/-/issues/4456
* - https://gitlab.gnome.org/GNOME/gtk/-/issues/5691
*/
cairo_surface_flush (surface);
cairo_surface_mark_dirty (surface);
if (cairo_surface_get_content (surface) & CAIRO_CONTENT_ALPHA)
@@ -288,6 +305,7 @@ gdk_pixbuf_get_from_surface (cairo_surface_t *surface,
if (cairo_surface_status (surface) || dest == NULL)
{
cairo_surface_destroy (surface);
g_clear_object (&dest);
return NULL;
}
+2 -1
View File
@@ -43,7 +43,8 @@ struct _GdkSeatDefaultPrivate
GDK_ENTER_NOTIFY_MASK | \
GDK_LEAVE_NOTIFY_MASK | \
GDK_PROXIMITY_IN_MASK | \
GDK_PROXIMITY_OUT_MASK)
GDK_PROXIMITY_OUT_MASK | \
GDK_TOUCHPAD_GESTURE_MASK)
G_DEFINE_TYPE_WITH_PRIVATE (GdkSeatDefault, gdk_seat_default, GDK_TYPE_SEAT)
+19 -2
View File
@@ -1286,7 +1286,7 @@ get_native_device_event_mask (GdkWindow *private,
if (gdk_window_is_toplevel (private) ||
mask & GDK_BUTTON_PRESS_MASK)
mask |=
GDK_TOUCH_MASK |
GDK_TOUCH_MASK | GDK_TOUCHPAD_GESTURE_MASK |
GDK_POINTER_MOTION_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
GDK_SCROLL_MASK;
@@ -10200,7 +10200,7 @@ gdk_window_create_similar_surface (GdkWindow * window,
* gdk_window_create_similar_image_surface:
* @window: (nullable): window to make new surface similar to, or
* %NULL if none
* @format: (type int): the format for the new surface
* @format: the format for the new surface
* @width: width of the new surface
* @height: height of the new surface
* @scale: the scale of the new surface, or 0 to use same as @window
@@ -11998,3 +11998,20 @@ gdk_window_show_window_menu (GdkWindow *window,
else
return FALSE;
}
gboolean
gdk_window_titlebar_gesture (GdkWindow *window,
GdkTitlebarGesture gesture)
{
GdkWindowImplClass *impl_class;
g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
g_return_val_if_fail (!GDK_WINDOW_DESTROYED (window), FALSE);
impl_class = GDK_WINDOW_IMPL_GET_CLASS (window->impl);
if (impl_class->titlebar_gesture)
return impl_class->titlebar_gesture (window, gesture);
else
return FALSE;
}
+10
View File
@@ -30,6 +30,13 @@
G_BEGIN_DECLS
typedef enum
{
GDK_TITLEBAR_GESTURE_DOUBLE_CLICK = 1,
GDK_TITLEBAR_GESTURE_RIGHT_CLICK = 2,
GDK_TITLEBAR_GESTURE_MIDDLE_CLICK = 3
} GdkTitlebarGesture;
#define GDK_TYPE_WINDOW_IMPL (gdk_window_impl_get_type ())
#define GDK_WINDOW_IMPL(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WINDOW_IMPL, GdkWindowImpl))
#define GDK_WINDOW_IMPL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_WINDOW_IMPL, GdkWindowImplClass))
@@ -315,6 +322,9 @@ struct _GdkWindowImplClass
const cairo_region_t *region);
void (* destroy_draw_context) (GdkWindow *window,
GdkDrawingContext *context);
gboolean (* titlebar_gesture) (GdkWindow *window,
GdkTitlebarGesture gesture);
};
/* Interface Functions */
-175
View File
@@ -1,175 +0,0 @@
## Makefile for building the GDK DLL with Microsoft C
## Use: nmake -f makefile.msc
## You must first build the Win32-dependent sources in the win32 subdirectory.
## There is no install target, you have to decide where and
## how to install for yourself.
TOP = ..\..
!INCLUDE $(TOP)/glib/build/win32/make.msc
# Location of the Wintab toolkit. Downloadable from http://www.pointing.com.
# definition should possibly go to build/win32/module.def, too.
!IFNDEF WTKIT
WTKIT = $(TOP)\wtkit126
!ENDIF
###############################################################
# Nothing much configurable below
# overwrite version?
GTK_VER=3.0
!IFNDEF PERL
PERL = perl
!ENDIF
INCLUDES = -FImsvc_recommended_pragmas.h \
-I . -I .. \
$(GLIB_CFLAGS) $(PANGO_CFLAGS) $(CAIRO_CFLAGS) $(GDK_PIXBUF_CFLAGS) \
DEFINES = \
-DHAVE_CONFIG_H \
-DGDK_VERSION=\"$(GTK_VER)\" \
-DG_LOG_DOMAIN=\"Gdk\" \
-DGDK_COMPILATION -DG_LOG_DOMAIN=\"Gdk\"
EXTRALIBS = \
$(WTKIT)\lib\i386\wntab32x.lib \
$(GLIB_LIBS) $(GDK_PIXBUF_LIBS) \
$(CAIRO_LIBS) $(CAIRO_GOBJECT_LIBS) \
$(PANGOWIN32_LIBS) $(PANGOCAIRO_LIBS) $(INTL_LIBS)
gdk-win32-backend :
cd win32
nmake -nologo -f makefile.msc
cd ..
all: \
..\config.h \
gdkconfig.h \
gdkenumtypes.h \
gdkenumtypes.c \
gdkmarshalers.h \
gdkmarshalers.c \
gdk-win32-backend \
libgdk-win32-$(GTK_VER)-0.dll \
# testgdk.exe \
# gdk-win32-$(GTK_VER)s.lib \
# gdk-x11-$(GTK_VER).dll \
gdk_OBJECTS = \
gdk.obj \
gdkapplaunchcontext.obj \
gdkcairo.obj \
gdkcolor.obj \
gdkcursor.obj \
gdkdevice.obj \
gdkdevicemanager.obj \
gdkdisplay.obj \
gdkdisplaymanager.obj \
gdkdnd.obj \
gdkenumtypes.obj \
gdkevents.obj \
gdkglobals.obj \
gdkkeynames.obj \
gdkkeys.obj \
gdkkeyuni.obj \
gdkmarshalers.obj \
gdkoffscreenwindow.obj \
gdkpango.obj \
gdkpixbuf-drawable.obj \
gdkrectangle.obj \
gdkrgba.obj \
gdkscreen.obj \
gdkselection.obj \
gdkvisual.obj \
gdkwindow.obj \
gdkwindowimpl.obj \
gdk_public_h_sources = \
gdk.h \
gdkapplaunchcontext.h \
gdkcairo.h \
gdkcolor.h \
gdkcursor.h \
gdkdevice.h \
gdkdevicemanager.h \
gdkdisplay.h \
gdkdisplaymanager.h \
gdkdnd.h \
gdkevents.h \
gdkkeys.h \
gdkkeysyms.h \
gdkkeysyms-compat.h \
gdkmain.h \
gdkpango.h \
gdkpixbuf.h \
gdkprivate.h \
gdkproperty.h \
gdkrectangle.h \
gdkrgba.h \
gdkscreen.h \
gdkselection.h \
gdktestutils.h \
gdkthreads.h \
gdktypes.h \
gdkvisual.h \
gdkwindow.h
# private marshalers
gdkmarshalers.h : gdkmarshalers.list
$(GLIB)\gobject\glib-genmarshal --prefix=_gdk_marshal gdkmarshalers.list --header >>gdkmarshalers.h
gdkmarshalers.c : gdkmarshalers.list
$(GLIB)\gobject\glib-genmarshal --prefix=_gdk_marshal gdkmarshalers.list --body >gdkmarshalers.c
gdkenumtypes.h: $(gdk_public_h_sources) gdkenumtypes.h.template
$(PERL) $(GLIB)\gobject\glib-mkenums --template gdkenumtypes.h.template \
$(gdk_public_h_sources) > gdkenumtypes.h
gdkenumtypes.c: $(gdk_public_h_sources) gdkenumtypes.c.template
$(PERL) $(GLIB)\gobject\glib-mkenums --template gdkenumtypes.c.template \
$(gdk_public_h_sources) > gdkenumtypes.c
..\config.h : ..\config.h.win32
copy ..\config.h.win32 ..\config.h
gdkconfig.h : gdkconfig.h.win32
copy gdkconfig.h.win32 gdkconfig.h
gdk.def: gdk.symbols
echo EXPORTS > gdk.def
cl /EP -DG_OS_WIN32 -DGDK_WINDOWING_WIN32 \
-DG_GNUC_CONST= \
gdk.symbols >> gdk.def
# /force /verbose:lib
libgdk-win32-$(GTK_VER)-0.dll : $(gdk_OBJECTS) gdk.def win32\gdk-win32.lib
$(CC) $(CFLAGS) -LD -Fe$@ $(gdk_OBJECTS) win32\gdk-win32.lib $(EXTRALIBS) \
gdi32.lib user32.lib imm32.lib shell32.lib ole32.lib uuid.lib win32\gdk.res \
$(LDFLAGS) /implib:gdk-win32-$(GTK_VER).lib /def:gdk.def
gdk-win32-$(GTK_VER)s.lib : $(gdk_OBJECTS)
lib /out:gdk-win32-$(GTK_VER)s.lib $(gdk_OBJECTS) win32\gdk-win32.lib
gdk-x11-$(GTK_VER).dll : $(gdk_OBJECTS) gdk.def x11\gdk-x11.lib
$(CC) $(CFLAGS) -LD -Fegdk-x11-$(GTK_VER).dll $(gdk_OBJECTS) \
$(PANGO)\pango\pangox-$(PANGO_VER).lib \
x11\gdk-x11.lib $(X11_LIBS) $(EXTRALIBS) user32.lib $(LDFLAGS) /def:gdk.def
testgdk.exe : libgdk-win32-$(GTK_VER)-0.dll testgdk.obj
$(CC) -Fetestgdk.exe testgdk.obj gdk-win32-$(GTK_VER).lib $(EXTRALIBS) $(LDFLAGS)
clean::
cd win32
nmake -f makefile.msc clean
cd ..
del gdkmarshalers.c
del gdkmarshalers.h
del *.dll
del *.obj
del *.lib
del *.err
del *.res

Some files were not shown because too many files have changed in this diff Show More