<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/gtk+.git, branch wip/matthiasc/subsurface</title>
<subtitle>gitlab.gnome.org: GNOME/gtk.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gtk+.git/'/>
<entry>
<title>wip: subsurface window type</title>
<updated>2018-01-28T22:30:29+00:00</updated>
<author>
<name>Matthias Clasen</name>
<email>mclasen@redhat.com</email>
</author>
<published>2018-01-28T22:30:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gtk+.git/commit/?id=b54e24ea292a3c8385474126015b8129eb763195'/>
<id>b54e24ea292a3c8385474126015b8129eb763195</id>
<content type='text'>
Make subsurfaces for X11 as follows:
- toplevel
- override-redirect
- moves with the parent
Attempt to use subsurfaces for popovers again
This does not quite work yet
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make subsurfaces for X11 as follows:
- toplevel
- override-redirect
- moves with the parent
Attempt to use subsurfaces for popovers again
This does not quite work yet
</pre>
</div>
</content>
</entry>
<entry>
<title>inspector: Actually call the pick() vfunc when picking</title>
<updated>2018-01-26T16:29:30+00:00</updated>
<author>
<name>Timm Bäder</name>
<email>mail@baedert.org</email>
</author>
<published>2018-01-26T16:28:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gtk+.git/commit/?id=794d9d266e35b1eee87221b6687a39aa490c50db'/>
<id>794d9d266e35b1eee87221b6687a39aa490c50db</id>
<content type='text'>
Otherwise, overridden pick vfuncs don't work and we e.g. pick widgets
scrolled away in a viewport.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Otherwise, overridden pick vfuncs don't work and we e.g. pick widgets
scrolled away in a viewport.
</pre>
</div>
</content>
</entry>
<entry>
<title>entry: Remove unused struct members</title>
<updated>2018-01-26T16:29:30+00:00</updated>
<author>
<name>Timm Bäder</name>
<email>mail@baedert.org</email>
</author>
<published>2018-01-26T14:51:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gtk+.git/commit/?id=60fdeda599370a574a21fcce8b9e13a0e5291281'/>
<id>60fdeda599370a574a21fcce8b9e13a0e5291281</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>menu: Simplify popup_at_rect</title>
<updated>2018-01-26T16:29:30+00:00</updated>
<author>
<name>Timm Bäder</name>
<email>mail@baedert.org</email>
</author>
<published>2018-01-24T07:44:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gtk+.git/commit/?id=a29306cb1e739afaa4a7b31d48c4bec328cfef9e'/>
<id>a29306cb1e739afaa4a7b31d48c4bec328cfef9e</id>
<content type='text'>
No need to keep a separate current_event variable around, we don't use
it anyway.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
No need to keep a separate current_event variable around, we don't use
it anyway.
</pre>
</div>
</content>
</entry>
<entry>
<title>gdk: Stop referring to ::key-press/release-event</title>
<updated>2018-01-24T11:04:32+00:00</updated>
<author>
<name>Matthias Clasen</name>
<email>mclasen@redhat.com</email>
</author>
<published>2018-01-23T23:04:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gtk+.git/commit/?id=f00f5508d4d71b7205f3284afbdb0fe1096203ea'/>
<id>f00f5508d4d71b7205f3284afbdb0fe1096203ea</id>
<content type='text'>
These signals are going away, don't mention them in
the docs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These signals are going away, don't mention them in
the docs.
</pre>
</div>
</content>
</entry>
<entry>
<title>entry completion: Stop using key-press/release-event</title>
<updated>2018-01-24T11:04:27+00:00</updated>
<author>
<name>Matthias Clasen</name>
<email>mclasen@redhat.com</email>
</author>
<published>2018-01-23T23:02:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gtk+.git/commit/?id=063592f3500083d61b9298a303dd34bdcac3de10'/>
<id>063592f3500083d61b9298a303dd34bdcac3de10</id>
<content type='text'>
We can use the existing ::event handler for this.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We can use the existing ::event handler for this.
</pre>
</div>
</content>
</entry>
<entry>
<title>gsk: Add test case for last commit</title>
<updated>2018-01-23T20:46:31+00:00</updated>
<author>
<name>Timm Bäder</name>
<email>mail@baedert.org</email>
</author>
<published>2018-01-23T20:46:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gtk+.git/commit/?id=6806c28b1e7806ece2c41a8b4e403c1abfcc2b1b'/>
<id>6806c28b1e7806ece2c41a8b4e403c1abfcc2b1b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>gl renderer: Fix outset shadow outline transform</title>
<updated>2018-01-23T20:46:31+00:00</updated>
<author>
<name>Timm Bäder</name>
<email>mail@baedert.org</email>
</author>
<published>2018-01-23T20:44:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gtk+.git/commit/?id=e3557f681c2b27f34af4b4595e7d0e988745ee0c'/>
<id>e3557f681c2b27f34af4b4595e7d0e988745ee0c</id>
<content type='text'>
This fixes hidpi blurred outset shadows
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes hidpi blurred outset shadows
</pre>
</div>
</content>
</entry>
<entry>
<title>Enforce UTF-8 encoding when opening C files</title>
<updated>2018-01-23T13:04:49+00:00</updated>
<author>
<name>Emmanuele Bassi</name>
<email>ebassi@gnome.org</email>
</author>
<published>2018-01-18T19:23:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gtk+.git/commit/?id=f83b3c8af2e0b02aa7e67fdbba6d5cae12658652'/>
<id>f83b3c8af2e0b02aa7e67fdbba6d5cae12658652</id>
<content type='text'>
We have a couple of Python 3.x scripts that parse C files, and since C
does not have any encoding, we need to force one ourselves, to avoid the
case when we're running the build in a non-UTF-8 locale.

