commit 66ea7ce97685a7f13f284190286fdfa40b440576 Author: Matthias Clasen Date: Fri Dec 4 20:14:08 2015 -0500 3.18.6 NEWS | 27 +++++++++++++++++++++++++++ configure.ac | 4 ++-- 2 files changed, 29 insertions(+), 2 deletions(-) commit 35567f09134757bd4b8e1a980089be02a720d4b7 Author: Christian Hergert Date: Mon Nov 30 23:09:31 2015 -0800 filechooserbutton: add some spacing between icon and text These were a bit crammed, which doesn't match well with spacing used in various other parts of gtk. gtk/ui/gtkfilechooserbutton.ui | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit d58ebe965a0c302e618132e091831c09ad1ec097 Author: Timm Bäder Date: Tue Dec 1 13:40:46 2015 +0100 Add some more missing nullable annotations gtk/gtkgrid.c | 2 +- gtk/gtklistbox.c | 4 ++-- gtk/gtkwindow.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit acf4155c0da032950e82e2ce2efbd08840603006 Author: Timm Bäder Date: Tue Dec 1 13:31:08 2015 +0100 GtkWidget: Add some missing nullable annotations gtk/gtkwidget.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit d505c19f8c8cacb7e5275fe07159f4807c3f05e3 Author: Matthias Clasen Date: Mon Nov 30 18:21:44 2015 -0500 testentryicons: Use an existing icon name dialog-info is not an existing icon. tests/testentryicons.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4e1ce8cde37d0bb586d58f946c32774eaa0e8342 Author: Sébastien Wilmet Date: Thu Nov 26 13:31:19 2015 +0100 textiter: fix bug in case insensitive backward search 'win.lines' contains the same content as the GtkTextBuffer, so to find @match_start, forward_chars_with_skipping() is called with skip_decomp=FALSE (the last parameter). So far so good. On the other hand, the content 'lines' (the needle split in lines) is casefolded and normalized for a case insensitive search. So, forward_chars_with_skipping(..., skip_decomp=TRUE) must be called only for the portion of text containing the needle. Since 'start_tmp' contains the location at the start of the match, we can simply begin at that location to find the end of the match. Unit tests are added. https://bugzilla.gnome.org/show_bug.cgi?id=758698 gtk/gtktextiter.c | 23 ++++++++++------------- testsuite/gtk/textiter.c | 12 ++++++++++++ 2 files changed, 22 insertions(+), 13 deletions(-) commit 06ea00746df071723b96efc02013f57269fd61dc Author: Timm Bäder Date: Sat Nov 28 21:00:29 2015 +0100 icon-browser: Stop using GtkMisc properties Instead of xpad/ypad of 4 for every widget, just increase the row-spacing and column-spacing by 8. https://bugzilla.gnome.org/show_bug.cgi?id=758790 demos/icon-browser/window.ui | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) commit 760d4f2986e6afbd7ea37d4c98637bb5aab5b29e Author: Timm Bäder Date: Sat Nov 28 20:51:48 2015 +0100 icon-browser: Use proper "times" character https://bugzilla.gnome.org/show_bug.cgi?id=758790 demos/icon-browser/window.ui | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit b72f214638e160f2e13408a1849fce128684d6c8 Author: Timm Bäder Date: Sat Nov 28 20:48:40 2015 +0100 icon-browser: baseline-align the icon size labels https://bugzilla.gnome.org/show_bug.cgi?id=758790 demos/icon-browser/window.ui | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 7ac89c0acfa128248e01ea04db33a863a9f13149 Author: Emmanuele Bassi Date: Mon Nov 30 14:09:19 2015 +0000 scalebutton: Annotate the return type Instead of just listing the return type of get_plus_button() and get_minus_button() in the documentation, we can use the (type) annotation to ensure that the introspection data reflects the actual type of the returned widget. gtk/gtkscalebutton.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b8c6eec63a15a4dd947a330c4ae16f0a846345e1 Author: Timm Bäder Date: Sun Nov 22 10:35:25 2015 +0100 GtkScaleButton: _get_(plus|minus)_button returns a GtkButton https://bugzilla.gnome.org/show_bug.cgi?id=539944 gtk/gtkscalebutton.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 535714b1c5ca4cd746ae5ab32dba6784c660a26a Author: Руслан Ижбулатов Date: Sat Nov 21 04:00:33 2015 +0000 GDK W32: Add a comment for clarity This is a copy of a similar comment in another place, which explains why WS_EX_TRANSPARENT windows get a special treatment. https://bugzilla.gnome.org/show_bug.cgi?id=758484 gdk/win32/gdkwindow-win32.c | 3 +++ 1 file changed, 3 insertions(+) commit d5f4c8c039b153153ba475d38219c731a592646d Author: Руслан Ижбулатов Date: Sat Nov 21 03:58:22 2015 +0000 GDK W32: Clarify the use of the second argument to SetWindowPos() https://bugzilla.gnome.org/show_bug.cgi?id=758484 gdk/win32/gdkwindow-win32.c | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) commit 2f72d551e0238da13ee6f9c181452d18f8cf5250 Author: Руслан Ижбулатов Date: Sat Nov 21 03:48:55 2015 +0000 GDK W32: Don't use SetWindowLong() to set/unset WS_EX_TOPMOST While searching for the cause of bug 746745 it was discovered that one could not set WS_EX_TOPMOST extended window style with SetWindowLong(), but must use SetWindowPos() for that purpose. This was never a problem most likely because it is highly unlikely for windows to acquire/lose WS_EX_TOPMOST after they are created, by means other than SetWindowPos() (which GTK does use to raise/lower windows and set/remove keep_above), and because trying to set/unset WS_EX_TOPMOST with SetWindowLong() results in WS_EX_TOPMOST merely not being set/unset (that is, other styles are still set/unset within the same call and no error is signalled). https://bugzilla.gnome.org/show_bug.cgi?id=758483 gdk/win32/gdkwindow-win32.c | 46 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 8 deletions(-) commit 0a4fd115bbf8322f7e42cd4067422dd48810a2e1 Author: Matthias Clasen Date: Mon Nov 23 14:23:16 2015 -0500 places view: Fix up docs gtk/gtkplacesview.c | 4 ---- 1 file changed, 4 deletions(-) commit 88b5cd50d3b978c1bd17faf65c010e40468fd42e Author: Matthias Clasen Date: Mon Nov 23 08:17:49 2015 -0500 Tweak the gtk-font-name setting docs Clarify that only parts of the font name are used. https://bugzilla.gnome.org/show_bug.cgi?id=758367 gtk/gtksettings.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 2c7f23f462367007afa9220db98934adeeac811a Author: Руслан Ижбулатов Date: Sat Nov 21 03:38:26 2015 +0000 GDK W32: Only restack windows with matching always-on-top status This prevents normal application windows (and other kinds of windows) from being moved up in Z-order to be above windows that have the always-on-top bit set. Doing so would make the previously-normal windows in question also always-on-top implicitly. Windows that are already always-on-top will be restacked on top of other always-on-top windows too. https://bugzilla.gnome.org/show_bug.cgi?id=746745 gdk/win32/gdkevents-win32.c | 49 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 3 deletions(-) commit c6d9d34c235d4f00a26dbccafbea24745878fea2 Author: Руслан Ижбулатов Date: Sat Nov 21 03:37:40 2015 +0000 GDK W32: Refactor restacking functions a bit gdk/win32/gdkevents-win32.c | 177 ++++++++++++++++++++++++-------------------- 1 file changed, 95 insertions(+), 82 deletions(-) commit b5811984f1f2a86a9165807065a78d4bd73a46a9 Author: Jonas Ådahl Date: Fri Nov 20 16:49:12 2015 +0800 wayland: Set a null cursor surface when cursor buffer is null If the buffer of a cursor is NULL, for example if its an empty cursor, just set the cursor surface to NULL as well. Not doing this we'll use uninitialized hotspot coordinates, dimensions and scales. https://bugzilla.gnome.org/show_bug.cgi?id=758025 gdk/wayland/gdkdevice-wayland.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) commit bd1a2b8197455267d497ef63390e9e1ea9b859bc Author: Matthias Clasen Date: Thu Nov 19 19:56:19 2015 -0500 Work around g_test_dbus annoyance Without iterating a mainloop for a bit, g_test_dbus_down() will give us an error. testsuite/gtk/defaultvalue.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 6747ecbbebff5c2c96eb8451072d32eb3ae78da1 Author: Phillip Wood Date: Mon Nov 16 12:14:05 2015 +0000 Fix character entities These are not supposed to be supported by gtk-doc¹ ¹https://bugzilla.gnome.org/show_bug.cgi?id=758137 https://bugzilla.gnome.org/show_bug.cgi?id=758175 gtk/gtkrecentmanager.h | 2 +- gtk/gtkrender.c | 2 +- gtk/gtktextview.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 1b545bf81477fb59ac207f46a53efb9f28c1e670 Author: Emmanuele Bassi Date: Thu Nov 19 12:44:17 2015 +0000 Do not use the GPL v3 blurb for LGPL v2.1 files GTK+ is licensed under the terms of the GNU LGPL v2.1+. gtk/gtkplacessidebar.h | 31 ++++++++++++++----------------- gtk/gtkplacessidebarprivate.h | 2 +- gtk/gtkplacesview.c | 8 ++++---- gtk/gtkplacesviewprivate.h | 11 +++++------ gtk/gtkplacesviewrow.c | 8 ++++---- gtk/gtkplacesviewrowprivate.h | 8 ++++---- 6 files changed, 32 insertions(+), 36 deletions(-) commit b6144e024a7c40fe9bd87c77c363d40085ec2f8d Author: Emmanuele Bassi Date: Thu Nov 19 12:43:24 2015 +0000 Do not use the LGPL v3 blurb for LGPL v2.1 files GTK+ is released under the terms of the GNU LGPL v2.1+. gtk/gtksidebarrow.c | 4 ++-- gtk/gtksidebarrowprivate.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit fa987e2b81c1596cbb18261b4b45eb4eb157b8b2 Author: Emmanuele Bassi Date: Thu Nov 19 12:41:22 2015 +0000 Fix the license version in GtkTrashMonitor There is no GNU Lesser General Public License version 2; it's either GNU Library General Public License version 2, or GNU Lesser General Public License version 2.1. gtk/gtktrashmonitor.c | 6 +++--- gtk/gtktrashmonitor.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) commit b734b724417be4a5c87bc5f0bffd010be0ad5aae Author: Emmanuele Bassi Date: Thu Nov 19 12:33:07 2015 +0000 Fix license version for GtkFileChooserWidget private header Since it's using Lesser GPL, use version 2.1; there is no Lesser GPL v2, as it was called 'Library GPL' prior to v2.1. gtk/gtkfilechooserwidgetprivate.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 16864c8ef48e534a97354c75633688b632b561f2 Author: Emmanuele Bassi Date: Thu Nov 19 12:11:05 2015 +0000 Fix the licensing blurb of GtkBookmarksManager Copy-pasta from GPL instead of LGPL. Also, there is no GNU Lesser General Public License version 2; either it's the GNU Library General Public License version 2, or it's the GNU Lesser General Public License version 2.1. gtk/gtkbookmarksmanager.c | 6 +++--- gtk/gtkbookmarksmanager.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) commit 8b4ec2902e07a9dde137530394ffb9a4a6d60e48 Author: Emmanuele Bassi Date: Thu Nov 19 12:06:54 2015 +0000 Fix the licensing blurb in GtkPlacesSidebar The code is released under the terms of the LGPL v2.1+, as is the rest of the GTK+ code. gtk/gtkplacessidebar.c | 35 ++++++++++++++++------------------- gtk/gtkplacessidebarprivate.h | 2 +- 2 files changed, 17 insertions(+), 20 deletions(-) commit 648903c3b819d6c9abe402aa83011d3074683631 Author: Matthias Clasen Date: Thu Nov 19 07:22:01 2015 -0500 Fix license header I didn't meant to make this different from any other file in GTK+ when I added it. gtk/gtkfilechooserwidgetprivate.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 585b5fe8665803e45fee1f4a16f295344d9794a5 Author: Matthias Clasen Date: Wed Nov 18 10:21:15 2015 -0500 Document GDK_TOUCHPAD_GESTURE_MASK gdk/gdktypes.h | 1 + 1 file changed, 1 insertion(+) commit 07b2de944b9f54b0df3758433f1070acc50d3246 Author: Matthias Clasen Date: Tue Nov 17 22:48:35 2015 -0500 popover: Avoid a crash when no relative-to widget is set This was showing up in glade, which creates freestanding popovers. gtk/gtkpopover.c | 3 +++ 1 file changed, 3 insertions(+) commit d147cf2d32504923cc18bde98ff1bc6cc07b69d7 Author: Rui Matos Date: Tue Nov 3 18:39:27 2015 +0100 wayland: Translate virtual modifiers too Wayland allows us to receive virtual modifiers too so we can just use them directly if the compositor does send them. https://bugzilla.gnome.org/show_bug.cgi?id=748904 gdk/wayland/gdkkeys-wayland.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 9db511f6777e0380e87c740c41f059dfc2b052c5 Author: Carlos Garnacho Date: Mon Nov 30 18:35:10 2015 +0100 wayland: Refactor selection ownership Dissociate ownership from our maintenance of wl_data_source objects. The only place where ownership must be updated together is data_source.cancelled, for the other places GDK should take care of setting up the right ownership, even if at a different order than we'd expect here. This fixes GTK+ apps on wayland being locally confused about the current selection ownership. Because gtk_selection_add_targets() results in a wl_data_source being created, and ownership being updated right away, early callers of this will change the ownership even if the widget it's being called on didn't explicitly request the selection ownership yet. https://bugzilla.gnome.org/show_bug.cgi?id=758660 gdk/wayland/gdkselection-wayland.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) commit 21b0a3c8fe9a28f6af1e517d34d335faccf6fc29 Author: Piotr Drąg Date: Fri Nov 27 23:30:07 2015 +0100 Updated Polish translation po/pl.po | 598 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 299 insertions(+), 299 deletions(-) commit 8662985ebb2a04be7db6a4d23575fb467ba4e018 Author: Carlos Garnacho Date: Wed Nov 25 17:28:15 2015 +0100 GtkWindow: Reset gestures after triggering right click titlebar action Just like it happens for window dragging, we're likely to not see the matching button release for this event, so we must reset the controller manually here. https://bugzilla.gnome.org/show_bug.cgi?id=758661 gtk/gtkwindow.c | 3 +++ 1 file changed, 3 insertions(+) commit 48fa89f97990d2e5470d67743b76ad9c82255b54 Author: Carlos Garnacho Date: Fri Jun 19 14:02:42 2015 +0200 wayland: Do not store the grab cursor separately After the grab is finished, we would expect an enter event, and GDK updating internally the cursor for that window and device. This means there is no need at all to store it separately in the backend. As a side effect, animated cursors are now also possible on grab icons. https://bugzilla.gnome.org/show_bug.cgi?id=735847 gdk/wayland/gdkdevice-wayland.c | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) commit f3e1c088a7abcd2748abf6d02ae70abfd2b1c34b Author: Carlos Garnacho Date: Tue Nov 24 17:53:41 2015 +0100 device: Fix dispose The way master devices detach from their other master counterpart is vulnerable to infinite recursion due to the way we first recurse on the other device before clearing the pointer, this may happen if that last reference to the other master device is held by the device->associated field. https://bugzilla.gnome.org/show_bug.cgi?id=732742 gdk/gdkdevice.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit 0adf04015272f48c4ca9b74d2d29725627b14134 Author: Carlos Garnacho Date: Tue Nov 24 17:41:58 2015 +0100 wayland: Plug surface leak Other backends take care of the cairo surface destruction in GdkWindow::destroy. We must do the same here, or the cairo_surface and its corresponding wl_buffer are left dangling. https://bugzilla.gnome.org/show_bug.cgi?id=747295 gdk/wayland/gdkwindow-wayland.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 41bed12fe09f5735302cd5e14bbe7c8c55b7c034 Author: Carlos Garnacho Date: Mon Nov 23 18:18:46 2015 +0100 searchenginetracker: Remove astray ");" closing a function Sad face for me. gtk/gtksearchenginetracker.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3f1e8c6883242f3e8b2ff302f024154b13027c9b Author: Carlos Garnacho Date: Fri Nov 20 19:04:39 2015 +0100 searchenginetracker: Optimize direct/recursive folder lookups tracker:uri-is-descendant/parent has the unfortunate side effect of rendering the collation mechanisms in the database useless, so those require full table scans to be validated. Performing these as pure string comparisons will perform much better, as those allow the underlying sqlite to rely on its own collation to perform the search, which can be significantly faster with many elements in the database. https://bugzilla.gnome.org/show_bug.cgi?id=758407 gtk/gtksearchenginetracker.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) commit dec6e119af60a287537be511e0d89ce1ed93d2ba Author: Carlos Garnacho Date: Fri Nov 20 19:02:17 2015 +0100 searchenginetracker: ensure nie:url is bound This could produce strange warnings as it is currently passed to tracker:uri-is-* sparql functions, as these expect no NULLs. https://bugzilla.gnome.org/show_bug.cgi?id=758407 gtk/gtksearchenginetracker.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ba6934366d01d8713e8eb9ff4c5bdc46561c8a69 Author: Benjamin Otte Date: Fri Nov 20 20:54:21 2015 +0100 cssstyle: Don't crash if properties are added at runtime Just return the default value for those properties. Testcase included. https://bugzilla.redhat.com/show_bug.cgi?id=1281234 gtk/gtkcssstaticstyle.c | 9 ++++++--- testsuite/gtk/stylecontext.c | 24 ++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) commit 1e30fe1c3bd8cac32cfdbc112e94f5417a433777 Author: Matthias Clasen Date: Thu Nov 19 14:39:42 2015 -0500 wayland: Avoid a crash We can end up in situations where NULL gets passed to get_transient_parent(). Embrace it instead of avoiding it. https://bugzilla.gnome.org/show_bug.cgi?id=758327 gdk/wayland/gdkwindow-wayland.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit bd3ea23655bee3ff51647131bf2294afd245dd5a Author: Christian Hergert Date: Wed Nov 18 14:41:29 2015 -0800 entry: ensure valid GdkWindow before set_invisible_cursor() If the window has not yet been created, then we can't set the invisible cursor yet. This can happen in situations where the widget is in a revealer with type-to-search functionality. gtk/gtkentry.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 386303ec6641cf7adce983342fe43db96520d548 Author: Carlos Garnacho Date: Mon Nov 16 12:51:42 2015 +0100 wayland: Move additional pointer buttons after the old 4-7 scrolling ones We were using that range for the extra buttons after left/right/middle, while this is harmless for clients not handling extra buttons (we used to translate those button events into scroll events in x11 anyway) this will be unexpected for clients that do handle additional mouse buttons themselves (eg. back/forward buttons present in some mice). In order to remain compatible with X11, those need to be assigned from button 8 onwards. Also, include input.h, and stop using magic numbers here. https://bugzilla.gnome.org/show_bug.cgi?id=758072 gdk/wayland/gdkdevice-wayland.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 1d3f93f277db6f4bf0be0b526d8ae1b38728f8b6 Author: Carlos Garnacho Date: Tue Nov 17 15:36:08 2015 +0100 x11: Add "pointer" to the is-not-a-touchscreen device name checks Commit 1266d15c4 also broke Xwayland, as it does the same trick than VMWare pointers. Let's extend the heuristic to check for "pointer" in the device name, what can possibly go wrong... https://bugzilla.gnome.org/show_bug.cgi?id=757358 gdk/x11/gdkdevicemanager-xi2.c | 1 + 1 file changed, 1 insertion(+) commit ed692f9a0b6cc36ef7197082772b3e549d15e817 Author: Carlos Garnacho Date: Fri Nov 13 17:14:34 2015 +0100 x11: Do not misdetect mice with abs axes as touchscreens VMWare seems to create mouse devices with abs axes which confuses our detection of single-touch touchscreens. Those have though a name we can match on ("VirtualPS/2 VMware VMMouse"), it should be pretty safe to assume that no real touchscreens have "mouse" in their name... https://bugzilla.gnome.org/show_bug.cgi?id=757358 gdk/x11/gdkdevicemanager-xi2.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a1a0ead0188a9718a386364d912e82013347cfb4 Author: Matthias Clasen Date: Mon Nov 16 18:31:37 2015 -0500 x11: Try harder to find a core pointer We currently just look for a master device with input source MOUSE. After recent changes to the way input devices are classified, xwayland on my system comes up with a virtual core pointer that has input source TOUCHSCREEN. This was causing assertion failures. Be a little more careful and accept a touchscreen as core pointer, if there is no mouse. gdk/x11/gdkdisplay-x11.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) commit b71d2864c88fb7e99c7243393cf556e0dc1d9299 Author: Matthias Clasen Date: Mon Nov 16 11:51:16 2015 -0500 3.18.5 NEWS | 9 +++++++++ configure.ac | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) commit f16292ea024412b53d882b0aa0fbb292761a06f1