commit de3b244fa1f1ae7dadf2c806080fff47819a465b Author: Matthias Clasen Date: Wed Jul 19 09:16:13 2017 -0400 3.91.1 NEWS | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 2 +- 2 files changed, 55 insertions(+), 1 deletion(-) commit f0f5c67c9d51e38c42bd2821b7f2935852a5f450 Author: Matthias Clasen Date: Wed Jul 19 15:45:51 2017 -0400 a11y tests: Update expected results The license urls in the about dialog changed. testsuite/a11y/about.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b151b1ba9e8770b7e60d607bc3f9a308a36d8c5a Author: Carlos Garnacho Date: Wed Jul 19 20:57:04 2017 +0200 testsuite: Adjust gestures tests to gtk4 event delivery Events that get to gtk_main_do_event() have the toplevel GdkWindow as event->any.window. Also, ensure that coordinates fall within sensible places of the windows, since those might have shadows, headerbars and whatnot on wayland. testsuite/gtk/gestures.c | 122 +++++++++++++++++++++++++++++++---------------- 1 file changed, 82 insertions(+), 40 deletions(-) commit 9de7c9f5959b3321f50d4a31cacfd62a90f609df Author: Carlos Garnacho Date: Wed Jul 19 18:13:47 2017 +0200 gtkwindow: Free pointer foci on dispose That means the whole hierarchy is getting destroyed, leaving those behind incurs not only in a leak, but also on weak refs (and unintended repick) to happen in the wrong moment. gtk/gtkwindow.c | 3 +++ 1 file changed, 3 insertions(+) commit 4772fc2d4278d8369e944b9040e708945330d0cd Author: Carlos Garnacho Date: Wed Jul 19 18:12:53 2017 +0200 gtkwindow: Do not leak GtkPointerFocus gtk_window_add_pointer_focus() increments the refcount, which means the caller should be dropping its own. gtk/gtkwindow.c | 1 + 1 file changed, 1 insertion(+) commit a72c735b74502c2870b82eeb89cc05a69c110a83 Author: John Ralls Date: Tue Jul 18 14:42:26 2017 -0700 Fix compile error in imquartz.c due to API change in GtkIMContext. modules/input/imquartz.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit fb70bfb69be41562ea2a72084a62c8bc77f58b3c Author: John Ralls Date: Tue Jul 18 14:47:25 2017 -0700 Fix MacOS compiler warnings. gtk/gtkclipboard-quartz.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit ead480bc39d718060bb742783a4bf67966a761e3 Author: John Ralls Date: Tue Jul 18 11:15:12 2017 -0700 Copy gtk_clipboard_get_default implementation to gtkclipboard-quartz.c Fixes bug 784323. gtk/gtkclipboard-quartz.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 187e652adba1f0bbcc564f232a9504a73761e162 Author: Philip Chimento Date: Wed Nov 2 23:37:29 2016 -0700 quartz: Implement gtk_clipboard_get_selection This function is trivial and can be copied from the X11 implementation. https://bugzilla.gnome.org/show_bug.cgi?id=772281 gtk/gtkclipboard-quartz.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 1b60361b4a34f67027de7d3a9873e1dd61dc609a Author: Emmanuele Bassi Date: Tue Jul 18 22:50:57 2017 +0100 meson: Add missing source file The newly added gtkfilechoosererrorstack.c source needs to be included in the Meson build as well as the Autotools one. gtk/meson.build | 1 + 1 file changed, 1 insertion(+) commit f28c418ad5c620114744da783d6814905b870d04 Author: Piotr Drąg Date: Tue Jul 18 22:03:29 2017 +0200 Update POTFILES.in po-properties/POTFILES.in | 1 + po/POTFILES.in | 1 + 2 files changed, 2 insertions(+) commit 3505e0d6e7c8e414b3c9e4954b7e0f183463b323 Author: Timm Bäder Date: Tue May 9 09:52:00 2017 +0200 filechooserwidget: Add GtkFileChooserErrorStack Showing all the different errors and warnings when renaming and creating files/folders without potentially resizing popovers on every keystroke requires us to know the size of the error messages beforehand, so pack all of the possible error messages and warnings in labels and those into a stack. This way we can also neatly crossfade transition between them. https://bugzilla.gnome.org/show_bug.cgi?id=775636 gtk/Makefile.am | 4 +- gtk/gtkfilechoosererrorstack.c | 136 ++++++++++++++++++++++++++++++++++ gtk/gtkfilechoosererrorstackprivate.h | 58 +++++++++++++++ gtk/gtkfilechooserwidget.c | 69 +++++++---------- gtk/ui/gtkfilechooserwidget.ui | 6 +- 5 files changed, 227 insertions(+), 46 deletions(-) commit 20d47e2a6c41a28c00626f7bbc2375929e9a8be1 Author: Timm Bäder Date: Sat Feb 4 10:49:43 2017 +0100 filechooserwidget: Let the rename entry hexpand This makes a difference with other locals where error messages are longer than the standard width of entry+spacing+button. https://bugzilla.gnome.org/show_bug.cgi?id=775636 gtk/ui/gtkfilechooserwidget.ui | 1 + 1 file changed, 1 insertion(+) commit 38300832138c178fa470e9a73418edf3a15c98cf Author: Iñaki García Etxebarria Date: Sat Apr 29 13:08:49 2017 +0200 Add nullable return annotation to gtk_text_mark_get_name https://bugzilla.gnome.org/show_bug.cgi?id=781936 gtk/gtktextmark.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 59a22b3d7e63d9838139163629499b1ee33f524d Author: Iñaki García Etxebarria Date: Sat Apr 29 13:08:26 2017 +0200 Add nullable return annotation to gtk_notebook_get_tab_label https://bugzilla.gnome.org/show_bug.cgi?id=781935 gtk/gtknotebook.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eb3bc251d5b0ffc883304a25227f15d66f66246d Author: Daniel Aleksandersen Date: Fri Jul 14 03:19:47 2017 +0200 Update the URLs of known licenses to HTTPS Use HTTPS by default for security/privacy. Avoids slow redirects. https://bugzilla.gnome.org/show_bug.cgi?id=766517 gtk/gtkaboutdialog.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 4b1853b32fff3202daa32276191dc2214aef5bf3 Author: Arun Raghavan Date: Thu Jul 13 11:25:11 2017 +0530 gtkapplication: Mark gtk_application_get_active_window() as nullable https://bugzilla.gnome.org/show_bug.cgi?id=784888 gtk/gtkapplication.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit cddce5a0239c3c5a707af2957d66735d63ae0477 Author: Piotr Drąg Date: Tue Jul 18 19:43:09 2017 +0200 Update POTFILES.in po-properties/POTFILES.in | 1 + po/POTFILES.in | 1 + 2 files changed, 2 insertions(+) commit d4b1cc3f569654202cf1dee35adcfe50905b00cf Author: Matthias Clasen Date: Tue Jul 18 13:35:21 2017 -0400 Add gtkfilechoosernativequart.c to meson build We have two build systems now, for good measure. gtk/meson.build | 1 + 1 file changed, 1 insertion(+) commit 0e7d6bb71e0afe56f88c697105e5288ab7fa19e8 Author: Tom Schoonjans Date: Thu Jul 13 20:07:22 2017 +0100 GtkFileChooserNativeWin32: add support for get_filter and set_filter https://bugzilla.gnome.org/show_bug.cgi?id=784723 gtk/gtkfilechoosernativewin32.c | 42 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) commit 2139b7642b398d79b6d33dc39d5da38b49cae426 Author: Tom Schoonjans Date: Thu Jul 13 20:03:55 2017 +0100 testgtk.c: native file chooser filter changes Set the filter before showing the dialog Afterwards, fetch the last active filter and display its name. https://bugzilla.gnome.org/show_bug.cgi?id=784723 tests/testgtk.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) commit f10bfcc63866d035115f746bba4744a95fa7a600 Author: Tom Schoonjans Date: Thu Jul 13 20:01:38 2017 +0100 GtkFileChooserNativeQuartz: add support for get_filter and set_filter https://bugzilla.gnome.org/show_bug.cgi?id=784723 gtk/gtkfilechoosernative.c | 9 +++++++++ gtk/gtkfilechoosernativeprivate.h | 1 + gtk/gtkfilechoosernativequartz.c | 29 ++++++++++++++++++++++++++--- 3 files changed, 36 insertions(+), 3 deletions(-) commit 946166e08000c3f1d5da44b5702461a83db18fbb Author: Tom Schoonjans Date: Sun Jul 9 18:04:06 2017 +0100 GtkFileChooserNative: documentation updated https://bugzilla.gnome.org/show_bug.cgi?id=784723 gtk/gtkfilechoosernative.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) commit a4775f8e924b5672b1698fea5441e949a7b70afa Author: Tom Schoonjans Date: Sun Jul 9 17:06:12 2017 +0100 GtkFileChooserNativeQuartz: add support for filters Includes: * Simple glob patterns (*.ext, *.*,...) * MIME types * pixbuf formats https://bugzilla.gnome.org/show_bug.cgi?id=784723 gtk/gtkfilechoosernativequartz.c | 120 +++++++++++++++++++++++++++++++++------ gtk/gtkfilefilter.c | 78 +++++++++++++++++++++++++ gtk/gtkfilefilterprivate.h | 10 ++++ 3 files changed, 190 insertions(+), 18 deletions(-) commit 55d139bc460aa6afe6543d144de39d00402ce160 Author: Tom Schoonjans Date: Tue Jul 4 08:07:09 2017 +0100 GtkFileChooserNativeQuartz: add partial support for extra widget When the extra widget is a GtkLabel, then its text will be displayed as a message in the NSSavePanel or NSOpenPanel https://bugzilla.gnome.org/show_bug.cgi?id=784723 gtk/gtkfilechoosernativequartz.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) commit 44e90c4dd302790000489656837d470d9fae80da Author: Tom Schoonjans Date: Mon Jul 3 12:54:39 2017 +0100 GtkFileChooserNativeQuartz: add support for GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER Which is via NSOpenPanel, not NSSavePanel... https://bugzilla.gnome.org/show_bug.cgi?id=784723 gtk/gtkfilechoosernativequartz.c | 90 +++++++++++++++++++++++----------------- 1 file changed, 51 insertions(+), 39 deletions(-) commit ff2c5e3820d41a752ebdcd75457fad85b465b617 Author: Tom Schoonjans Date: Fri Jun 30 21:34:05 2017 +0100 GtkFilechooserNative: add macOS support Based on the Win32 implementation, as well as the macOS file chooser from https://github.com/GNOME/gedit/blob/master/gedit/gedit-file-chooser-dialog-osx.[ch] Not fully tested yet, but working properly so far. TODO: filter support, extra widget (label), documentation... https://bugzilla.gnome.org/show_bug.cgi?id=784723 gtk/Makefile.am | 1 + gtk/gtkfilechoosernative.c | 12 ++ gtk/gtkfilechoosernativeprivate.h | 3 + gtk/gtkfilechoosernativequartz.c | 431 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 447 insertions(+) commit a9a25e2e846a79a892cad85db69eaa999efd7c15 Author: Emmanuele Bassi Date: Sun Jul 16 12:33:24 2017 +0100 Drop gtk-doc trigraphs on GtkTextView enumeration The glib-mkenums tool does not recognise these gtk-doc annotations. gtk/gtktextview.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 34de998c389f750c749883290a3d3c2212163c44 Author: Jordi Mas Date: Sat Jul 15 09:37:29 2017 +0200 Fixes to Catalan translation po-properties/ca.po | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit eb338feff9689625bb70eea82c24d1f0191ae53a Author: Bastien Nocera Date: Wed Jul 5 23:01:26 2017 +0200 image: Warn when attempting to load pixdata GResources GdkPixdata is deprecated. Warn when the application tries to load pixdata embedded resources. The application developer will have to remove the "to-pixdata" keyword from the GResource definition file. https://bugzilla.gnome.org/show_bug.cgi?id=781583 gtk/gtkimage.c | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) commit ce861bc43050c657c3baf7b655dc76fe554e46b0 Author: Emmanuele Bassi Date: Tue Jul 11 11:39:59 2017 +0100 Use newer glib-genmarshal to simplify build rules The glib-genmarshal tool from GLib 2.54 added various command line arguments that allow us to remove a bunch of as hoc manipulations of the generated marshaller source files. The marshal generator tool can now include an header in the source, and undef the G_ENABLE_DEBUG pre-processor symbol for us. It can also generate the prototypes of the marshallers in the C source, and avoid a 'missing-prototypes' compiler warning. gdk/Makefile.am | 1 + gtk/Makefile.am | 14 ++++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) commit 013392b530f02b5c943a990751ad55e8d7b707d8 Author: Yosef Or Boczko Date: Mon Jul 10 12:52:20 2017 +0300 Updated Hebrew translation po-properties/he.po | 13951 ++++++++++++++++++++++++-------------------------- 1 file changed, 6756 insertions(+), 7195 deletions(-) commit 676a0123f6b814d6036e77ccf5ad1e04de27d304 Author: Yosef Or Boczko Date: Mon Jul 10 12:50:11 2017 +0300 Updated Hebrew translation po/he.po | 2894 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 1441 insertions(+), 1453 deletions(-) commit d9e38198c7774a466203e7229fe241f417306a65 Author: Matthias Clasen Date: Sat Jul 1 20:14:15 2017 -0400 Avoid a race in the print portal Same as the previous commit; use the new predictable request object path to connect to the Response signal early. gtk/gtkprintoperation-portal.c | 55 +++++++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 11 deletions(-) commit 388078ba88561c64299fe892720452e679e00be3 Author: Matthias Clasen Date: Sat Jul 1 19:13:03 2017 -0400 Avoid a race in the file chooser portal Use the new predictable request object path and connect to the Response signal before issuing the portal call. This avoids a race that is pretty unlikely to hit in the filechooser case. gtk/gtkfilechoosernativeportal.c | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) commit 29ff3c072c61ce227a4b16840282293d74211a35 Author: Daniel Boles Date: Fri Jul 7 08:13:41 2017 +0100 label: Remove extra quote in code example gtk/gtklabel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d04baeba370cfdd378e128ba79060476bb97ca1a Author: Daniel Boles Date: Thu Jul 6 14:03:08 2017 +0100 GdkRGBA: Fix misspelt parameter names in docs gdk/gdkrgba.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ede0f25d3be0403eedef704f116b034decffca8a Author: Daniel Boles Date: Thu Jul 6 13:59:53 2017 +0100 GdkRGBA: Fix typo precentage => percentage gdk/gdkrgba.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 07f4139004f8900d160278be39e1c53dc45b0459 Author: Jason Gerecke Date: Tue Jun 27 14:21:05 2017 -0700 x11: Assign GDK_SOURCE_TABLET_PAD when necessary Wacom tablets often have a "pad" device which houses multiple buttons. At present, these devices are incorrectly marked as GDK_SOURCE_PEN which can cause problems for some software. https://bugzilla.gnome.org/show_bug.cgi?id=782040 gdk/x11/gdkdevicemanager-xi2.c | 2 ++ 1 file changed, 2 insertions(+) commit d7b175a3fbba1f7b7236182ee3beeda4d973a991 Author: Daniel Boles Date: Thu Jun 22 23:56:44 2017 +0100 css-overview: Don’t document deleted pseudoclasses Commit b52966a318a26589b26598be9cda1628c04db3ff stopped the parser from handling various deprecated pseudoclasses, which were aliases of others, but it did not update the documentation to reflect that they were gone. docs/reference/gtk/css-overview.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 6eb58fa67bb8df86cb1be76cf5882bbbedf7f6f7 Author: Daniel Boles Date: Thu Jun 22 20:40:06 2017 +0100 css-overview: Fix typo “{with=>which} is disabled” docs/reference/gtk/css-overview.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 303960eec650de64bd718b501781f646bd6ea8b0 Author: Baurzhan Muftakhidinov Date: Thu Jun 22 14:32:27 2017 +0000 Update Kazakh translation po/kk.po | 762 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 381 insertions(+), 381 deletions(-) commit 5da227664f74909c6370162535d41801ec48a04c Author: Marek Cernocky Date: Tue Jun 20 14:33:39 2017 +0200 Updated Czech translation po-properties/cs.po | 1736 +++++++++++++++++++++++++-------------------------- 1 file changed, 864 insertions(+), 872 deletions(-) commit fd9beb22927fd0342b294e377342acb56e92fd30 Author: Daniel Mustieles Date: Mon Jun 19 17:36:06 2017 +0200 Updated Spanish translation po-properties/es.po | 1739 +++++++++++++++++++++++++-------------------------- 1 file changed, 866 insertions(+), 873 deletions(-) commit 6781d2109d41434cf2c54cef2fa683b259e11366 Author: Carlos Garnacho Date: Fri Jun 16 18:21:34 2017 +0200 gdk: Set vid/pid on wayland tablets This was missed so far... Use %.4x format, in order to behave just the same than X11. gdk/wayland/gdkdevice-wayland.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 176bc32950a1e364b22de2a7d4386996b5fcaca1 Author: Will Thompson Date: Thu Jun 15 15:53:18 2017 +0100 headerbar: fix "widow" typo in docs gtk/gtkheaderbar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2e79d88377f41f01978b5541697f6f85c9d3f33b Author: Kjartan Maraas Date: Wed Jun 14 07:48:33 2017 +0200 Updated Norwegian bokmål translation po/nb.po | 775 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 381 insertions(+), 394 deletions(-) commit 2b48acbdf8849308cec8a8aa614822349abff2e7 Author: Debarshi Ray Date: Tue Jun 13 11:06:50 2017 +0200 GtkActionHelper: Remove unnecessary NULL check This NULL check has existed since commit 652f16dd985dbc1b, when GtkActionHelper was first introduced, but so has the assertion at the top to ensure the validity of 'widget'. https://bugzilla.gnome.org/show_bug.cgi?id=783587 gtk/gtkactionhelper.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 33b3985440b2c264085928b639732bd044b1d522 Author: Debarshi Ray Date: Fri Jun 9 12:15:53 2017 +0200 GtkActionHelper: Allow a NULL action-name to unset the previous GAction https://bugzilla.gnome.org/show_bug.cgi?id=783587 gtk/gtkactionhelper.c | 66 +++++++++++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 28 deletions(-) commit 1e47b9ea67a5eefc255ca2b9199df7e18dc783f8 Author: Matthias Clasen Date: Tue Jun 13 13:09:56 2017 -0400 file chooser: Don't pass NULL as title to the portal This causes critical warnings. gtk/gtkfilechoosernativeportal.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit d15712fc9bbef5efcfc4fb8126541b213a680c20 Author: Chun-wei Fan Date: Mon Jun 12 18:14:57 2017 +0800 gtk/Makefile.am: Fix 'make dist' We don't have gtkcenterboxprivate.h anymore, as it became a public header... gtk/Makefile.am | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 3f39dc20ae6b850f8cadb590b1e6f1624a88498b Author: Piotr Drąg Date: Sun Jun 11 16:57:47 2017 +0200 Update POTFILES.in po-properties/POTFILES.in | 1 + po/POTFILES.in | 1 + 2 files changed, 2 insertions(+) commit 77f34d01ad8bd5f428f95445453f2307a9df6883 Author: Matthias Clasen Date: Sun Jun 11 10:35:06 2017 -0400 label: Provide a baseline in all cases The label measuring code was only determining baselines when the label was set to wrap, which does not seem right. Non-wrapping labels have a meaningful baseline as well, report it back. gtk/gtklabel.c | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) commit 114f23cec74453c0f09277112aa7537642fa8e97 Author: Matthias Clasen Date: Sat Jun 10 14:45:10 2017 -0400 center box: Take baseline-position fully into account We need to take baseline-position into account during measure as well. gtk/gtkcenterbox.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) commit 67bdaf8007e328d4ec81e79ad704fbfe7499147c Author: Fabio Tomat Date: Sat Jun 10 16:07:52 2017 +0000 Update Friulian translation po/fur.po | 229 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 117 insertions(+), 112 deletions(-) commit 0e6735b83bc3937419a2d55e690050f8e54e13ef Author: Fabio Tomat Date: Sat Jun 10 13:23:50 2017 +0000 Update Friulian translation po/fur.po | 157 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 82 insertions(+), 75 deletions(-) commit f135b2527f722cd0b4d22290a1e8f55ac9725d1e Author: Matthias Clasen Date: Sat Jun 10 09:14:16 2017 -0400 center box: complete the baseline support When there is no externally allocated baseline, we should do the same thing that GtkBox does, and determine one from the children that want baseline alignment. This commit adds a GtkCenterBox::baseline-position property with setters and getters. docs/reference/gtk/gtk4-sections.txt | 2 + gtk/gtkcenterbox.c | 134 ++++++++++++++++++++++++++++++++++- gtk/gtkcenterbox.h | 5 ++ 3 files changed, 140 insertions(+), 1 deletion(-) commit 8316ec85f500107eccb0de5d9d84abc6e8044e91 Author: Matthias Clasen Date: Sat Jun 10 07:52:01 2017 -0400 center box: Fix size allocation This missing pair of parens was causing expanding children to overlap. gtk/gtkcenterbox.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 389535c5724f3933f976b453f79195d0d6a89876 Author: Matthias Clasen Date: Sat Jun 10 07:51:25 2017 -0400 center box: Drop a useless line This is just a leftover that has no effect whatsoever. gtk/gtkcenterbox.c | 1 - 1 file changed, 1 deletion(-) commit d890b93d2c7b38e3930b752b714e788cbe83038e Author: Fabio Tomat Date: Sat Jun 10 09:58:18 2017 +0000 Update Friulian translation po/fur.po | 116 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 59 insertions(+), 57 deletions(-) commit 572b90cbdd322883461836f1a1565deab4ab4521 Author: Fabio Tomat Date: Sat Jun 10 09:43:40 2017 +0000 Update Friulian translation po/fur.po | 578 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 289 insertions(+), 289 deletions(-) commit 5f4c3077f029147a3c711a99c250fca7ccc702fd Author: Fabio Tomat Date: Fri Jun 9 07:51:06 2017 +0000 Update Friulian translation po/fur.po | 119 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 60 insertions(+), 59 deletions(-) commit d08781e205c2e53752694770164d440f3f29a147 Author: Fabio Tomat Date: Thu Jun 8 22:39:28 2017 +0000 Update Friulian translation po/fur.po | 67 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 33 insertions(+), 34 deletions(-) commit 7b8ea9af5525b116b3860124d3410249403f8e36 Author: Robert Ancell Date: Thu Jun 8 12:08:22 2017 +1200 icon-theme: Show filename attempted when icon fails to load gtk/gtkicontheme.c | 1 + 1 file changed, 1 insertion(+) commit 82a4e830a3772515c0276f509940d216a8f06218 Author: Robert Ancell Date: Thu Jun 8 11:29:09 2017 +1200 iconhelper: Show error if fail to load placeholder icon gtk/gtkiconhelper.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 86ac88e0be31d677545c3628ea0cc37595a33834 Author: Matthias Clasen Date: Thu Jun 8 15:05:55 2017 -0400 Add some translator comments These were requested in https://bugzilla.gnome.org/show_bug.cgi?id=783552 gtk/gtkshortcutswindow.c | 3 +++ 1 file changed, 3 insertions(+) commit 6decd3bcfaa9718ed08722d52de0bad63e68e117 Author: Fabio Tomat Date: Thu Jun 8 14:48:47 2017 +0000 Update Friulian translation po/fur.po | 109 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 57 insertions(+), 52 deletions(-) commit d9017875778198078f279ee792ee02cad580464f Author: Fabio Tomat Date: Thu Jun 8 11:44:09 2017 +0000 Update Friulian translation po/fur.po | 134 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 68 insertions(+), 66 deletions(-) commit 322ba75e451b0656c0b367e54855db4453093880 Author: Felipe Borges Date: Thu May 18 16:11:56 2017 +0200 printunixdialog: Update collate icon as entry changes By relying on GtkSpinButton default activation behavior, the collate icon doesn't get updated when a new number is typed in the copies spin button. https://bugzilla.gnome.org/show_bug.cgi?id=759308 gtk/gtkprintunixdialog.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) commit d84b63df02088e97a0d0c320cab26e727fbfc0c8 Author: Fabio Tomat Date: Wed Jun 7 10:35:28 2017 +0000 Update Friulian translation po/fur.po | 230 +++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 122 insertions(+), 108 deletions(-) commit 62bfe20928dbd514c5f6ed81755b6fdbc2de42ed Author: Fabio Tomat Date: Tue Jun 6 22:42:06 2017 +0000 Update Friulian translation po/fur.po | 120 ++++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 70 insertions(+), 50 deletions(-) commit 1b697fd7c26d6813bd6d3b793c626e634b5c03cd Author: Kjell Ahlstedt Date: Tue Jun 6 14:57:52 2017 +0200 widget: Fix gtk_widget_insert_after/before() docs Add beginning double asterisks and function names. Correct the parameter names (next/previous_child -> next/previous_sibling). Make the documentation of the two functions more similar. https://bugzilla.gnome.org/show_bug.cgi?id=783445 gtk/gtkwidget.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit bffbfde10a7ade79eeca6a82dcf118fda85a6741 Author: Matthias Clasen Date: Mon Jun 5 21:09:30 2017 -0400 Install gtkcenterbox.h gtk/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit ac5f7d028fb6fdd10526605835e25c9ce6594a00 Author: Chun-wei Fan Date: Sat May 27 10:38:19 2017 +0800 modules/input/gtkimcontextime.c: Move to set_client_widget The imcontext internals have been changed to use set_client_widget instead of set_client_window in order to remove API dependency on GdkWindow. Update the Windows IME support so that the code will continue to build and work. https://bugzilla.gnome.org/show_bug.cgi?id=773299 modules/input/gtkimcontextime.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 77e1d0c0c98d0df063c7925c00e2167e0cf841a3 Author: Chun-wei Fan Date: Mon Jun 5 22:17:12 2017 +0800 gdk/gdkvulkancontext.c: Fix 32-bit Windows builds The callback function that is used by VkDebugReportCallbackCreateInfoEXT is decorated with VKAPI_CALL (which is __stdcall on Windows). This is not detected on x64 Windows as __stdcall is not really meaningful on x64 Windows, and VKAPI_CALL expands to nothing on non-Windows. As __stdcall functions are treated differently on 32-bit Windows, the 32-bit compiler does require that the function be declared as __stdcall so that things will compile, link and run properly. https://bugzilla.gnome.org/show_bug.cgi?id-773299 gdk/gdkvulkancontext.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 85bba774ea7f594b7a5486fb0ac5132a61a20dca Author: Fabio Tomat Date: Mon Jun 5 13:04:26 2017 +0000 Update Friulian translation po/fur.po | 82 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 43 insertions(+), 39 deletions(-) commit 0973ac416ac63baf0d0c728fd99b108ce70ae421 Author: Nelson Benítez León Date: Sun Jun 4 11:20:19 2017 +0500 gtktextdisplay: remove unused code In render_para() function, which is called for every text line that needs to be drawn. https://bugzilla.gnome.org/show_bug.cgi?id=783397 gtk/gtktextdisplay.c | 9 --------- 1 file changed, 9 deletions(-) commit 5e69fe17aebbd3c845ac12a00778080d8865f940 Author: Matthias Clasen Date: Sun Jun 4 21:48:41 2017 -0400 center box: Add more documentation gtk/gtkcenterbox.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 23f870d0cd350e8049bfc333c3036717386819e3 Author: Matthias Clasen Date: Sat Jun 3 09:08:44 2017 -0400 Add a simple center box test Just a simple use of this widget. tests/Makefile.am | 4 ++++ tests/meson.build | 2 ++ tests/testcenterbox.c | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+) commit c35604cfcbc11ef479f6a45f1982994137545f44 Author: Matthias Clasen Date: Sun Jun 4 15:57:58 2017 -0400 center box: add baseline support This is copied more or less directly from GtkBoxGadget. gtk/gtkcenterbox.c | 183 ++++++++++++++++++++++++++++------------------------- 1 file changed, 96 insertions(+), 87 deletions(-) commit f8737a6d8a86de6e870faa782a28a9d4e3e10e9a Author: Matthias Clasen Date: Sun Jun 4 13:28:43 2017 -0400 center box : implement GtkOrientable This is generally expected of containers where it makes sense. gtk/gtkcenterbox.c | 203 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 157 insertions(+), 46 deletions(-) commit 141e053e87a5d46c92facd70e84bed6483bb0657 Author: Matthias Clasen Date: Sun Jun 4 10:11:42 2017 -0400 center box: support height-for-width Implement request modes fully. gtk/gtkcenterbox.c | 305 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 212 insertions(+), 93 deletions(-) commit 42921750ff324e36b885bfd7905b3cd7774cd205 Author: Matthias Clasen Date: Sat Jun 3 22:44:19 2017 -0400 center box: Support expand property We expand the center child first, but only as far as we can keep it centered. gtk/gtkcenterbox.c | 81 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 63 insertions(+), 18 deletions(-) commit 60cd5b9b4ca61ab29b699ddf6d1be45c659dbb6a Author: Matthias Clasen Date: Sat Jun 3 16:04:57 2017 -0400 center box: implement GtkBuildable Make it possible to fill the slots by using the type attribute on child nodes. This is necessary since GtkCenterBox does not derive from GtkContainer. gtk/gtkcenterbox.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) commit b4cb05ace9a0d9544c9666a665cba06a8be3b36f Author: Matthias Clasen Date: Sat Jun 3 15:56:01 2017 -0400 center box: implement natural size and rtl flipping We prefer to give the center widget its natural size, and we center it as long as possible. gtk/gtkcenterbox.c | 218 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 130 insertions(+), 88 deletions(-) commit f8059f30405b015c7ac00fdf2156503928b6c78e Author: Matthias Clasen Date: Sat Jun 3 13:17:19 2017 -0400 center box: handle missing start or end widgets Any slot may be unfilled, not just the center one. gtk/gtkcenterbox.c | 114 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 69 insertions(+), 45 deletions(-) commit e936a35d66ce663d9632aa239b0f805c004ad5af Author: Matthias Clasen Date: Thu Jun 1 17:56:32 2017 -0700 Make GtkCenterBox public It provides functionality that GtkBox used to have, and is generally useful. docs/reference/gtk/gtk4-docs.xml | 1 + docs/reference/gtk/gtk4-sections.txt | 20 +++++ gtk/gtk.h | 1 + gtk/gtkactionbar.c | 2 +- gtk/gtkcenterbox.c | 139 +++++++++++++++++++++++++++++++++-- gtk/gtkcenterbox.h | 60 +++++++++++++++ gtk/gtkcenterboxprivate.h | 43 ----------- 7 files changed, 217 insertions(+), 49 deletions(-) commit e32f15be4f9ae4ed716300b7cb5de69bbaa19ca1 Author: Fabio Tomat Date: Sun Jun 4 12:10:53 2017 +0000 Update Friulian translation po/fur.po | 757 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 373 insertions(+), 384 deletions(-) commit 3aef221cc3726c225520e2bbccefd736a2578a6e Author: Matthias Clasen Date: Fri Jun 2 22:28:27 2017 -0400 dist icon.list Otherwise things will not work in a release tarball. demos/icon-browser/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ca95adbb4c133d389c60db68f33bc1e7fcfa8362 Author: Matthias Clasen Date: Fri Jun 2 14:42:04 2017 -0700 icon-browser: Add a few icons These have appeared recently. demos/icon-browser/icon.list | 6 ++++++ 1 file changed, 6 insertions(+) commit cc9feb5a0780fccac325bed112973da224e5f50c Author: Matthias Clasen Date: Fri Jun 2 13:57:58 2017 -0700 icon browser: Make icons a bit larger Use 48x48 in the list, instead of 32x32. We have the space. demos/icon-browser/window.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 04fbef7f1eb7e535e96a1df17d20b223af200a90 Author: Matthias Clasen Date: Fri Jun 2 12:39:39 2017 -0700 icon browser: Add a 'copy to clipboard' button This makes it more obvious how to use the icon. demos/icon-browser/iconbrowserwin.c | 11 +++++++++++ demos/icon-browser/window.ui | 15 +++++++++++++++ 2 files changed, 26 insertions(+) commit 7a3984ee629d67b0e35ff156aface760780e0f6d Author: Matthias Clasen Date: Thu Jun 1 18:52:50 2017 -0700 icon browser: put icons as data Instead of hardcoding all the add_icon calls, read the icon list from a keyfile, for easier extensibility. demos/icon-browser/icon.list | 510 +++++++++++++++++++++++++ demos/icon-browser/iconbrowser.gresource.xml | 1 + demos/icon-browser/iconbrowserwin.c | 543 ++++----------------------- 3 files changed, 576 insertions(+), 478 deletions(-) commit a23ad61a25404ee7e8fe5492008365b76e4b5965 Author: Dan Torop Date: Thu Apr 13 10:37:22 2017 -0400 wayland: selectively cancel key repeat on key release Under Wayland, when multiple keys are pressed and the user releases a key, key repeat should continue unless the key released is the one currently repeating. In the case of: - key1 press - key1 repeat - key2 press -> key1 repeat stopped - key2 repeat - key2 release The behavior should be to cancel keyboard repeat, though key1 is still held down. This is consistent with prior X11/XWayland behavior. The following also must work: - key1 press - key2 press - key2 release - key2 press - key1 release - key2 should continue to repeat The fix for bug #778019 should continue to work: - key1 press - key1 repeat - key2 press -> key1 repeat stopped - key1 release - key2 should repeat The choice to change the counter nkeys to the flag repeat_active helps to solve the second test case. https://bugzilla.gnome.org/show_bug.cgi?id=781285 gdk/wayland/gdkdevice-wayland.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) commit 24f9d2909393b8a2267e30d3f8b6e31d6aaee850 Author: Olivier Fourdan Date: Fri Jun 2 15:54:50 2017 +0200 wayland: fix xdg_surface test in move/resize drag begin_resize_drag() and begin_move_drag() check for xdg_surface being not null, but those apply on xdg_toplevel so they should check for xdg_toplevel being non-null instead. https://bugzilla.gnome.org/show_bug.cgi?id=781945 gdk/wayland/gdkwindow-wayland.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 08aade4b7c4ff011402aada4270a6c4260d30958 Author: Olivier Fourdan Date: Tue May 16 16:13:34 2017 +0200 wayland: check parent surface for subsurface When an event is received while a tooltip is showing, the GtkTooltip's event handling code can end up calling gdk_window_set_transient_for() from gtk_tooltip_set_last_window(). The Wayland GDK backend will try to automatically create a subsurface in gdk_wayland_window_set_transient_for() but if the parent surface is gone meanwhile, this will will cause a crash when trying to create a subsurface from a parent with a null surface. Checking for the parent is not sufficient, we ought to check for the parent surface as well to avoid the crash. https://bugzilla.gnome.org/show_bug.cgi?id=782283 gdk/wayland/gdkwindow-wayland.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a84fc3878477832a879df278d82f98a03c75a2b7 Author: Olivier Fourdan Date: Tue May 2 11:41:26 2017 +0200 wayland: Do not map toplevel utility as popup Applications can specify the type hint as utility even on toplevel windows. When that toplevel is also marked as a transient for another window, GDK Wayland backend would translate that as an xdg_popup which is not appropriate. While utility temp windows should remain mapped as subsurfaces (such as the ones used by treeviews), regular windows should not translate as neither a subsurface nor an xdg_popup. https://bugzilla.gnome.org/show_bug.cgi?id=781945 gdk/wayland/gdkwindow-wayland.c | 5 ----- 1 file changed, 5 deletions(-) commit a1dc9e466066dd18592559d21d8647a43169e73a Author: Christoph Reiter Date: Fri Jun 2 12:55:23 2017 +0200 gtkfilechoosernativewin32: Fix support for non-ASCII paths The code used SIGDN_URL to get an URL for the selected item, but Windows URLs are a mix of unicode and percent encoded characters in the locale encoding and not something GFile can understand. The result is a garbage file path. Instead use SIGDN_FILESYSPATH to get a real file path if available. Also checks the return value of g_utf16_to_utf8 because file paths on Windows can contain lone surrogates which would make the conversion fail. https://bugzilla.gnome.org/show_bug.cgi?id=783347 gtk/gtkfilechoosernativewin32.c | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) commit ee408d5f75756375b8cb62ea742d967764754b20 Author: Emmanuele Bassi Date: Thu Jun 1 14:56:32 2017 +0100 meson: Rebuild the SCSS-based themes if sassc is available If we have sassc installed then we want to rebuild the themes that use SCSS whenever one of their dependencies change. gtk/meson.build | 17 ++++++++++++++++- gtk/theme/Adwaita/meson.build | 30 ++++++++++++++++++++++++++++++ gtk/theme/HighContrast/meson.build | 29 +++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 1 deletion(-) commit 6f71c543e811924f8c59239e42b9f7a410f89342 Author: Daniel Boles Date: Wed May 31 18:48:11 2017 +0100 Adwaita: Add missing rule for fullscreen headerbar Another selector forces round corners for headerbars in a stack, and it has higher priority than the selector covering the non-stack case from commit 796f9b5bfb0f356b06515d25203e3bcd00c80687. Totem’s MainToolbar happens to be in a stack, and we should maintain symmetry here anyway. So, as window classes .maximized and .tiled are excluded from this other selector, the newly handled .fullscreen case must be excluded here also. https://bugzilla.gnome.org/show_bug.cgi?id=770513 gtk/theme/Adwaita/_common.scss | 8 ++++---- gtk/theme/Adwaita/gtk-contained-dark.css | 6 +++--- gtk/theme/Adwaita/gtk-contained.css | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) commit 513b56ce0fd452904dc50ceeb386dfd4a930b07e Author: Daniel Boles Date: Wed May 31 18:47:57 2017 +0100 HighContrast: Regenerate CSS files with sassc gtk/theme/HighContrast/gtk-contained-inverse.css | 5066 +++++++-------------- gtk/theme/HighContrast/gtk-contained.css | 5079 +++++++--------------- 2 files changed, 3094 insertions(+), 7051 deletions(-) commit dcdd31e6f3edf29ceec5e81bbee5342c506a7cdb Author: Daniel Boles Date: Wed May 31 18:45:24 2017 +0100 HighContrast: Update parse-sass.sh; remove Gemfile Make parse-sass.sh use sassc instead of the old Ruby method. gtk/theme/HighContrast/Gemfile | 2 -- gtk/theme/HighContrast/parse-sass.sh | 14 ++++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) commit 796f9b5bfb0f356b06515d25203e3bcd00c80687 Author: Daniel Boles Date: Wed May 31 08:16:51 2017 +0100 themes: Square corners on fullscreen win headerbar Totem uses a fullscreen window with a headerbar at the top, and without this change, that headerbar has rounded corners, which look different from a maximised window and let video content show through beneath. https://bugzilla.gnome.org/show_bug.cgi?id=770513 gtk/theme/Adwaita/_common.scss | 8 +++++++- gtk/theme/Adwaita/gtk-contained-dark.css | 2 +- gtk/theme/Adwaita/gtk-contained.css | 2 +- gtk/theme/HighContrast/_common.scss | 8 ++++++-- gtk/theme/HighContrast/gtk-contained-inverse.css | 3 ++- gtk/theme/HighContrast/gtk-contained.css | 3 ++- 6 files changed, 19 insertions(+), 7 deletions(-) commit fc96fce4624b7a50a395fb17831126350754c783 Author: Daniel Boles Date: Wed May 31 08:14:26 2017 +0100 HighContrast: Restore files to regenerate CSS I think parse-sass.sh needs updated to match what Adwaita does now, but for now, this is sufficient to let us regenerate HighContrast again. gtk/theme/HighContrast/Gemfile | 2 ++ gtk/theme/HighContrast/parse-sass.sh | 3 +++ 2 files changed, 5 insertions(+) commit a4e80efee76862e55ebb6815c4a376a5504762e5 Author: Rico Tzschichholz Date: Tue May 30 15:10:25 2017 +0200 gdk/gtk: Fix Since tags for 3.92 symbols In addition to 406db15066f121c2b9910691f92e5841b30e0311 gdk/gdkrectangle.c | 2 +- gtk/gtkmain.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 385a46b5c0c0b8f429efab38f7b09f02f983b3ff Author: Debarshi Ray Date: Wed May 24 16:42:01 2017 +0200 wayland: Don't warn if the display is lost, skip exit handlers There is no need to have every application log a warning when the Wayland display server goes away, and we are using _exit instead of exit elsewhere. This is also what the X11 backend does (see gdk_x_io_error). https://bugzilla.gnome.org/show_bug.cgi?id=745289 gdk/wayland/gdkeventsource.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 406db15066f121c2b9910691f92e5841b30e0311 Author: Daniel Boles Date: Sun May 28 14:19:14 2017 +0100 gdk/gtk: Fix more AVAILABLE_IN annotations to 3_92 gdk/gdkevents.h | 2 +- gdk/gdkrectangle.h | 2 +- gdk/quartz/gdkquartzmonitor.h | 2 +- gtk/gtkmain.h | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) commit b6e13847d59972a7bed19dbd3df5b676b95b553c Author: Daniel Boles Date: Sat May 27 15:25:35 2017 +0100 gdkevents.h: Fix version annotations on new funcs gdk/gdkevents.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b894c350080f5686a7c8bb7107001373da097b5f Author: Carlos Garnacho Date: Thu May 25 16:00:40 2017 +0200 gtk: Make GtkPointerFocus refcounted In order to make it really sure the GtkPointerFocus is valid while being removed from a GtkWindow. gtk/gtkpointerfocus.c | 21 +++++++++++++++++---- gtk/gtkpointerfocusprivate.h | 4 +++- gtk/gtkwindow.c | 20 ++++++++++++++++---- 3 files changed, 36 insertions(+), 9 deletions(-) commit 690eb8ede6bd07715630567a3cb36155bfcef716 Author: Carlos Garnacho Date: Thu May 25 01:59:40 2017 +0200 gtkwidget: Lookup the event target when cancelling GdkEventSequences We were getting the toplevel most often here, so the gestures weren't properly cleaned up. gtk/gtkwidget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0d7fe2ec09e24560443fd4acc0cc96b163f12a9b Author: Carlos Garnacho Date: Thu May 25 01:57:22 2017 +0200 gtk: Check implicit grab status before sending crossing events As we now refrain from sending the crossing events if there's an implicit grab, those events must be sent on button release when the implicit grab is broken. gtk/gtkmain.c | 16 +++++++++++++--- gtk/gtkwindow.c | 11 +++++++++++ gtk/gtkwindowprivate.h | 3 +++ 3 files changed, 27 insertions(+), 3 deletions(-) commit f5fde52d61b0618b318d3fe17ea83a6b19697581 Author: Carlos Garnacho Date: Thu May 25 01:50:38 2017 +0200 gtk: Refactor crossing event synthesization into a separate function This is now called outside update_pointer_focus_state() with the events that actually matter (i.e. pointer ones, so no sequence == NULL checks) gtk/gtkmain.c | 50 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 18 deletions(-) commit e892e20841dcb94d85a3d006f8898a29ab9a1105 Author: Carlos Garnacho Date: Thu May 25 01:45:18 2017 +0200 gtk: Rework pointer cursor selection Check the grab widget (both explicit and implicit) and check for a cursor from the target widget up to this grab widget. If the target widget is outside the grab widget, only the grab wigdet's cursor will be checked. This also means that we have to ensure the cursor is updated on button releases, as an implicit grab being deactivated must trigger a cursor lookup from the target widget. gtk/gtkmain.c | 5 ++++- gtk/gtkwindow.c | 51 ++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 48 insertions(+), 8 deletions(-) commit ace686dba90ba734daf11d07c25612a8656953b7 Author: Carlos Garnacho Date: Wed May 24 18:30:35 2017 +0200 gtktreeview: Fix invalidation coordinates We must account for the widget allocation now that there is no view_window. gtk/gtktreeview.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit 9f2e7edc3b9eb78a125d50b707d5b840406d810d Author: Carlos Garnacho Date: Wed May 24 18:30:25 2017 +0200 gtkiconview: Fix invalidation coordinates We must account for the widget allocation now that there is no view_window. gtk/gtkiconview.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) commit f8bc56dd553aebce376ba0eab6e296e19762b781 Author: Carlos Garnacho Date: Wed May 24 18:22:00 2017 +0200 gtkgesture: Consume button release/touch end events if gesture was claimed In these situations we must perform the "is it claimed" check before removing the (touch)point, as doing so when the gesture is empty will be too late if the gesture actually claimed input. gtk/gtkgesture.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 8371b6b8576830a51a350a09cf12c601c99c8027 Author: Timm Bäder Date: Sun May 21 09:27:57 2017 +0200 main: Automatically (un)set PRELIGHT state on widgets gtk/gtkmain.c | 5 +++++ 1 file changed, 5 insertions(+) commit f6e0850ff7fa4dc2c81d2a43b40e2d9e95f8da46 Author: Timm Bäder Date: Sat May 20 09:00:07 2017 +0200 Gesture: Remove window property completely These are just leftovers, it's already gone from public API and the _{set,get}_property implementations. gtk/gtkgesture.c | 16 ---------------- 1 file changed, 16 deletions(-) commit b62b33c1d9018e9500de0e0f89efa49d43ea3839 Author: Carlos Garnacho Date: Mon May 15 13:44:33 2017 +0200 gtk: Fix event delivery on GTK_PHASE_TARGET controllers Look up the event target, not the "event widget" which is based on the event window, and thus points to the toplevel. gtk/gtkwidget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3a15c8241ec14df3e930a8fb4120bd892259637c Author: Carlos Garnacho Date: Sun May 14 21:34:15 2017 +0200 gdk: Remove synthetic crossing event emission due to geometry changes This just applied to child windows, but now GDK should just take care of toplevels, which shall get crossing events from the windowing when the right conditions apply. Removing this code fixes confused crossing state in widgets and messed up window_under_pointer tracking (Which now is meant to be toplevels) when any of the remaining child GdkWindows trigger these crossing events. gdk/gdkinternals.h | 3 -- gdk/gdkwindow.c | 143 +---------------------------------------------------- 2 files changed, 1 insertion(+), 145 deletions(-) commit 61dd925b32362a53956329d8d99733640e161d2c Author: Carlos Garnacho Date: Sun May 14 21:30:16 2017 +0200 gdk: Ensure to implicitly deactivate grabs when an impl window is hidden For some reason this wasn't done on windows with an impl, but it totally should. Probably hidden by grabs in menus and somesuch being done on a child window. gdk/gdkwindow.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit ee894903c780cbf7e1e5445c2b492326fbb36ede Author: Carlos Garnacho Date: Fri May 12 12:42:48 2017 +0200 gtkpopover: Use event coordinates right away to detect clicks outside. There's no need anymore to translate coordinates, the event already contains popover-relative ones. gtk/gtkpopover.c | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) commit 47e505781e475d9d1e42b113366066858124603d Author: Carlos Garnacho Date: Fri May 12 12:38:04 2017 +0200 gtkwindow: Implement ::pick to extend picking to popovers. This makes interaction possible with popovers again. gtk/gtkwindow.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) commit eef33d34d45370f8fc6da0b8be58cdf44b8507d2 Author: Timm Bäder Date: Wed May 10 18:08:43 2017 +0200 widget: Make sure we're not calling _get_parent on NULL We already issue the first _get_parent call before even entering that loop, so make sure `parent` is not NULL. This happens when event_widget is already a toplevel, and this change fixes row-dragging in treeviews. gtk/gtkwidget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 34fdc51392149527cb6a4317b135734d7b15db2d Author: Timm Bäder Date: Wed May 10 18:03:10 2017 +0200 Constify GdkEvent parameters in gtk_get_event_widget and _event_target gdk/gdkevents.c | 2 +- gdk/gdkevents.h | 2 +- gtk/gtkmain.c | 4 ++-- gtk/gtkmain.h | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) commit 19174d8d94c14a0b7041759baf27fe984fb8dbe1 Author: Timm Bäder Date: Wed May 10 12:18:32 2017 +0200 flowbox: Fix motion notify handler Same story as in GtkListBox. gtk/gtkflowbox.c | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) commit 2ad2ecad4492d09151ed68afce4ab88e8a6ce83a Author: Timm Bäder Date: Wed May 10 12:11:58 2017 +0200 flowbox: Fix child item selection gtk/gtkflowbox.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit dd836fff353fa0d3be4d92c94aeca262b9c2c1e2 Author: Timm Bäder Date: Wed May 10 12:07:15 2017 +0200 flowbox: Fix child item allocation gtk/gtkflowbox.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 030b96cb495018c255c68884302201bba419435c Author: Timm Bäder Date: Wed May 10 10:55:50 2017 +0200 scrolledwindow: Avoid critical when removing source Make sure indicator->conceil_timer is actually set before trying to remove it. gtk/gtkscrolledwindow.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 084b356d1e70ccdfc521c1457132c1c9c0822d99 Author: Timm Bäder Date: Tue May 9 19:38:58 2017 +0200 testlist: Fix custom css tests/testlist.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e54d8a6114a87d0d83c091e9f0f7601c5461c5c3 Author: Timm Bäder Date: Tue May 9 19:26:27 2017 +0200 scrolledwindow: Calculate indicator coords relative to scrolledwindow The event coordinates we get are relative to the scrolledwindow coordinates. gtk/gtkscrolledwindow.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 782477188a3437f6fec157946d7519ca8eeda456 Author: Timm Bäder Date: Tue May 9 19:03:38 2017 +0200 scrolledwindow: Stop checking event->detail in leave-notify This is obsolete and resulted in sometimes stuck .hovering style classes on scrollbars. gtk/gtkscrolledwindow.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5ae9ca79e4ff65fbbf225533d038c94254fd1f6b Author: Timm Bäder Date: Tue May 9 16:53:45 2017 +0200 linkbutton: Fix hand cursor when hovering Use the new gtk_widget_set_cursor instead of setting it on the GdkWindow. gtk/gtklinkbutton.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3e44a3920a33e2acf587d62fd9ed35858235ca98 Author: Timm Bäder Date: Tue May 9 16:23:01 2017 +0200 listbox: Fix row hovering Drop the in_widget flag since motion events the listbox receives are always inside the listbox. Also drop the manual coordinate translation code using GdkWindows. gtk/gtklistbox.c | 40 +++------------------------------------- 1 file changed, 3 insertions(+), 37 deletions(-) commit a0016758a8442f747d95ff741a249e10dd7040e1 Author: Timm Bäder Date: Tue May 9 15:48:20 2017 +0200 widget: Copy event in gtk_widget_event and _captured_event To ensure that we never translate the coordinates to widget coordinates twice. gtk/gtkmain.c | 2 +- gtk/gtkwidget.c | 73 ++++++++++++++++++++++++++++++-------------------- gtk/gtkwidget.h | 2 +- gtk/gtkwidgetprivate.h | 4 +-- 4 files changed, 48 insertions(+), 33 deletions(-) commit c83b8d17ffabc300accdd3fae791d336007e45ad Author: Timm Bäder Date: Tue May 9 11:10:55 2017 +0200 meson: Add gtkpointerfocus.c to sources gtk/meson.build | 1 + 1 file changed, 1 insertion(+) commit f5e8d7a4e2563786769ef5e5ce50d7df0259dc10 Author: Timm Bäder Date: Tue May 9 08:32:06 2017 +0200 window: Hide titlebox when undecorated We don't draw or size-allocate the titlebar when the window is fullscreen or undecorated, so reflect this by setting it to !child_visible. This can happen when changing the value of the decorated property while the window is shown. gtk/gtkwindow.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 81cdc8713cc4a946780bd1bb7fbef64f50f2b239 Author: Timm Bäder Date: Tue May 9 08:22:41 2017 +0200 combobox: Only react to UP/DOWN scroll events The old else block scrolled down for everything except GDK_SCROLL_UP scroll events, e.g. for smooth scroll events. gtk/gtkcombobox.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 40ab7e1c958733125cb0f470fa77e5fa74985629 Author: Carlos Garnacho Date: Tue May 2 17:53:14 2017 +0200 gtkmenu*: Simplify event handling Instead of delegating on the parent shell of a menu item/shell on a variety of situations, Simplify event handling so: 1) Menu item selection is handled entirely on GtkMenuItem through crossing events. 2) The deepmost menu shell handles clicks inside and outside of it. This avoids the rather hard to follow gtk_widget_event() calls going on all throughout the handling of crossing and button events, and makes menus work again. gtk/gtkmenu.c | 259 +-------------------------------- gtk/gtkmenuitem.c | 36 +++-- gtk/gtkmenushell.c | 411 +++++++++++++++-------------------------------------- 3 files changed, 141 insertions(+), 565 deletions(-) commit 33c5f3c193e5592ff4ee09be33b72d2fb48732b7 Author: Carlos Garnacho Date: Thu May 4 13:49:34 2017 +0200 gtkmain: Add API to get the target of a GdkEvent This can be used on grabbing situations to determine the target of the event. This mainly matters for GtkMenu. gtk/gtkmain.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ gtk/gtkmain.h | 7 +++++++ 2 files changed, 54 insertions(+) commit da56fae5dff160afe8ac3bb0006b2ee2108761d3 Author: Carlos Garnacho Date: Thu May 4 13:48:27 2017 +0200 gtkmain: Ensure there is a current event handling crossing events The "current event" will be the real one that is triggering the crossing notifications, not the synthesized events. gtk/gtkmain.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 03a63204c11b0a5e5329c4f3cfa12022e0148327 Author: Carlos Garnacho Date: Thu May 4 13:45:30 2017 +0200 gtkmain: Ignore GDK_CROSSING_GRAB/UNGRAB crossing events for picking purposes Especially with owner_events=TRUE, this doesn't mean anything for picking, as events will be reported as usual inside the application. gtk/gtkmain.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 65de0ebea3d2656b75ffcb41fd6ce2be1aaa01a2 Author: Carlos Garnacho Date: Thu May 4 13:41:29 2017 +0200 gdk: Make it possible to attach user data to GdkEvents As event->any.window is the toplevel, this is not useful anymore to determine the window/widget that is the target for this event. Add helper functions to attach user data to GdkEvents so the target widget can be stored on the gtk/ side. These calls should be made private with the rest of GdkEvent related API. gdk/gdkevents.c | 26 ++++++++++++++++++++++++++ gdk/gdkevents.h | 6 ++++++ gdk/gdkinternals.h | 2 ++ 3 files changed, 34 insertions(+) commit 5483b9db2d53c0b9974076475cd98d4606e4b7ee Author: Carlos Garnacho Date: Thu Apr 13 15:42:48 2017 +0200 gtkmain: Avoid doubly propagation of enter/leave events from windowing Crossing events are already generated when picking the new pointer position, so we don't have to propagate the windowing crossing event as-is. gtk/gtkmain.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit f9924b7e3e1f16850e9333ed1bf963f6fa370939 Author: Carlos Garnacho Date: Wed Apr 12 12:11:56 2017 +0200 gtknotebook: Drop drag_window It is not necessary anymore to implement tab DnD, since we just render it on top. gtk/gtknotebook.c | 141 +++++++++++------------------------------------------- 1 file changed, 29 insertions(+), 112 deletions(-) commit 2c7102b5574e00bcad9a0cefbbb7bef7d89c0966 Author: Carlos Garnacho Date: Mon Apr 10 17:19:37 2017 +0200 gtkiconview: Remove view GdkWindow It's not necessary anymore for clipping nor receiving events. So just remove it. The event handling code was expecting events in bin_window coordinates, and have been updated to relying on widget-relative coords. gtk/gtkiconview.c | 81 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 41 insertions(+), 40 deletions(-) commit 2f6c4ef68d821929eb276eb07ca46b3bed02bd46 Author: Carlos Garnacho Date: Thu Apr 6 21:14:28 2017 +0200 gtkviewport: Remove view window It is not really necessary for clipping nor receiving events. gtk/gtkviewport.c | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) commit 547370651b223bfc7438c28b57f66daf9610b084 Author: Carlos Garnacho Date: Thu Apr 6 20:55:07 2017 +0200 gtkrevealer: Remove view window It's not necessary anymore for either clipping or event delivery gtk/gtkrevealer.c | 107 +++++++++++++----------------------------------------- 1 file changed, 25 insertions(+), 82 deletions(-) commit 94094611bcacab2a89ab10774f830f03a77ace79 Author: Carlos Garnacho Date: Thu Apr 6 20:48:03 2017 +0200 gtkpaned: Remove per-child windows Those are no longer necessary for clipping nor receiving events, so just remove them. gtk/gtkpaned.c | 227 ++++++++++++--------------------------------------------- 1 file changed, 46 insertions(+), 181 deletions(-) commit ae43ca7e49d5809d4128e396ee405994484975f9 Author: Carlos Garnacho Date: Thu Apr 6 14:50:28 2017 +0200 gtklayout: Remove widget window It can be entirely replaced by a clip allocation on the widget. gtk/gtklayout.c | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) commit fe40abc636960fbb964534109d6eba0f0b082c68 Author: Carlos Garnacho Date: Thu Apr 6 13:56:36 2017 +0200 gtkoverlay: Remove per-child windows They are no longer necessary to do child positioning nor input handling. gtk/gtkoverlay.c | 175 ++++--------------------------------------------------- 1 file changed, 10 insertions(+), 165 deletions(-) commit e2c38ddc22dc0bec57b70eafd3e38b5e52596a3e Author: Carlos Garnacho Date: Thu Apr 6 13:55:35 2017 +0200 gtkwidget: Add private set_pass_through() call We could eventually support pointer-event in CSS here, in the mean time add this call to replace the GdkWindow API. gtk/gtkwidget.c | 16 +++++++++++++++- gtk/gtkwidgetprivate.h | 4 ++++ 2 files changed, 19 insertions(+), 1 deletion(-) commit 6c47938b00669960348c7becc93f63b0c03ee71e Author: Carlos Garnacho Date: Thu Apr 6 12:53:22 2017 +0200 gtktreeview: Remove header window It is no longer necessary to overlay the column headers above the treeview. gtk/gtktreeprivate.h | 2 -- gtk/gtktreeview.c | 56 +++++++------------------------------------------ gtk/gtktreeviewcolumn.c | 13 ++++-------- 3 files changed, 12 insertions(+), 59 deletions(-) commit cfd5a76ece0b665d8e14eba2d7d95cbf35893429 Author: Carlos Garnacho Date: Wed Apr 5 16:58:12 2017 +0200 gtktreeview: Remove widget window It can be entirely replaced by setting a proper clip rectangle. gtk/gtktreeview.c | 47 +++++++++++++++++++---------------------------- gtk/gtktreeviewcolumn.c | 6 ++++-- 2 files changed, 23 insertions(+), 30 deletions(-) commit ea4ee876ecb3731e6b7a4d544ca22c0a3a03bae9 Author: Carlos Garnacho Date: Wed Apr 5 16:30:07 2017 +0200 gtkstack: Remove view window This widget already sets a clip area, so the view window can be safely removed. gtk/gtkstack.c | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) commit e342f90a9927a16e2a2c30a247ce3d78a3cbcd6b Author: Carlos Garnacho Date: Tue Apr 4 18:55:33 2017 +0200 gtktoolpalette: Remove child window This is not necessary for rendering anymore, as the clip is set by the parent scrolledwindow. It's not necessary either for receiving input events. gtk/gtktoolpalette.c | 30 +++--------------------------- 1 file changed, 3 insertions(+), 27 deletions(-) commit 57d7c34d0383f2ed467d7de7dd24ba51996b1829 Author: Carlos Garnacho Date: Tue Apr 4 18:18:44 2017 +0200 gtkflowbox: Remove child window This widget correctly sets up a clip, so it is not necessary neither for rendering nor for receiving input events. gtk/gtkflowbox.c | 65 -------------------------------------------------------- 1 file changed, 65 deletions(-) commit a595f92b7baad1b6b08a5b848018d3decc215b15 Author: Carlos Garnacho Date: Tue Apr 4 17:09:41 2017 +0200 gtkwidget: Visually update cursors inside widget when changing cursor gtk/gtkwidget.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit fa04bf62383e5fbfd03961c78cb9b4ab4b0fe140 Author: Carlos Garnacho Date: Tue Apr 4 17:09:22 2017 +0200 gtkmain: Use window-internal API to update pointer cursors gtk/gtkmain.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) commit 599344d428e20fb8be38fb4fb98483533a3b81fb Author: Carlos Garnacho Date: Tue Apr 4 17:08:48 2017 +0200 gtkwindow: Add private API to update pointer cursors gtk/gtkwindow.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++ gtk/gtkwindowprivate.h | 3 +++ 2 files changed, 56 insertions(+) commit 87c7ca910c068c3420ccb1a7f1e8fcbbd2b6f5b8 Author: Carlos Garnacho Date: Tue Apr 4 00:40:12 2017 +0200 gtkscrolledwindows: Remove child windows Both for the view (compensated by widget clip) and the scrollbar indicators (just not needed anymore). gtk/gtkscrolledwindow.c | 216 ++++++++---------------------------------------- 1 file changed, 35 insertions(+), 181 deletions(-) commit 8731ca6ca5ba362251178057b1f092e1721e8403 Author: Carlos Garnacho Date: Mon Apr 3 00:33:56 2017 +0200 gtkexpander: Remove event window Detect presses/releases inside the label area instead. gtk/gtkexpander.c | 111 ++++++++++++++++-------------------------------------- 1 file changed, 32 insertions(+), 79 deletions(-) commit 1858f310aad7cfc32a453f7b023d1f3b20d147bf Author: Carlos Garnacho Date: Sun Apr 2 18:36:21 2017 +0200 gtkwindow: Implement window resizing sans-GdkWindow We can just replace window comparisons with coordinate matching, the cursor corresponding to edges is now set in a capture-phase motion handler, as cursors aren't set on GdkWindows anymore. gtk/gtkwindow.c | 379 +++++++++++++++++++------------------------------------- 1 file changed, 125 insertions(+), 254 deletions(-) commit d9d0c56eb72cc433e21bf067fd8059f16e09b2a9 Author: Carlos Garnacho Date: Sun Apr 2 16:41:44 2017 +0200 gtktoolitem: Remove gtk_tool_item_set_use_drag_window() This API call is not necessary anymore, since it's no longer necessary to receive events. docs/reference/gtk/gtk4-sections.txt | 2 - gtk/gtktoolitem.c | 155 ----------------------------------- gtk/gtktoolitem.h | 7 -- 3 files changed, 164 deletions(-) commit 072a13d0b740a2bbc9facce36534b14a6634d008 Author: Carlos Garnacho Date: Sun Apr 2 16:35:16 2017 +0200 gtkswitch: Remove event window It's not necessary anymore to receive input events. The pan gesture has been set on the capture phase as the child widgets may capture during bubbling. gtk/gtkswitch.c | 92 ++++----------------------------------------------------- 1 file changed, 5 insertions(+), 87 deletions(-) commit ef1e900a530546ea762e99950a4727c9f392cacb Author: Carlos Garnacho Date: Sun Apr 2 16:28:26 2017 +0200 gtkmenuitem: Remove input window It's not necessary anymore to receive events. gtk/gtkmenu.c | 7 +++--- gtk/gtkmenuitem.c | 65 ------------------------------------------------------- 2 files changed, 4 insertions(+), 68 deletions(-) commit ee13d4462226ab792573a8a30aa24233ddbcc91a Author: Carlos Garnacho Date: Sun Apr 2 16:25:55 2017 +0200 gtkglarea: Remove input window It's not necessary to receive events anymore. gtk/gtkglarea.c | 53 +---------------------------------------------------- 1 file changed, 1 insertion(+), 52 deletions(-) commit bee6148399cc9c1b7c5c87692ab2192a0ee35902 Author: Carlos Garnacho Date: Sun Apr 2 16:24:31 2017 +0200 gtkseparatortoolitem: Remove event window It's not necessary. It wasn't either before, as this widget handles no events. gtk/gtkseparatortoolitem.c | 78 ---------------------------------------------- 1 file changed, 78 deletions(-) commit de3e20107a769d0fc51cb839bb7ba8e5a6403184 Author: Carlos Garnacho Date: Sun Apr 2 16:19:58 2017 +0200 gtkcolorswatch: Remove input window It's not necessary to receive events anymore. gtk/gtkcolorswatch.c | 71 ---------------------------------------------------- 1 file changed, 71 deletions(-) commit 8402174d6b989d4aa241e67fcba3aca7a37b343a Author: Carlos Garnacho Date: Sun Apr 2 15:29:33 2017 +0200 gtkcolorplane: Remove event window It is not necessary anymore to receive events. gtk/gtkcolorplane.c | 45 --------------------------------------------- 1 file changed, 45 deletions(-) commit c14e6a51191a5107498dd38fd03c241d654be85a Author: Carlos Garnacho Date: Sun Apr 2 15:19:39 2017 +0200 gtkrange: Remove event window This is not necessary anymore to receive input events. gtk/gtkrange.c | 61 +--------------------------------------------------------- 1 file changed, 1 insertion(+), 60 deletions(-) commit 28b1c9cc3d3172d73bcab3046d9b569b33798628 Author: Carlos Garnacho Date: Sun Apr 2 15:15:38 2017 +0200 gtkpathbar: Remove event window This is not necessary anymore to receive scroll events. gtk/gtkpathbar.c | 52 ---------------------------------------------------- 1 file changed, 52 deletions(-) commit b7e6bb2241d71c1846d6152435af5143ffc01a3d Author: Carlos Garnacho Date: Sun Apr 2 15:04:18 2017 +0200 gtktoolbar: Remove input window This is not necessary to receive events anymore. gtk/gtktoolbar.c | 74 -------------------------------------------------------- 1 file changed, 74 deletions(-) commit d6023e9d45c2a5b241f0a7c536e1892b5a44a963 Author: Carlos Garnacho Date: Sun Apr 2 13:33:12 2017 +0200 label: Remove selection window It's no longer needed to receive events while the label is selectable. gtk/gtklabel.c | 88 ++++++---------------------------------------------------- 1 file changed, 9 insertions(+), 79 deletions(-) commit 3dd8a4191afad7cb5871de0a7a1ef570d229266b Author: Carlos Garnacho Date: Sun Apr 2 11:00:34 2017 +0200 gtknotebook: Remove event window on top of tabs No longer needed. gtk/gtknotebook.c | 80 +++++++------------------------------------------------ 1 file changed, 10 insertions(+), 70 deletions(-) commit 95bf1379c061c69c8bdd42f7d155a5f245e03b5a Author: Carlos Garnacho Date: Sat Apr 1 22:41:23 2017 +0200 gtkwindow: Ignore implicit grabs going away if there is no focus There should be no circumstances where an implicit grab is requested but no focus exists, there's however circumstances (like windowing grabs taking input to a different window) where we might get implicit grabs being undone when then new window didn't create a focus for the pointer itself. gtk/gtkwindow.c | 2 ++ 1 file changed, 2 insertions(+) commit b7fee9f9d2bb457781e92c73c73005a17a783e2c Author: Carlos Garnacho Date: Sat Apr 1 22:38:02 2017 +0200 gtkwindow: Revoke implicit grabs when activating an explicit one Only if they fall outside the grab widget, in that case the widget holding the implicit grab won't be receiving events anymore, so we can just undo it. gtk/gtkwindow.c | 28 ++++++++++++++++++++++++++++ gtk/gtkwindowgroup.c | 23 +++++++++++++++++++++++ gtk/gtkwindowprivate.h | 4 ++++ 3 files changed, 55 insertions(+) commit eaa17b2548dfdd745e5bc4bf5af3caa0c365405a Author: Carlos Garnacho Date: Fri Mar 31 19:11:03 2017 +0200 gtkbutton: Make windowless It is no longer necessary to receive events, so it's relatively straightforward now to drop. gtk/gtkbutton.c | 91 ++++------------------------------------------------ gtk/gtkcheckbutton.c | 5 --- 2 files changed, 7 insertions(+), 89 deletions(-) commit a72404dd5ab1874ac3d601cd94e0fa7184873851 Author: Carlos Garnacho Date: Fri Mar 31 18:58:16 2017 +0200 gtk: Mass delete all GtkWidget event mask API We now rely on toplevels receiving and forwarding all the events the windowing should be able to handle. Event masks are no longer a way to determine whether an event is deliverable ot a widget. Events will always be delivered in the three captured/target/bubbled phases, widgets can now just attach GtkEventControllers and let those handle the events. demos/gtk-demo/css_multiplebgs.c | 8 - demos/gtk-demo/drawingarea.c | 11 -- demos/gtk-demo/event_axes.c | 8 - demos/gtk-demo/gestures.c | 3 - docs/reference/gtk/gtk4-sections.txt | 6 - examples/drawing.c | 8 - gtk/gtkbutton.c | 7 +- gtk/gtkcalendar.c | 11 +- gtk/gtkclipboard.c | 3 - gtk/gtkcoloreditor.c | 8 - gtk/gtkcolorplane.c | 7 +- gtk/gtkcolorscale.c | 2 - gtk/gtkcolorswatch.c | 7 +- gtk/gtkcombobox.c | 2 - gtk/gtkdnd.c | 1 - gtk/gtkdragsource.c | 5 - gtk/gtkentry.c | 9 +- gtk/gtkeventbox.c | 16 +- gtk/gtkexpander.c | 6 +- gtk/gtkfixed.c | 4 +- gtk/gtkflowbox.c | 10 +- gtk/gtkfontchooserwidget.c | 2 - gtk/gtkglarea.c | 2 +- gtk/gtkiconview.c | 10 +- gtk/gtklabel.c | 7 +- gtk/gtklayout.c | 5 +- gtk/gtklistbox.c | 7 +- gtk/gtkmagnifier.c | 3 - gtk/gtkmenu.c | 10 +- gtk/gtkmenuitem.c | 7 +- gtk/gtknotebook.c | 8 +- gtk/gtkoverlay.c | 2 +- gtk/gtkpaned.c | 9 +- gtk/gtkpathbar.c | 4 +- gtk/gtkpopover.c | 8 +- gtk/gtkrange.c | 9 +- gtk/gtkrevealer.c | 4 +- gtk/gtkscalebutton.c | 2 - gtk/gtkscrolledwindow.c | 7 +- gtk/gtkseparatortoolitem.c | 5 +- gtk/gtkspinbutton.c | 4 - gtk/gtkstack.c | 15 +- gtk/gtkswitch.c | 8 +- gtk/gtktexthandle.c | 6 - gtk/gtktextview.c | 8 +- gtk/gtktoolbar.c | 7 +- gtk/gtktoolitem.c | 2 +- gtk/gtktoolitemgroup.c | 5 +- gtk/gtktoolpalette.c | 7 +- gtk/gtktreeview.c | 18 +- gtk/gtktreeviewcolumn.c | 8 +- gtk/gtkviewport.c | 6 +- gtk/gtkwidget.c | 350 ----------------------------------- gtk/gtkwidget.h | 20 -- gtk/gtkwindow.c | 27 +-- gtk/inspector/inspect-button.c | 6 - tests/motion-compression.c | 1 - tests/testgtk.c | 9 - tests/testinput.c | 27 --- tests/testoverlay.c | 1 - tests/testpopup.c | 1 - 61 files changed, 52 insertions(+), 737 deletions(-) commit ef4f0e53364b51efea1d71f7770e8d52631c3cb0 Author: Carlos Garnacho Date: Fri Mar 31 18:25:04 2017 +0200 gtkwidget: Make gtk_widget_event() Accept pointing events in root coordinates This function will, at the last minute, ensure the event contains the right widget-relative coordinates for the widget the event is being emitted to. gtk/gtkwidget.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 02932bc406502aa88e36ff840a983e1bcb24eb25 Author: Carlos Garnacho Date: Fri Mar 31 18:16:19 2017 +0200 gtkgesture: Drop GdkWindow checks Those are now needless and wrong, as we get guarantees that handled events will contain widget-relative coordinates. A side effect is that these events are very possibly not explicitly sent to the GdkWindow that implementations expect, any extra checks performed through gtk_gesture_set_window() will be wrong, so the function has been dropped entirely. docs/reference/gtk/gtk4-sections.txt | 2 - gtk/gtkgesture.c | 145 +---------------------------------- gtk/gtkgesture.h | 7 -- 3 files changed, 3 insertions(+), 151 deletions(-) commit 2c9678c38f07d7bead9275428c1ff732592b3f3d Author: Carlos Garnacho Date: Fri Mar 31 18:12:57 2017 +0200 gtkexpander: Drop usage of gtk_gesture_set_window() It's now meaningless since the gesture will receive the event despite the input only window. gtk/gtkexpander.c | 3 --- 1 file changed, 3 deletions(-) commit f5e02f3a2a3d299cd213f4bc3c40fe56820f3db1 Author: Carlos Garnacho Date: Fri Mar 31 18:11:52 2017 +0200 gtkcolorplane: Drop usage of gtk_gesture_set_window() It's now meaningless since the widget will receive the event despite the input window. gtk/gtkcolorplane.c | 6 ------ 1 file changed, 6 deletions(-) commit 99e200aa98c498adf7628d0f07f04b5fa3d0eb8e Author: Carlos Garnacho Date: Fri Mar 31 18:07:22 2017 +0200 gtknotebook: Fix coordinate translation to happen on widget-relative coordinates This makes notebooks happy again after changing event coordinates to always come in the widget coordinate system. gtk/gtknotebook.c | 48 ++++++++---------------------------------------- 1 file changed, 8 insertions(+), 40 deletions(-) commit b01a9a64402753565ae8e355b225c7887a2e90d2 Author: Carlos Garnacho Date: Fri Mar 31 18:06:19 2017 +0200 gtktextview: Drop GdkWindow checks on events These are now wrong and prevent the code from running correctly. gtk/gtktextview.c | 10 ---------- 1 file changed, 10 deletions(-) commit b20f04d18d4260566c449c0cda3134a10d61c4eb Author: Carlos Garnacho Date: Fri Mar 31 18:03:42 2017 +0200 gtktreeview: Drop gtk_gesture_set_window() API It is now meaningless and wrong, since GdkWindows aren't used anymore to determine the event target. gtk/gtktreeview.c | 8 -------- 1 file changed, 8 deletions(-) commit ca07c111727e49e4b5f1cfcac1e6df8443a8b80a Author: Carlos Garnacho Date: Fri Mar 31 18:02:16 2017 +0200 gtktextview: Set "text" pointer cursor This is no longer set through the Gdkwindow, so use private GtkWidget API. gtk/gtktextview.c | 5 +++++ 1 file changed, 5 insertions(+) commit 322ee63e0c5ce7ac51dbf8fd44d3f5227b488eab Author: Carlos Garnacho Date: Fri Mar 31 18:01:13 2017 +0200 gtkentry: Remove text_area window And refurbish cursor management to be set on the GtkWidget. The input window is not needed anymore to receive events either. This is no longer set through the GdkWindow, so use the private GtkWidget API. gtk/gtkentry.c | 127 ++++++++++++++++----------------------------------------- 1 file changed, 36 insertions(+), 91 deletions(-) commit 7c16bb93b5f6654b41c2b33e432bac9d8c345f96 Author: Carlos Garnacho Date: Fri Mar 31 17:19:37 2017 +0200 gtkwidget: Add private cursor setter/getter This should be eventually replaced by CSS cursors, but at the moment it must be handled on the gtk/ side. gtk/gtkwidget.c | 13 +++++++++++++ gtk/gtkwidgetprivate.h | 8 ++++++++ 2 files changed, 21 insertions(+) commit d39afa60118f6e7a5cc2305c0f7bcfcf9ab955ee Author: Carlos Garnacho Date: Sat Apr 1 23:25:13 2017 +0200 imcontext: Remove API dependency on GdkWindow There is now a set_client_widget() to hint the IM about positioning and whatnot. gtk/gtkentry.c | 4 ++-- gtk/gtkimcontext.c | 18 +++++++++--------- gtk/gtkimcontext.h | 10 +++++----- gtk/gtkimcontextsimple.c | 16 ++++++++-------- gtk/gtkimmulticontext.c | 24 ++++++++++++------------ gtk/gtktextview.c | 6 +++--- modules/input/gtkimcontextxim.c | 13 +++++++------ modules/input/imbroadway.c | 16 ++++++++-------- 8 files changed, 54 insertions(+), 53 deletions(-) commit 5836beee78fc3acf7a48ec01ab1dda72eac2bfc0 Author: Carlos Garnacho Date: Fri Mar 31 17:59:43 2017 +0200 gtkbutton: Handle crossing events without the event window The event shall no longer be "directed" to the event window, but the widget. Getting a enter/leave event is enough now to know whether the pointer is inside or outside the widget. gtk/gtkbutton.c | 18 +++++------------- gtk/gtkbuttonprivate.h | 1 - gtk/gtkmodelbutton.c | 12 ------------ 3 files changed, 5 insertions(+), 26 deletions(-) commit 23d21267298035dea59c33df5d7c54bdfb052bad Author: Carlos Garnacho Date: Fri Mar 31 17:57:44 2017 +0200 gtkpointerfocus: Add methods to handle implicit grabs on widgets Just a basic setter/getter, plus a method to obtain the right logical target in the presence or absence of these. gtk/gtkpointerfocus.c | 28 ++++++++++++++++++++++++++++ gtk/gtkpointerfocusprivate.h | 6 ++++++ 2 files changed, 34 insertions(+) commit 3dfab962fa709193f9ca9ad8247b7feb9bb1e39b Author: Carlos Garnacho Date: Fri Mar 31 17:55:49 2017 +0200 gtk: Implement per-focus implicit grabs Unlike GTK+ grabs which are global to all/one device, the implicit grab is per focus, which means each may have implicit grabs on different or the same widget. gtk/gtkmain.c | 10 ++++++++++ gtk/gtkwindow.c | 13 +++++++++++++ gtk/gtkwindowprivate.h | 4 ++++ 3 files changed, 27 insertions(+) commit 79e267a330433834ee50e36141aae8ed558b08d4 Author: Carlos Garnacho Date: Fri Mar 31 17:54:06 2017 +0200 gtk: Implement cursor updates As we don't obey GdkWindow cursors anymore, someone must set those. Use the private Gtkwidget API at the moment. gtk/gtkmain.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 8f24df1c199fdc849e7bf6281408c703ad9dfde0 Author: Carlos Garnacho Date: Fri Mar 31 17:49:21 2017 +0200 gtk: Update GtkPointerFocus targets on mapping/sensitivity changes Those are situations that must cause foci on these widgets to repick themselves. gtk/gtkwidget.c | 18 ++++++++++++++++++ gtk/gtkwindow.c | 28 ++++++++++++++++++++++++++++ gtk/gtkwindowprivate.h | 3 +++ 3 files changed, 49 insertions(+) commit f57f48d61fca9c8caaa393fcb71a2548bdd278e6 Author: Carlos Garnacho Date: Fri Mar 31 17:46:35 2017 +0200 gdkwindow: Drop csw-side event translation Now that gtk_main_do_event() is able to handle pointing events in toplevel coordinates, forward all of these as is. Just minimal handling is still done on the gdk side for GDK grab accounting, and toplevel tracking for each pointer. gdk/gdkwindow.c | 955 +------------------------------------------------------- 1 file changed, 5 insertions(+), 950 deletions(-) commit e25fcf983a36080eb57c96f312a6ad8f5cbeb887 Author: Carlos Garnacho Date: Fri Mar 31 17:38:38 2017 +0200 gtk: Handle events with coordinates in toplevel-relative ones Implement target finding per-pointer/touchpoint through GtkPointerFocus and _gtk_toplevel_pick(). Focus changes are handled through the emission of crossing events between the old target and the new one. gtk/gtkmain.c | 213 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 213 insertions(+) commit 17aa0ca76e6eeb72da909e5a63f1367596edc536 Author: Carlos Garnacho Date: Fri Mar 31 17:31:20 2017 +0200 gtkwindow: Add management functions for GtkPointerFocus instances Each toplevel will keep its own tracking of the current ongoing foci, add the plumbing that will allow to create/update/remove those as they come and go. gtk/gtkwindow.c | 122 +++++++++++++++++++++++++++++++++++++++++++++++++ gtk/gtkwindowprivate.h | 15 ++++++ 2 files changed, 137 insertions(+) commit ba92dceab2c94872977b19df01321162d76a4948 Author: Carlos Garnacho Date: Fri Mar 31 17:22:00 2017 +0200 gtk: Introduce GtkPointerFocus These objects (tied to a toplevel) track the focus of a pointer/touchpoint. The info in these basically consists of current toplevel coordinates and the current target widget. gtk/Makefile.am | 2 + gtk/gtkpointerfocus.c | 98 ++++++++++++++++++++++++++++++++++++++++++++ gtk/gtkpointerfocusprivate.h | 52 +++++++++++++++++++++++ 3 files changed, 152 insertions(+) commit f50875f8d06b175e3dd3ca5232475897e4e757cf Author: Carlos Garnacho Date: Fri Mar 31 17:16:47 2017 +0200 gtkwidget: Expose gtk_widget_common_ancestor() This function will be useful in other places, such as determining the widgets that must receive crossing events after pointer picking points to another widget. gtk/gtkwidget.c | 2 +- gtk/gtkwidgetprivate.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) commit 799428aaea7f36f8304d9da3ab8ec7b9dc7e8c16 Author: Carlos Garnacho Date: Fri Mar 31 16:51:42 2017 +0200 gdk: Add gdk_event_set_coords() method A helper function basically for gtk+, so coordinates can be translated in place depending on the widget it's being delivered to. gdk/gdkevents.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ gdk/gdkevents.h | 4 ++++ 2 files changed, 57 insertions(+) commit 53c297436d2528440a996ac607a2c6f4f5657b00 Author: Carlos Garnacho Date: Fri Mar 31 16:49:22 2017 +0200 gtk: Add private _gtk_toplevel_pick() method This function returns both the widget at the given toplevel coordinates, and the translated x/y in widget relative coordinates. gtk/gtkmain.c | 23 +++++++++++++++++++++++ gtk/gtkprivate.h | 5 +++++ 2 files changed, 28 insertions(+) commit 9c97bf0c02721bf8d2850e622f374d73dbb48a0f Author: Carlos Garnacho Date: Fri May 12 12:33:58 2017 +0200 GtkWidget: Add ::pick vmethod The default implementation iterates through all children, so should suffice for most widgets. gtk/gtkwidget.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ gtk/gtkwidget.h | 6 +++++ 2 files changed, 80 insertions(+) commit fee289cd0632adcc563378c41350834207436648 Author: Carlos Garnacho Date: Fri May 12 11:46:33 2017 +0200 gdk: Add gdk_rectangle_contains_point() call A little helper function for a somewhat common operation. docs/reference/gdk/gdk4-sections.txt | 1 + gdk/gdkrectangle.c | 25 +++++++++++++++++++++++++ gdk/gdkrectangle.h | 5 +++++ 3 files changed, 31 insertions(+) commit 28f8a27d652127b600a6ae1baee3bad5770bfa20 Author: Debarshi Ray Date: Wed May 24 16:08:07 2017 +0200 wayland: Don't abort when preparing the source if connection is lost Aborting the application makes it look like an application bug, when it is the expected thing to do when the Wayland display server goes way. eg., when the user logs out. The log level is also demoted to avoid a storm of warnings in the log from all applications whenever this happens. This is also what the X11 backend does (see gdk_x_io_error). https://bugzilla.gnome.org/show_bug.cgi?id=783047 gdk/wayland/gdkeventsource.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)