https://bugzilla.gnome.org/show_bug.cgi?id=792497
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We have a couple of Python 3.x scripts that parse C files, and since C
does not have any encoding, we need to force one ourselves, to avoid the
case when we're running the build in a non-UTF-8 locale.

https://bugzilla.gnome.org/show_bug.cgi?id=792497
</pre>
</div>
</content>
</entry>
<entry>
<title>Widget: Don’t call reset() on NULL EventController</title>
<updated>2018-01-22T19:10:58+00:00</updated>
<author>
<name>Daniel Boles</name>
<email>dboles@src.gnome.org</email>
</author>
<published>2018-01-18T00:51:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gtk+.git/commit/?id=b91fc17a1911a479e058d1df3a24486faa473290'/>
<id>b91fc17a1911a479e058d1df3a24486faa473290</id>
<content type='text'>
GtkGesture is a GtkEventController. gtk_event_controller_dispose() calls
_gtk_widget_remove_controller(). That NULLs the pointer-to-Controller in
our EventControllerData but does not delete said ECData from our GList.

Subsequently, if that same Widget gets unparent()ed, that method calls
unset_state_flags(), which leads to doing reset_controllers() if we are
insensitive. Now, unlike most most other loops over the GList of ECData,
reset_controllers() does not skip nodes whose pointer-to-Controller is
NULL. So, we call gtk_event_controller_reset(NULL) and get a CRITICAL.

This surfaced in a gtkmm program. The Gesture is destroyed before the
Widget. The Widget then gets dispose()d, which calls unparent()… boom.
I didn’t find an MCVE yet but would hope this logic is correct anyway:

The simplest fix is to make the loop in gtk_widget_reset_controllers()
skip GList nodes with a NULL Controller pointer, like most other such
loops, so we avoid passing the NULL to gtk_event_controller_reset().

In other, live cases, _gtk_widget_run_controllers() loops over the GList
and removes/frees nodes having NULL Controllers, so that should suffice.
But this clearly was not getting a chance to happen in the failing case.

https://bugzilla.gnome.org/show_bug.cgi?id=792624
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GtkGesture is a GtkEventController. gtk_event_controller_dispose() calls
_gtk_widget_remove_controller(). That NULLs the pointer-to-Controller in
our EventControllerData but does not delete said ECData from our GList.

Subsequently, if that same Widget gets unparent()ed, that method calls
unset_state_flags(), which leads to doing reset_controllers() if we are
insensitive. Now, unlike most most other loops over the GList of ECData,
reset_controllers() does not skip nodes whose pointer-to-Controller is
NULL. So, we call gtk_event_controller_reset(NULL) and get a CRITICAL.

This surfaced in a gtkmm program. The Gesture is destroyed before the
Widget. The Widget then gets dispose()d, which calls unparent()… boom.
I didn’t find an MCVE yet but would hope this logic is correct anyway:

The simplest fix is to make the loop in gtk_widget_reset_controllers()
skip GList nodes with a NULL Controller pointer, like most other such
loops, so we avoid passing the NULL to gtk_event_controller_reset().

In other, live cases, _gtk_widget_run_controllers() loops over the GList
and removes/frees nodes having NULL Controllers, so that should suffice.
But this clearly was not getting a chance to happen in the failing case.

https://bugzilla.gnome.org/show_bug.cgi?id=792624
</pre>
</div>
</content>
</entry>
</feed>
