gtk issueshttps://gitlab.gnome.org/GNOME/gtk/-/issues2024-01-29T20:40:30Zhttps://gitlab.gnome.org/GNOME/gtk/-/issues/1[Wayland] Clipboard/dnd destination may cut transfers short2024-01-29T20:40:30ZCarlos Garnacho[Wayland] Clipboard/dnd destination may cut transfers shortThe wayland selection implementation relies on GInputStream async functions to read from the source app. However the g_input_stream_read_bytes_async() callback relies on glib always reading as many bits as possible. Given these functions...The wayland selection implementation relies on GInputStream async functions to read from the source app. However the g_input_stream_read_bytes_async() callback relies on glib always reading as many bits as possible. Given these functions don't provide hard guarantees, transfers may be cut short due to the clipboard/dnd dest app thinking it reached the end of transferred data.
It seems safer to rely on the 0-len read that'll happen after the transfer is finished.Carlos GarnachoCarlos Garnachohttps://gitlab.gnome.org/GNOME/gtk/-/issues/7Text rendering: Support subpixel glyph placement2024-01-29T20:40:31ZNikolaus WaxweilerText rendering: Support subpixel glyph placementGtk 3.x or Cairo so far renders glyphs for a certain size once and reuses the bitmaps for every other instance of the same size. This makes inter-glyph spacing slightly irregular.
Supporting subpixel-placement requires keeping several c...Gtk 3.x or Cairo so far renders glyphs for a certain size once and reuses the bitmaps for every other instance of the same size. This makes inter-glyph spacing slightly irregular.
Supporting subpixel-placement requires keeping several copies of a glyph bitmap in memory, unless you rerender everything on the fly. Qt4/5 support it, Chrome (or at least the Electron framework used by Atom) supports it.
http://www.antigrain.com/research/font_rasterization/index.html shows an example, scroll down to the first "A quick brown fox jumps over..." image.https://gitlab.gnome.org/GNOME/gtk/-/issues/12GtkTreeView calculates height-for-width only once, not per row2024-01-29T20:40:31ZTomas HnykGtkTreeView calculates height-for-width only once, not per rowThis is still an issue, the old report on gnome bugzilla is here: https://bugzilla.gnome.org/show_bug.cgi?id=653108#c10
See screenshot of the issue:
![Screenshot_from_2018-02-10_13-58-05](/uploads/e84c2136fd11a4d4a35f95289fff8c12/Screen...This is still an issue, the old report on gnome bugzilla is here: https://bugzilla.gnome.org/show_bug.cgi?id=653108#c10
See screenshot of the issue:
![Screenshot_from_2018-02-10_13-58-05](/uploads/e84c2136fd11a4d4a35f95289fff8c12/Screenshot_from_2018-02-10_13-58-05.png)https://gitlab.gnome.org/GNOME/gtk/-/issues/21Migrating 3to4 doc: mention gtk_button_set_image()2024-01-16T09:51:01ZGabor KarsayMigrating 3to4 doc: mention gtk_button_set_image()In commit be2f19663bf9c1ead35fa69aee0292842ceada97 `gtk_button_set_image()` and related functions were removed without prior deprecation, please mention this in migrating docs: https://gitlab.gnome.org/GNOME/gtk/blob/master/docs/referenc...In commit be2f19663bf9c1ead35fa69aee0292842ceada97 `gtk_button_set_image()` and related functions were removed without prior deprecation, please mention this in migrating docs: https://gitlab.gnome.org/GNOME/gtk/blob/master/docs/reference/gtk/migrating-3to4.xmlhttps://gitlab.gnome.org/GNOME/gtk/-/issues/22leak with modern CSS themes2024-01-16T09:51:01ZLuca Bacciluca.bacci@outlook.comleak with modern CSS themesHello,
When shipping a Gtk3 application to customers running Windows, they reported random crashes appearing after only some minute of usage. My application is bundled with modern themes (Vimix, Adapta, Arc) and by default doesn't rely o...Hello,
When shipping a Gtk3 application to customers running Windows, they reported random crashes appearing after only some minute of usage. My application is bundled with modern themes (Vimix, Adapta, Arc) and by default doesn't rely on Adwaita built in theme.
The fact is, using any of the modern themes causes a severe leak of GDI objects and in a couple of minutes the limit of 10000 GDI objects is reached, leading to a segfault.
If instead I use Adwaita everything is fine (300 - 400 GDI objects). I don't know if the problem is limited to Windows, though. I don't know if the problem resides in the CSS machinery of Gtk or rather in cairohttps://gitlab.gnome.org/GNOME/gtk/-/issues/26gtk+-3.22.27 misses gtkfontchooserwidgetprivate.h2024-01-16T09:51:01ZTom Schoonjansgtk+-3.22.27 misses gtkfontchooserwidgetprivate.hHi,
Last nights release appears to be missing the file `gtk/gtkfontchooserwidgetprivate.h`, and results in compilation errors like:
````
gtkfontchooserdialog.c:29:10: fatal error: 'gtkfontchooserwidgetprivate.h' file not found
#include...Hi,
Last nights release appears to be missing the file `gtk/gtkfontchooserwidgetprivate.h`, and results in compilation errors like:
````
gtkfontchooserdialog.c:29:10: fatal error: 'gtkfontchooserwidgetprivate.h' file not found
#include "gtkfontchooserwidgetprivate.h"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [libgtk_3_la-gtkfontchooserdialog.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
gtkfontchooserwidget.c:27:10: fatal error: 'gtkfontchooserwidgetprivate.h' file not found
#include "gtkfontchooserwidgetprivate.h"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
````https://gitlab.gnome.org/GNOME/gtk/-/issues/27Bad annotation in gtk_tree_view_is_blank_at_pos2024-01-16T09:51:01ZGniourfBad annotation in gtk_tree_view_is_blank_at_posIn `gtk_tree_view_is_blank_at_pos()` the annotation `(allow-none)` is wrong for the `column` field, and the method `Gtk.TreeView.is_blank_at_pos` yields crashes from e.g., Python.
`gtk_tree_view_is_blank_at_pos()` calls `gtk_tree_view_g...In `gtk_tree_view_is_blank_at_pos()` the annotation `(allow-none)` is wrong for the `column` field, and the method `Gtk.TreeView.is_blank_at_pos` yields crashes from e.g., Python.
`gtk_tree_view_is_blank_at_pos()` calls `gtk_tree_view_get_path_at_pos()` which has correct annotations, so I copied the annotations from there. This should be fixed in all branches (but at least 3.22 and master). Here's the diff:
```
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index 28165420fd..758e3e2168 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -14123,10 +14123,14 @@ gtk_tree_view_get_visible_range (GtkTreeView *tree_view,
* @tree_view: A #GtkTreeView
* @x: The x position to be identified (relative to bin_window)
* @y: The y position to be identified (relative to bin_window)
- * @path: (out) (allow-none): A pointer to a #GtkTreePath pointer to be filled in, or %NULL
- * @column: (out) (allow-none): A pointer to a #GtkTreeViewColumn pointer to be filled in, or %NULL
- * @cell_x: (out) (allow-none): A pointer where the X coordinate relative to the cell can be placed, or %NULL
- * @cell_y: (out) (allow-none): A pointer where the Y coordinate relative to the cell can be placed, or %NULL
+ * @path: (out) (optional) (nullable): A pointer to a #GtkTreePath pointer to
+ * be filled in, or %NULL
+ * @column: (out) (transfer none) (optional) (nullable): A pointer to a
+ * #GtkTreeViewColumn pointer to be filled in, or %NULL
+ * @cell_x: (out) (optional): A pointer where the X coordinate relative to the
+ * cell can be placed, or %NULL
+ * @cell_y: (out) (optional): A pointer where the Y coordinate relative to the
+ * cell can be placed, or %NULL
*
* Determine whether the point (@x, @y) in @tree_view is blank, that is no
* cell content nor an expander arrow is drawn at the location. If so, the
```https://gitlab.gnome.org/GNOME/gtk/-/issues/28Adwaita: Selection mode styling flickers2024-01-16T09:51:01ZJakub SteinerAdwaita: Selection mode styling flickersWhen selecting an unchecked item inselection mode, the checkbox disappears. semes like the -active-selectionmode asst isn't used correctly, while -checked-active-selectionmode is fine.When selecting an unchecked item inselection mode, the checkbox disappears. semes like the -active-selectionmode asst isn't used correctly, while -checked-active-selectionmode is fine.Jakub SteinerJakub Steinerhttps://gitlab.gnome.org/GNOME/gtk/-/issues/3592cannot build Gtk 3.24.23 targeting 10.112022-01-04T12:33:36ZRené de Hessellecannot build Gtk 3.24.23 targeting 10.11With commit gtk-osx@ba5af596153d1dc237d225a26c358879a099800b, Gtk+-3.0 has been updated to 3.24.23 to fix an issue when building on Big Sur. Have you tried building it against 10.11? I haven't been able to build any Gtk+-3.0 release abov...With commit gtk-osx@ba5af596153d1dc237d225a26c358879a099800b, Gtk+-3.0 has been updated to 3.24.23 to fix an issue when building on Big Sur. Have you tried building it against 10.11? I haven't been able to build any Gtk+-3.0 release above 3.24.20 when targeting 10.11.
<details>
<summary>errors messages building Gtk 3.24.23 against 10.11</summary>
<code>
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkdevicemanager-core-quartz.c:254:25: error: use of undeclared identifier 'NSEventTypeTabletProximity'; did you mean 'kCGEventTabletProximity'?
if ([nsevent type] != GDK_QUARTZ_EVENT_TABLET_PROXIMITY &&
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kCGEventTabletProximity
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkinternal-quartz.h:79:43: note: expanded from macro 'GDK_QUARTZ_EVENT_TABLET_PROXIMITY'
#define GDK_QUARTZ_EVENT_TABLET_PROXIMITY NSEventTypeTabletProximity
^
/opt/sdks/MacOSX10.11.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGEventTypes.h:122:3: note: 'kCGEventTabletProximity' declared here
kCGEventTabletProximity = NX_TABLETPROXIMITY,
^
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkdevicemanager-core-quartz.c:255:28: error: use of undeclared identifier 'NSEventSubtypeTabletProximity'; did you mean 'kCGEventMouseSubtypeTabletProximity'?
[nsevent subtype] != GDK_QUARTZ_EVENT_SUBTYPE_TABLET_PROXIMITY)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kCGEventMouseSubtypeTabletProximity
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkinternal-quartz.h:80:51: note: expanded from macro 'GDK_QUARTZ_EVENT_SUBTYPE_TABLET_PROXIMITY'
#define GDK_QUARTZ_EVENT_SUBTYPE_TABLET_PROXIMITY NSEventSubtypeTabletProximity
^
/opt/sdks/MacOSX10.11.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGEventTypes.h:384:3: note: 'kCGEventMouseSubtypeTabletProximity' declared here
kCGEventMouseSubtypeTabletProximity = 2
^
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkdevicemanager-core-quartz.c:352:25: error: use of undeclared identifier 'NSEventTypeTabletProximity'; did you mean 'kCGEventTabletProximity'?
if ([nsevent type] == GDK_QUARTZ_EVENT_TABLET_PROXIMITY ||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kCGEventTabletProximity
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkinternal-quartz.h:79:43: note: expanded from macro 'GDK_QUARTZ_EVENT_TABLET_PROXIMITY'
#define GDK_QUARTZ_EVENT_TABLET_PROXIMITY NSEventTypeTabletProximity
^
/opt/sdks/MacOSX10.11.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGEventTypes.h:122:3: note: 'kCGEventTabletProximity' declared here
kCGEventTabletProximity = NX_TABLETPROXIMITY,
^
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkdevicemanager-core-quartz.c:353:28: error: use of undeclared identifier 'NSEventSubtypeTabletProximity'; did you mean 'kCGEventMouseSubtypeTabletProximity'?
[nsevent subtype] == GDK_QUARTZ_EVENT_SUBTYPE_TABLET_PROXIMITY ||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kCGEventMouseSubtypeTabletProximity
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkinternal-quartz.h:80:51: note: expanded from macro 'GDK_QUARTZ_EVENT_SUBTYPE_TABLET_PROXIMITY'
#define GDK_QUARTZ_EVENT_SUBTYPE_TABLET_PROXIMITY NSEventSubtypeTabletProximity
^
/opt/sdks/MacOSX10.11.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGEventTypes.h:384:3: note: 'kCGEventMouseSubtypeTabletProximity' declared here
kCGEventMouseSubtypeTabletProximity = 2
^
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkdevicemanager-core-quartz.c:354:28: error: use of undeclared identifier 'NSEventSubtypeTabletPoint'; did you mean 'kCGEventMouseSubtypeTabletPoint'?
[nsevent subtype] == GDK_QUARTZ_EVENT_SUBTYPE_TABLET_POINT)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kCGEventMouseSubtypeTabletPoint
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkinternal-quartz.h:81:47: note: expanded from macro 'GDK_QUARTZ_EVENT_SUBTYPE_TABLET_POINT'
#define GDK_QUARTZ_EVENT_SUBTYPE_TABLET_POINT NSEventSubtypeTabletPoint
^
/opt/sdks/MacOSX10.11.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGEventTypes.h:383:3: note: 'kCGEventMouseSubtypeTabletPoint' declared here
kCGEventMouseSubtypeTabletPoint = 1,
^
5 errors generated.
make[4]: *** [Makefile:723: gdkdevicemanager-core-quartz.lo] Fehler 1
make[4]: *** Es wird auf noch nicht beendete Prozesse gewartet....
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkevents-quartz.c:1052:71: warning: 'gdk_display_get_device_manager' is deprecated: Use 'gdk_display_get_default_seat' instead [-Wdeprecated-declarations]
event_device = _gdk_quartz_device_manager_core_device_for_ns_event (gdk_display_get_device_manager (_gdk_display),
^
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/gdkdisplay.h:170:1: note: 'gdk_display_get_device_manager' has been explicitly marked deprecated here
GDK_DEPRECATED_IN_3_20_FOR(gdk_display_get_default_seat)
^
../../gdk/gdkversionmacros.h:399:47: note: expanded from macro 'GDK_DEPRECATED_IN_3_20_FOR'
# define GDK_DEPRECATED_IN_3_20_FOR(f) GDK_DEPRECATED_FOR(f)
^
../../gdk/gdkversionmacros.h:49:31: note: expanded from macro 'GDK_DEPRECATED_FOR'
#define GDK_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _GDK_EXTERN
^
/Users/Shared/work/0.46/include/glib-2.0/glib/gmacros.h:952:44: note: expanded from macro 'G_DEPRECATED_FOR'
#define G_DEPRECATED_FOR(f) __attribute__((__deprecated__("Use '" #f "' instead")))
^
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkevents-quartz.c:1055:28: error: use of undeclared identifier 'NSEventSubtypeTabletPoint'; did you mean 'kCGEventMouseSubtypeTabletPoint'?
if ([nsevent subtype] == GDK_QUARTZ_EVENT_SUBTYPE_TABLET_POINT)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kCGEventMouseSubtypeTabletPoint
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkinternal-quartz.h:81:47: note: expanded from macro 'GDK_QUARTZ_EVENT_SUBTYPE_TABLET_POINT'
#define GDK_QUARTZ_EVENT_SUBTYPE_TABLET_POINT NSEventSubtypeTabletPoint
^
/opt/sdks/MacOSX10.11.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGEventTypes.h:383:3: note: 'kCGEventMouseSubtypeTabletPoint' declared here
kCGEventMouseSubtypeTabletPoint = 1,
^
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkevents-quartz.c:1095:71: warning: 'gdk_display_get_device_manager' is deprecated: Use 'gdk_display_get_default_seat' instead [-Wdeprecated-declarations]
event_device = _gdk_quartz_device_manager_core_device_for_ns_event (gdk_display_get_device_manager (_gdk_display),
^
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/gdkdisplay.h:170:1: note: 'gdk_display_get_device_manager' has been explicitly marked deprecated here
GDK_DEPRECATED_IN_3_20_FOR(gdk_display_get_default_seat)
^
../../gdk/gdkversionmacros.h:399:47: note: expanded from macro 'GDK_DEPRECATED_IN_3_20_FOR'
# define GDK_DEPRECATED_IN_3_20_FOR(f) GDK_DEPRECATED_FOR(f)
^
../../gdk/gdkversionmacros.h:49:31: note: expanded from macro 'GDK_DEPRECATED_FOR'
#define GDK_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _GDK_EXTERN
^
/Users/Shared/work/0.46/include/glib-2.0/glib/gmacros.h:952:44: note: expanded from macro 'G_DEPRECATED_FOR'
#define G_DEPRECATED_FOR(f) __attribute__((__deprecated__("Use '" #f "' instead")))
^
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkevents-quartz.c:1098:28: error: use of undeclared identifier 'NSEventSubtypeTabletPoint'; did you mean 'kCGEventMouseSubtypeTabletPoint'?
if ([nsevent subtype] == GDK_QUARTZ_EVENT_SUBTYPE_TABLET_POINT)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kCGEventMouseSubtypeTabletPoint
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkinternal-quartz.h:81:47: note: expanded from macro 'GDK_QUARTZ_EVENT_SUBTYPE_TABLET_POINT'
#define GDK_QUARTZ_EVENT_SUBTYPE_TABLET_POINT NSEventSubtypeTabletPoint
^
/opt/sdks/MacOSX10.11.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGEventTypes.h:383:3: note: 'kCGEventMouseSubtypeTabletPoint' declared here
kCGEventMouseSubtypeTabletPoint = 1,
^
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkevents-quartz.c:1515:21: error: use of undeclared identifier 'NSEventTypeTabletProximity'; did you mean 'kEventTabletProximity'?
if (event_type == GDK_QUARTZ_EVENT_TABLET_PROXIMITY)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kEventTabletProximity
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkinternal-quartz.h:79:43: note: expanded from macro 'GDK_QUARTZ_EVENT_TABLET_PROXIMITY'
#define GDK_QUARTZ_EVENT_TABLET_PROXIMITY NSEventTypeTabletProximity
^
/opt/sdks/MacOSX10.11.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/CarbonEvents.h:14261:3: note: 'kEventTabletProximity' declared here
kEventTabletProximity = 2
^
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/quartz/gdkevents-quartz.c:1517:64: warning: 'gdk_display_get_device_manager' is deprecated: Use 'gdk_display_get_default_seat' instead [-Wdeprecated-declarations]
_gdk_quartz_device_manager_register_device_for_ns_event (gdk_display_get_device_manager (_gdk_display),
^
/Users/Shared/work/0.46/usr/src/gtk+-3.24.23/gdk/gdkdisplay.h:170:1: note: 'gdk_display_get_device_manager' has been explicitly marked deprecated here
GDK_DEPRECATED_IN_3_20_FOR(gdk_display_get_default_seat)
^
../../gdk/gdkversionmacros.h:399:47: note: expanded from macro 'GDK_DEPRECATED_IN_3_20_FOR'
# define GDK_DEPRECATED_IN_3_20_FOR(f) GDK_DEPRECATED_FOR(f)
^
../../gdk/gdkversionmacros.h:49:31: note: expanded from macro 'GDK_DEPRECATED_FOR'
#define GDK_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _GDK_EXTERN
^
/Users/Shared/work/0.46/include/glib-2.0/glib/gmacros.h:952:44: note: expanded from macro 'G_DEPRECATED_FOR'
#define G_DEPRECATED_FOR(f) __attribute__((__deprecated__("Use '" #f "' instead")))
^
3 warnings and 3 errors generated.
make[4]: *** [Makefile:723: gdkevents-quartz.lo] Fehler 1
make[4]: Verzeichnis „/Users/Shared/work/0.46/var/build/gtk+-3.24.23/gdk/quartz“ wird verlassen
make[3]: *** [Makefile:1715: all-recursive] Fehler 1
make[3]: Verzeichnis „/Users/Shared/work/0.46/var/build/gtk+-3.24.23/gdk“ wird verlassen
make[2]: *** [Makefile:1138: all] Fehler 2
make[2]: Verzeichnis „/Users/Shared/work/0.46/var/build/gtk+-3.24.23/gdk“ wird verlassen
make[1]: *** [Makefile:750: all-recursive] Fehler 1
make[1]: Verzeichnis „/Users/Shared/work/0.46/var/build/gtk+-3.24.23“ wird verlassen
make: *** [Makefile:623: all] Fehler 2
</code>
</details>
There are no issues when targeting 10.13, so I think 3.24.20 is the end of the line when targeting 10.11. As 10.11 is running out of Gtk's 5 year support policy soon, it's probably time to raise system requirements again.https://gitlab.gnome.org/GNOME/gtk/-/issues/32dyld: lazy symbol binding failed: Symbol not found: _gdk_quartz_atom_to_paste...2024-01-16T09:51:01ZTom Schoonjansdyld: lazy symbol binding failed: Symbol not found: _gdk_quartz_atom_to_pasteboard_type_libgtk_onlyThe latest release compiles fine on macOS with quartz backend, but all apps linked against gtk will fail with a runtime linking error:
```
dyld: lazy symbol binding failed: Symbol not found: _gdk_quartz_atom_to_pasteboard_type_libgtk_on...The latest release compiles fine on macOS with quartz backend, but all apps linked against gtk will fail with a runtime linking error:
```
dyld: lazy symbol binding failed: Symbol not found: _gdk_quartz_atom_to_pasteboard_type_libgtk_only
Referenced from: /usr/local/opt/gtk+3/lib/libgtk-3.0.dylib
Expected in: flat namespace
dyld: Symbol not found: _gdk_quartz_atom_to_pasteboard_type_libgtk_only
Referenced from: /usr/local/opt/gtk+3/lib/libgtk-3.0.dylib
Expected in: flat namespace
Abort trap: 6
```https://gitlab.gnome.org/GNOME/gtk/-/issues/33tests: cloudproviders breaks GtkFileChooserDialog test2024-01-16T09:51:02ZJeremy Bichatests: cloudproviders breaks GtkFileChooserDialog testI have hesitated in enabling `libcloudproviders` integration in Debian's gtk3 package because it causes the build tests to fail. (Debian runs the build tests during the package build and failing tests fail the build unless specifically i...I have hesitated in enabling `libcloudproviders` integration in Debian's gtk3 package because it causes the build tests to fail. (Debian runs the build tests during the package build and failing tests fail the build unless specifically ignored, and we'd rather not ignore tests that used to work.)
Build log excerpts below from gtk 3.22.28 on Debian.
Failure 1
---------
```
/FinalizeObject/GtkFileChooserButton: OK
/FinalizeObject/GtkFileChooserDialog:
(/build/gtk+3.0-RNfbSU/gtk+3.0-3.22.28/debian/build/deb/testsuite/gtk/.libs/objects-finalize:18614): GLib-GObject-CRITICAL **: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
cleaning up pid 18629
FAIL
GTester: last random seed: R02S2c84dce107129cf04e0b635e41e2e250
(pid=18636)
/FinalizeObject/GtkFileChooserNative:
(/build/gtk+3.0-RNfbSU/gtk+3.0-3.22.28/debian/build/deb/testsuite/gtk/.libs/objects-finalize:18636): GLib-GObject-WARNING **: invalid uninstantiatable type '(null)' in cast to 'CloudProvidersCollector'
cleaning up pid 18651
FAIL
GTester: last random seed: R02Sd10b01bbc01b47ed600caa8115859f77
(pid=18658)
/FinalizeObject/GtkFileChooserWidget:
(/build/gtk+3.0-RNfbSU/gtk+3.0-3.22.28/debian/build/deb/testsuite/gtk/.libs/objects-finalize:18658): GLib-GObject-WARNING **: invalid uninstantiatable type '(null)' in cast to 'CloudProvidersCollector'
cleaning up pid 18673
FAIL
GTester: last random seed: R02Sc8b13d1399013906aa996ebbc6a02a6c
(pid=18680)
```
Failure 2
---------
```
/Template/GtkColorChooserDialog/Basic: OK
/Template/GtkFileChooserWidget/Basic:
** (/build/gtk+3.0-RNfbSU/gtk+3.0-3.22.28/debian/build/deb/testsuite/gtk/.libs/templates:18817): WARNING **: Error acdquiring bus for cloud provider Could not connect: No such file or directory
FAIL
GTester: last random seed: R02S9a27f386ea4be780dd67e9cb2bceb81a
(pid=18839)
/Template/GtkFileChooserDialog/Basic:
** (/build/gtk+3.0-RNfbSU/gtk+3.0-3.22.28/debian/build/deb/testsuite/gtk/.libs/templates:18839): WARNING **: Error acdquiring bus for cloud provider Could not connect: No such file or directory
FAIL
GTester: last random seed: R02S1d1878b47767b0044da47fc4c257c4de
(pid=18859)
/Template/GtkFileChooserButton/Basic:
** (/build/gtk+3.0-RNfbSU/gtk+3.0-3.22.28/debian/build/deb/testsuite/gtk/.libs/templates:18859): WARNING **: Error acdquiring bus for cloud provider Could not connect: No such file or directory
FAIL
GTester: last random seed: R02S428d6644e55536e02edabaf46073d8c8
(pid=18877)
```
Comments
---------
I mentioned this issue to @smcv on IRC who replied:
> looks like that test blindly assumes a working D-Bus session bus, which buildds don't (and won't) have.
>
> We can kludge around that in d/rules with dbus-run-session(1), but the real answer is for unit tests to not access the "real" session bus, ever - if they do, they risk trampling on a developer's real desktop session.
>
> Answers for upstream include wrapping tests in dbus-run-session (like dbus-python does), or starting a session bus by hand (like GTestDBus, , or like flatpak's tests).
>
> (tbh I wouldn't be very surprised if you found that a test for "cloud provider backends" assumes, not just a session bus, but also a session bus with services already present on it)
CC'ing @csorianoCarlos SorianoCarlos Sorianohttps://gitlab.gnome.org/GNOME/gtk/-/issues/41Use tabular figures by default in Adwaita for all UI elements2024-01-16T09:51:02ZNikolaus WaxweilerUse tabular figures by default in Adwaita for all UI elementsThe new Cantarell defaults to proportional figures for text use. This will cause numbers to jump when changing and not line up with figures above and below.
To solve this, enable the "tnum" OpenType feature by default for all UI element...The new Cantarell defaults to proportional figures for text use. This will cause numbers to jump when changing and not line up with figures above and below.
To solve this, enable the "tnum" OpenType feature by default for all UI elements, maybe even the lining figures "lnum" feature. This will work with all (non-broken) fonts that use non-lining, non-tabular numbers by default.
This should be solved before 3.28 is released with the new Cantarell.https://gitlab.gnome.org/GNOME/gtk/-/issues/44G_TYPE_IS_BOXED failing with GdkColor2020-06-03T21:43:46ZVictor Aurélio SantosG_TYPE_IS_BOXED failing with GdkColorSomehow G_TYPE_IS_BOXED is failing with `GdkColor`
I see on terminal:
```
GLib-GObject-CRITICAL **: g_param_spec_boxed: assertion 'G_TYPE_IS_BOXED (boxed_type)' failed
```
The function who call `g_param_spec_boxed` is [`gtk_text_tag_clas...Somehow G_TYPE_IS_BOXED is failing with `GdkColor`
I see on terminal:
```
GLib-GObject-CRITICAL **: g_param_spec_boxed: assertion 'G_TYPE_IS_BOXED (boxed_type)' failed
```
The function who call `g_param_spec_boxed` is [`gtk_text_tag_class_init`](https://gitlab.gnome.org/GNOME/gtk/blob/3.22.28/gtk/gtktexttag.c#L227) that is why i'm reporting here.
This is the backtrace:
```
#0 0x00007ffff556fdc0 in g_log () at /usr/lib/libglib-2.0.so.0
#1 0x00007ffff5dbd571 in g_param_spec_boxed () at /usr/lib/libgobject-2.0.so.0
#2 0x00007ffff77bac0c in gtk_text_tag_class_init (klass=<optimized out>)
at gtktexttag.c:227
#3 0x00007ffff77bac0c in gtk_text_tag_class_intern_init (klass=<optimized out>) at gtktexttag.c:189
#4 0x00007ffff5dcf64a in g_type_class_ref () at /usr/lib/libgobject-2.0.so.0
#5 0x00007ffff5db482e in g_object_new_valist ()
at /usr/lib/libgobject-2.0.so.0
#6 0x00007ffff5db49fa in g_object_new () at /usr/lib/libgobject-2.0.so.0
#7 0x00007ffff77bd570 in gtk_text_tag_new (name=<optimized out>)
at gtktexttag.c:909
#8 0x00007ffff779d505 in gtk_text_buffer_create_tag (buffer=0x5555557e2920, tag_name=0x0, first_property_name=0x5555555925b4 "weight") at gtktextbuffer.c:2507
#9 0x00005555555730c1 in math_equation_constructed (object=0x5555557e2920)
at math-equation.c:1645
#10 0x00007ffff5db28e8 in () at /usr/lib/libgobject-2.0.so.0
#11 0x00007ffff5db3f6d in g_object_new_with_properties ()
at /usr/lib/libgobject-2.0.so.0
#12 0x00007ffff5db4a22 in g_object_new () at /usr/lib/libgobject-2.0.so.0
#13 0x000055555556e5a5 in math_equation_new () at math-equation.c:112
#14 0x000055555556670b in main (argc=1, argv=0x7fffffffdf98) at mate-calc.c:214
```
The code which reproduces the error can be found [here](https://github.com/mate-desktop/mate-calc)https://gitlab.gnome.org/GNOME/gtk/-/issues/49GtkGLArea on Freebsd causes rest of UI to blacken out2020-06-03T21:43:46ZGhost UserGtkGLArea on Freebsd causes rest of UI to blacken outOn running gtk3-demo on FreeBSD, AMD 64 causes the user interface to blacken out. On moving the mouse over widgets, the widget will be rendered. The GLArea is rendered without issue.On running gtk3-demo on FreeBSD, AMD 64 causes the user interface to blacken out. On moving the mouse over widgets, the widget will be rendered. The GLArea is rendered without issue.https://gitlab.gnome.org/GNOME/gtk/-/issues/61Segfault in gdk_window_has_impl2022-08-24T02:38:11ZmatclabSegfault in gdk_window_has_implTrying least gnucash 2.7.5 on arch linux 4.15.5, I get the following stack trace when trying to edit the account of one transaction :
gtk3 has version 3.22.28-1
```
Message: Process 4469 (gnucash) of user 1000 dumped core.
...Trying least gnucash 2.7.5 on arch linux 4.15.5, I get the following stack trace when trying to edit the account of one transaction :
gtk3 has version 3.22.28-1
```
Message: Process 4469 (gnucash) of user 1000 dumped core.
Stack trace of thread 4469:
#0 0x00007f0b7cfd7d42 gdk_window_has_impl (libgdk-3.so.0)
#1 0x00007f0b7d01020f gdk_x11_window_get_xid (libgdk-3.so.0)
#2 0x00007f0b4c839a73 gtk_im_context_xim_filter_keypress (im-xim.so)
#3 0x00007f0b7fa6b6e4 gtk_im_multicontext_filter_keypress (libgtk-3.so.0)
#4 0x00007f0b7d4b287e gnucash_sheet_key_press_event (libgncmod-register-gnome.so)
#5 0x00007f0b7fa8ce78 _gtk_marshal_BOOLEAN__BOXEDv (libgtk-3.so.0)
#6 0x00007f0b7f264db1 n/a (libgobject-2.0.so.0)
#7 0x00007f0b7f2814b4 g_signal_emit_valist (libgobject-2.0.so.0)
#8 0x00007f0b7f282240 g_signal_emit (libgobject-2.0.so.0)
#9 0x00007f0b7fbe02c5 gtk_widget_event_internal (libgtk-3.so.0)
#10 0x00007f0b7fc01ae4 gtk_window_propagate_key_event (libgtk-3.so.0)
#11 0x00007f0b7fc0572c gtk_window_key_press_event (libgtk-3.so.0)
```
Here after is the analysis of a gnucash dev:
>Interesting.
>The actual crash is at https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/gdk/gdkwindow.c#L664
Where they don’t check for a NULL window before dereferencing it.
>Looks to me like the problem is either at https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/modules/input/gtkimcontextxim.c#L656
>or the next line. One of those calls is returning NULL and the code assumes that it doesn’t.
>
>That might be because the event->window is NULL. That’s still a Gtk problem, though I’ll leave it up to the Gtk folks to figure it out. GnuCash is clean on this one.
>
>You should probably start off by filing a bug with Arch and let the Gtk packager take it up with the Gtk folks.
Hope this may be of some help to you.https://gitlab.gnome.org/GNOME/gtk/-/issues/63[ Regression 3.22.26 -> 3.22.27 ] [HIDPI] Checkboxes and radiobuttons pixmaps...2020-06-03T21:43:46ZYauhen Kirylau[ Regression 3.22.26 -> 3.22.27 ] [HIDPI] Checkboxes and radiobuttons pixmaps are not scaledSteps to reproduce:
1)
```
env GDK_SCALE=2 gtk3-widget-factory
# to see the problem better:
env GDK_SCALE=4 gtk3-widget-factory
```
2) observe checkboxes or radiobuttons
Downgrading to 3.22.26 solves the issue.
The issue is still r...Steps to reproduce:
1)
```
env GDK_SCALE=2 gtk3-widget-factory
# to see the problem better:
env GDK_SCALE=4 gtk3-widget-factory
```
2) observe checkboxes or radiobuttons
Downgrading to 3.22.26 solves the issue.
The issue is still reproducible in 3.22.28
Arch Linux.https://gitlab.gnome.org/GNOME/gtk/-/issues/64GtkGLArea drawing issues on some systems2020-06-03T21:43:46ZRene HopfGtkGLArea drawing issues on some systemsrun
> gtk3-demo --run glarea
on some systems it does not draw 3d at all, on others the background changes to black.
Not working for me on Debian Stretch.
see this issue: https://github.com/KurtJacobson/hazzy/issues/45run
> gtk3-demo --run glarea
on some systems it does not draw 3d at all, on others the background changes to black.
Not working for me on Debian Stretch.
see this issue: https://github.com/KurtJacobson/hazzy/issues/45https://gitlab.gnome.org/GNOME/gtk/-/issues/67[wayland] GDK_WINDOW_STATE_ICONIFIED is never set2020-06-03T21:43:46ZChristian Persch[wayland] GDK_WINDOW_STATE_ICONIFIED is never setWhile gdk_wayland_window_deiconify() generates a state change event that clears the ICONIFIED bit, gdk_wayland_window_iconify() does *not* generate a state change event that *set* the ICONIFIED bit. Consequently, a GtkWindow:window-stat...While gdk_wayland_window_deiconify() generates a state change event that clears the ICONIFIED bit, gdk_wayland_window_iconify() does *not* generate a state change event that *set* the ICONIFIED bit. Consequently, a GtkWindow:window-state-event handler cannot react to the window being iconified.https://gitlab.gnome.org/GNOME/gtk/-/issues/68Simple Gtk.Window test leaks on Windows 7 x642021-11-22T17:00:00ZBugzillaSimple Gtk.Window test leaks on Windows 7 x64## Submitted by lovetox
**[Link to original bug (#784710)](https://bugzilla.gnome.org/show_bug.cgi?id=784710)**
## Description
This code leaks pretty badly, i think it has to do with inheriting from Gtk.Window.
Is there something w...## Submitted by lovetox
**[Link to original bug (#784710)](https://bugzilla.gnome.org/show_bug.cgi?id=784710)**
## Description
This code leaks pretty badly, i think it has to do with inheriting from Gtk.Window.
Is there something wrong with my code? I couldnt reproduce this on Linux.
This is with GTK+ 3.22.16
PyGobject 3.24.1
Windows 7 x64
Python 3.6
```python
import sys
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gio
from gi.repository import Gtk, GLib
class App(Gtk.Application):
def __init__(self):
Gtk.Application.__init__(self,
application_id="org.gnome.example",
flags=Gio.ApplicationFlags.FLAGS_NONE)
def do_activate(self):
window = Gtk.ApplicationWindow(application=self)
grid = Gtk.Grid()
button = Gtk.Button('Start')
button.connect('clicked', self.on_button_clicked)
grid.add(button)
window.add(grid)
window.show_all()
def on_button_clicked(self, *args):
for x in range(100):
TestWin()
class TestWin(Gtk.Window):
def __init__(self):
super(Gtk.Window, self).__init__()
self.show()
GLib.timeout_add_seconds(1, self.destroy)
if __name__ == '__main__':
app = App()
app.run(sys.argv)
```https://gitlab.gnome.org/GNOME/gtk/-/issues/70GtkExpander with resize_toplevel true always grows the toplevel under wayland...2018-12-18T22:34:37ZCaolan McNamaraGtkExpander with resize_toplevel true always grows the toplevel under wayland everytime it is opened or closedUnder wayland, the attached demo (from https://www.spinics.net/lists/gtk/msg22015.html) when opened grows as expected but on closing the expander the toplevel grows further on each iteration of open/close. With GDK_BACKEND=x11 ./a.out it...Under wayland, the attached demo (from https://www.spinics.net/lists/gtk/msg22015.html) when opened grows as expected but on closing the expander the toplevel grows further on each iteration of open/close. With GDK_BACKEND=x11 ./a.out it work as expected.
[demo.c](/uploads/f309cf594972e74dc12fb5e02e9f52b0/demo.c)https://gitlab.gnome.org/GNOME/gtk/-/issues/71Functions for GtkShortcutsWindow2018-06-25T16:20:59ZFelipe Ferreira da Silvaferreiradaselva@protonmail.comFunctions for GtkShortcutsWindowCurrently, the only way to build a GtkShortcutsWindow is using a `.ui` file. It would be nice if it was possible to create and modifying GtkShortcutsWindow via C code. This includes the other types that are related with GtkShortcutsWindo...Currently, the only way to build a GtkShortcutsWindow is using a `.ui` file. It would be nice if it was possible to create and modifying GtkShortcutsWindow via C code. This includes the other types that are related with GtkShortcutsWindow: GtkShortcutsSection, GtkShortcutsGroup, GtkShortcutsShortcut.https://gitlab.gnome.org/GNOME/gtk/-/issues/3300"Error sending request" when opening file2020-10-27T11:29:24ZLaurent Bigonville"Error sending request" when opening fileWhen opening a file (file is XML containing some UTF8 character) gedit aborts when the attached trace
I'm using wayland and I have ibus installed/enabled
[trace.txt](/uploads/9cd36018079d9f392796c0bfb12d591b/trace.txt)When opening a file (file is XML containing some UTF8 character) gedit aborts when the attached trace
I'm using wayland and I have ibus installed/enabled
[trace.txt](/uploads/9cd36018079d9f392796c0bfb12d591b/trace.txt)https://gitlab.gnome.org/GNOME/gtk/-/issues/81List Box insert at position 0 erratic behavior on Drag and Drop2020-06-10T14:58:14ZAlessandro CastellaniList Box insert at position 0 erratic behavior on Drag and DropHello, everyone,
I think I found a bug in the list_box when reordering child list_box_row with drag and drop.
If I drop a child at position 0, the current list_box container doesn't visually include all the other elements.
I don't have...Hello, everyone,
I think I found a bug in the list_box when reordering child list_box_row with drag and drop.
If I drop a child at position 0, the current list_box container doesn't visually include all the other elements.
I don't have any warning or errors in the Terminal, and the inspector doesn't show any abnormality, the issue is visible only in the UI.
Example, this is my initial status:
![listbox](/uploads/49603f4c9237ba2d6b6089e2e0ca3710/listbox.png)
**Artboard** has the `list_box` container which lists 3 `list_box_row`.
With CSS, I'm adding a zebra background to every odd child.
Additionally, I'm applying a border-bottom to the last child (eg. triangle).
If I drag the **Triangle** row and drop it at position 0, on top of the **Rectangle** row, this is the result
![list-box-reordered](/uploads/aedecf9c443285be78c3ce7431e91b8e/list-box-reordered.png)
As you can see, the **Triangle** kept the border-bottom like it was the last child, while the zebra coloring starts after ignoring the first row, like it wasn't in the container.
Any other drag and drop action not on Position 0 works as expected.https://gitlab.gnome.org/GNOME/gtk/-/issues/82GtkTreeView row reordering broken in 3.22.28 (win32)2022-01-03T05:19:52ZGhost UserGtkTreeView row reordering broken in 3.22.28 (win32)Hi
This is the first time I submit an issue, so sorry for any style/format errors.
Since 3.22.28, reordering the rows of a GtkTreeView in Windows causes the source row to be copied, rather than moved, to the new location.
This minima...Hi
This is the first time I submit an issue, so sorry for any style/format errors.
Since 3.22.28, reordering the rows of a GtkTreeView in Windows causes the source row to be copied, rather than moved, to the new location.
This minimal code works as expected in 3.22.26, but fails in 3.22.28. If Row 1 is dragged below Row 2, the list ends up with three rows: Row 1, Row 2, Row 3.
```c
#include <gtk/gtk.h>
int
main (int argc, char **argv)
{
GtkWidget *window;
GtkWidget *view;
GtkCellRenderer *renderer;
GtkListStore *store;
GtkTreeIter iter;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
view = gtk_tree_view_new ();
renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view),
-1, "Column 1", renderer, "text", 0, NULL);
gtk_tree_view_set_reorderable (GTK_TREE_VIEW (view), TRUE);
store = gtk_list_store_new (1, G_TYPE_STRING, G_TYPE_UINT);
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter, 0, "Row 1", -1);
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter, 0, "Row 2", -1);
gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (store));
g_object_unref (store);
gtk_container_add (GTK_CONTAINER (window), view);
gtk_widget_show_all (window);
gtk_main ();
return 0;
}
```LRNLRNhttps://gitlab.gnome.org/GNOME/gtk/-/issues/83Completion popup on non-default GdkDisplay freezes GtkFileChooserDialog2018-06-11T06:23:06ZJonas ÅdahlCompletion popup on non-default GdkDisplay freezes GtkFileChooserDialogWhen opening a "Save file" built-in dialog on top of a window that is not using the default GdkDisplay, the file dialog will "freeze" when the entry completion popup tries to grab input.
Steps to reproduce (using [testfilechooser.c](/up...When opening a "Save file" built-in dialog on top of a window that is not using the default GdkDisplay, the file dialog will "freeze" when the entry completion popup tries to grab input.
Steps to reproduce (using [testfilechooser.c](/uploads/33eb77b67da8b14eee8df3bb672cf0cc/testfilechooser.c)):
1. Compile and run the above reproducer (under any backend)
2. Select some file (not directory) and wait for the completion popup
3. Put text cursor in the end of the completion entry
4. Press backspace
Result:
The console will print warnings like
```
_gtk_widget_captured_event: assertion 'WIDGET_REALIZED_FOR_EVENT (widget, event)' failed
```
and the dialog becomes unresponsive.https://gitlab.gnome.org/GNOME/gtk/-/issues/86Provide GtkEmojiChooser as public API in 3.x2020-04-25T10:07:29ZMilan CrhaProvide GtkEmojiChooser as public API in 3.xThere had been made a request to use "Insert Emoji" also in evolution:
https://bugzilla.gnome.org/show_bug.cgi?id=789267
To avoid code duplication and stay consistent, I thought I'll use the GtkEmojiChooser widget (popover), but then I ...There had been made a request to use "Insert Emoji" also in evolution:
https://bugzilla.gnome.org/show_bug.cgi?id=789267
To avoid code duplication and stay consistent, I thought I'll use the GtkEmojiChooser widget (popover), but then I realized it's a private API of gtk+, not public.
Would you mind to make it public in gtk3?https://gitlab.gnome.org/GNOME/gtk/-/issues/89using GtkSpinButton "input" signal in Python segfaults program2018-06-11T06:23:06ZReubenusing GtkSpinButton "input" signal in Python segfaults programHere is an example to demonstrate the problem:
```
#!/usr/bin/env python3
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
import re
def spin_input (spinbutton, input):
print (input, "input")
def spin_output...Here is an example to demonstrate the problem:
```
#!/usr/bin/env python3
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
import re
def spin_input (spinbutton, input):
print (input, "input")
def spin_output (spinbutton):
value = spinbutton.get_value()
print (value, "output")
spinbutton.set_text("Example " + str(value))
return True
window = Gtk.Window()
window.connect("delete-event", Gtk.main_quit)
spin = Gtk.SpinButton.new_with_range(0, 100, 1)
spin.set_numeric(False)
spin.connect ("input", spin_input)
#spin.connect ("output", spin_output)
window.add(spin)
window.show_all()
Gtk.main()
```
The original bug report is [here](https://bugzilla.gnome.org/show_bug.cgi?id=644927), and got closed (when Gtk moved to GitLab, possibly?). The output signal does work, but since the input doesn't, both are really unusable.
The old PyGtk version of spinbutton input can be found [here](https://www.mail-archive.com/pygtk@daa.com.au/msg16384.html).https://gitlab.gnome.org/GNOME/gtk/-/issues/94Under Wayland the menu of a GtkComboBox with large amount of entries with a h...2018-10-15T17:26:29ZCaolan McNamaraUnder Wayland the menu of a GtkComboBox with large amount of entries with a high index selected will not appear[sortdialog.ui](/uploads/18f3c2f3dd53cfd00ce72a8c712b0213/sortdialog.ui)
glade-previewer -f sortdialog.ui
click on the language combobox in the bottom left corner. The button depresses, but no menu appears. There are ~380 entries and en...[sortdialog.ui](/uploads/18f3c2f3dd53cfd00ce72a8c712b0213/sortdialog.ui)
glade-previewer -f sortdialog.ui
click on the language combobox in the bottom left corner. The button depresses, but no menu appears. There are ~380 entries and entry 61 is set to active.
[sortdialog-earlier-selection.ui](/uploads/3afe2ee2566a8e7c9bfb35207eb23f66/sortdialog-earlier-selection.ui)
glade-previewer -f sortdialog-earlier-selection.ui
Same dialog, but entry 31 is selected and the menu appears.
Both are fine for me with GDK_BACKEND=x11https://gitlab.gnome.org/GNOME/gtk/-/issues/101MenuButton: Inspector fails to load Properties for the :popup Menu2020-04-01T03:53:47ZDaniel BolesMenuButton: Inspector fails to load Properties for the :popup Menu* Run `testmenubutton`
* In the Inspector, go to the Properties of the 2nd `GtkMenuButton` down
* See that its `:popup` has an address, i.e. it has an attached `GtkMenu`
* Double click the `:popup` row and click Properties in the resulti...* Run `testmenubutton`
* In the Inspector, go to the Properties of the 2nd `GtkMenuButton` down
* See that its `:popup` has an address, i.e. it has an attached `GtkMenu`
* Double click the `:popup` row and click Properties in the resulting popover
I'd expect this, as usual, to drill to the Properties of the `GtkMenu` serving as the `:popup`, but it does nothing.
This hinders inspecting/debugging `MenuButton`s.
(Doing the same for a `MenuButton` using a `GtkPopover`, via `:popover`, does work OK.)https://gitlab.gnome.org/GNOME/gtk/-/issues/107Mount Operation show_processes dialog has UI design issues2022-08-24T14:10:32ZAntónio Fernandesantoniof@gnome.orgMount Operation show_processes dialog has UI design issuesWhen trying to unmount my Google Drive from a nautilus launched from (flatpak'd) Builder, I got this:
![Captura_de_ecrã_de_2018-03-18_18-03-21](/uploads/5aa1033153efa39cdfc4cfaf77f37aa7/Captura_de_ecrã_de_2018-03-18_18-03-21.png)
The o...When trying to unmount my Google Drive from a nautilus launched from (flatpak'd) Builder, I got this:
![Captura_de_ecrã_de_2018-03-18_18-03-21](/uploads/5aa1033153efa39cdfc4cfaf77f37aa7/Captura_de_ecrã_de_2018-03-18_18-03-21.png)
The original strings are:
> [ Unmount Anyway ] [ Cancel ]
>
> **Volume is busy**
>
> One or more applications are keeping the volume busy.
The overall appearance of the dialog if off. Particular issues I spot:
* Headerbar with no title.
* Cancel is on the right (not left as usual).
* Close button, unecessary for dialogs with Cancel buttons.
* List of processes is empty. (Maybe because of the flatpak sandbox?)https://gitlab.gnome.org/GNOME/gtk/-/issues/114All Wayland apps crash when focused (gtk_gesture_multi_press_end→…→ wl_proxy_...2018-03-24T19:03:35ZKai LükeAll Wayland apps crash when focused (gtk_gesture_multi_press_end→…→ wl_proxy_marshal)3.22.29 (Debian 3.22.29-1)
This happened only once in a row for all windows as soon as an input field was in focus.
Here the gedit log, but evince etc have the same trace with singal 11 (SEGV).
#0 0x00007f1e594ebe79 wl...3.22.29 (Debian 3.22.29-1)
This happened only once in a row for all windows as soon as an input field was in focus.
Here the gedit log, but evince etc have the same trace with singal 11 (SEGV).
#0 0x00007f1e594ebe79 wl_proxy_marshal (libwayland-client.so.0)
#1 0x00007f1e3d716577 released_cb (im-wayland.so)
#2 0x00007f1e5ce52fce ffi_call_unix64 (libffi.so.6)
#3 0x00007f1e5ce5293f ffi_call (libffi.so.6)
#4 0x00007f1e6116eb4d g_cclosure_marshal_generic_va (libgobject-2.0.so.0)
#5 0x00007f1e6116e1a6 _g_closure_invoke_va (libgobject-2.0.so.0)
#6 0x00007f1e611896df g_signal_emit_valist (libgobject-2.0.so.0)
#7 0x00007f1e61189e0f g_signal_emit (libgobject-2.0.so.0)
#8 0x00007f1e5f8563e6 gtk_gesture_multi_press_end (libgtk-3.so.0)
#9 0x00007f1e61170e68 g_cclosure_marshal_VOID__BOXEDv (libgobject-2.0.so.0)
#10 0x00007f1e6116e1a6 _g_closure_invoke_va (libgobject-2.0.so.0)
#11 0x00007f1e611896df g_signal_emit_valist (libgobject-2.0.so.0)
#12 0x00007f1e61189e0f g_signal_emit (libgobject-2.0.so.0)
#13 0x00007f1e5f85364e _gtk_gesture_set_recognized (libgtk-3.so.0)
#14 0x00007f1e5f854c3b gtk_gesture_handle_event (libgtk-3.so.0)
#15 0x00007f1e5f85794e gtk_gesture_single_handle_event (libgtk-3.so.0)
#16 0x00007f1e5f824ba1 gtk_event_controller_handle_event (libgtk-3.so.0)
#17 0x00007f1e5f9e89cb _gtk_widget_run_controllers (libgtk-3.so.0)
#18 0x00007f1e5f9ecf07 _gtk_widget_captured_event (libgtk-3.so.0)
#19 0x00007f1e5f89cf3b propagate_event_down (libgtk-3.so.0)
#20 0x00007f1e5f89eeb7 _gtk_propagate_captured_event (libgtk-3.so.0)
#21 0x00007f1e5f3a8c55 _gdk_event_emit (libgdk-3.so.0)
#22 0x00007f1e5f405912 gdk_event_source_dispatch (libgdk-3.so.0)
#23 0x00007f1e5dc90287 g_main_dispatch (libglib-2.0.so.0)
#24 0x00007f1e5dc904c0 g_main_context_iterate (libglib-2.0.so.0)
#25 0x00007f1e5dc9054c g_main_context_iteration (libglib-2.0.so.0)
#26 0x00007f1e61454cbd g_application_run (libgio-2.0.so.0)
#27 0x000055817d2b4d7a main (gedit)
#28 0x00007f1e60ba7a87 __libc_start_main (libc.so.6)
#29 0x000055817d2b4e4a _start (gedit)
gdb [bt](/uploads/bba338d45bbdac9b472edb7262a2b271/bt)
gdb [bt_full](/uploads/e8408281901585a1314a3da56e9c797d/bt_full)https://gitlab.gnome.org/GNOME/gtk/-/issues/115Segmentation fault in `wl_proxy_marshal()`2018-03-20T15:07:39ZPaul MenzelSegmentation fault in `wl_proxy_marshal()`Maybe related to [`Failed to set CRTC mode 1920x1080: Invalid argument`](https://gitlab.gnome.org/GNOME/gnome-shell/issues/133) all windows are closed after some seconds.
Here is the backtrace, and please find the full backtrace attache...Maybe related to [`Failed to set CRTC mode 1920x1080: Invalid argument`](https://gitlab.gnome.org/GNOME/gnome-shell/issues/133) all windows are closed after some seconds.
Here is the backtrace, and please find the full backtrace attached.
```
#0 0x00007f6427542e79 in (proxy=0x0, opcode=opcode@entry=1) at ../src/wayland-client.c:692
#1 0x00007f6419f97c1b in gtk_text_input_enable (show_input_panel=<optimized out>, serial=<optimized out>, gtk_text_input=<optimized out>) at ../../../../../modules/input/gtk-text-input-client-protocol.h:513
#2 0x00007f6419f97c1b in enable_text_input (context=context@entry=0x5557ee90d5c0 [GtkIMContextWayland], toggle_panel=toggle_panel@entry=1) at ../../../../../modules/input/imwayland.c:384
#3 0x00007f6419f98577 in released_cb (gesture=<optimized out>, n_press=1, x=865, y=462, context=0x5557ee90d5c0 [GtkIMContextWayland]) at ../../../../../modules/input/imwayland.c:432
#4 0x00007f6425656fce in ffi_call_unix64 () at ../src/x86/unix64.S:76
#5 0x00007f642565693f in ffi_call (cif=cif@entry=0x7fff97749630, fn=fn@entry=0x7f6419f984e0 <released_cb>, rvalue=<optimized out>, avalue=avalue@entry=0x7fff97749500) at ../src/x86/ffi64.c:525
#6 0x00007f642b0a1b4d in g_cclosure_marshal_generic_va (closure=0x5557ee917510, return_value=0x0, instance=<optimized out>, args_list=<optimized out>, marshal_data=<optimized out>, n_params=3, param_types=0x5557ee433b80) at ../../../../gobject/gclosure.c:1604
#7 0x00007f642b0a11a6 in _g_closure_invoke_va (closure=0x5557ee917510, return_value=0x0, instance=0x5557ee922450, args=0x7fff977498d0, n_params=3, param_types=0x5557ee433b80) at ../../../../gobject/gclosure.c:867
#8 0x00007f642b0bc6df in g_signal_emit_valist (instance=0x5557ee922450, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fff977498d0) at ../../../../gobject/gsignal.c:3300
#9 0x00007f642b0bce0f in g_signal_emit (instance=instance@entry=0x5557ee922450, signal_id=<optimized out>, detail=detail@entry=0) at ../../../../gobject/gsignal.c:3447
#10 0x00007f642c1e83e6 in gtk_gesture_multi_press_end (gesture=0x5557ee922450 [GtkGestureMultiPress], sequence=<optimized out>) at ../../../../gtk/gtkgesturemultipress.c:283
#11 0x00007f642b0a3e68 in g_cclosure_marshal_VOID__BOXEDv (closure=0x5557ee25be50, return_value=<optimized out>, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x5557ee25bec0) at ../../../../gobject/gmarshal.c:1950
#12 0x00007f642b0a11a6 in _g_closure_invoke_va (closure=0x5557ee25be50, return_value=0x0, instance=0x5557ee922450, args=0x7fff97749c70, n_params=1, param_types=0x5557ee25bec0) at ../../../../gobject/gclosure.c:867
#13 0x00007f642b0bc6df in g_signal_emit_valist (instance=0x5557ee922450, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fff97749c70) at ../../../../gobject/gsignal.c:3300
#14 0x00007f642b0bce0f in g_signal_emit (instance=instance@entry=0x5557ee922450, signal_id=<optimized out>, detail=detail@entry=0) at ../../../../gobject/gsignal.c:3447
#15 0x00007f642c1e564e in _gtk_gesture_set_recognized (sequence=0x0, recognized=0, gesture=0x5557ee922450 [GtkGestureMultiPress]) at ../../../../gtk/gtkgesture.c:345
#16 0x00007f642c1e564e in _gtk_gesture_check_recognized (gesture=gesture@entry=0x5557ee922450 [GtkGestureMultiPress], sequence=sequence@entry=0x0) at ../../../../gtk/gtkgesture.c:386
#17 0x00007f642c1e6c3b in gtk_gesture_handle_event (controller=0x5557ee922450 [GtkGestureMultiPress], event=0x7f641c014d40) at ../../../../gtk/gtkgesture.c:777
#18 0x00007f642c1e994e in gtk_gesture_single_handle_event (controller=0x5557ee922450 [GtkGestureMultiPress], event=0x7f641c014d40) at ../../../../gtk/gtkgesturesingle.c:222
#19 0x00007f642c1b6ba1 in gtk_event_controller_handle_event (controller=0x5557ee922450 [GtkGestureMultiPress], event=event@entry=0x7f641c014d40) at ../../../../gtk/gtkeventcontroller.c:230
#20 0x00007f642c37a9cb in _gtk_widget_run_controllers (widget=widget@entry=0x5557ee921460 [TerminalScreen], event=event@entry=0x7f641c014d40, phase=phase@entry=GTK_PHASE_CAPTURE) at ../../../../gtk/gtkwidget.c:7373
#21 0x00007f642c37ef07 in _gtk_widget_captured_event (widget=widget@entry=0x5557ee921460 [TerminalScreen], event=event@entry=0x7f641c014d40) at ../../../../gtk/gtkwidget.c:7427
#22 0x00007f642c22ef3b in propagate_event_down (topmost=0x5557ee9b9c80, event=0x7f641c014d40, widget=0x5557ee921460 [TerminalScreen]) at ../../../../gtk/gtkmain.c:2646
#23 0x00007f642c22ef3b in propagate_event (widget=widget@entry=0x5557ee921460 [TerminalScreen], event=event@entry=0x7f641c014d40, captured=captured@entry=1, topmost=topmost@entry=0x0) at ../../../../gtk/gtkmain.c:2694
#24 0x00007f642c230eb7 in _gtk_propagate_captured_event (topmost=0x0, event=0x7f641c014d40, widget=0x5557ee921460 [TerminalScreen]) at ../../../../gtk/gtkmain.c:2737
#25 0x00007f642c230eb7 in gtk_main_do_event (event=<optimized out>) at ../../../../gtk/gtkmain.c:1914
#26 0x00007f642bd3ac55 in _gdk_event_emit (event=event@entry=0x7f641c014d40) at ../../../../gdk/gdkevents.c:73
#27 0x00007f642bd97912 in gdk_event_source_dispatch (base=base@entry=0x5557ee237800, callback=<optimized out>, data=<optimized out>) at ../../../../../gdk/wayland/gdkeventsource.c:124
#28 0x00007f642adc7287 in g_main_dispatch (context=0x5557ee22bd70) at ../../../../glib/gmain.c:3177
#29 0x00007f642adc7287 in g_main_context_dispatch (context=context@entry=0x5557ee22bd70) at ../../../../glib/gmain.c:3830
#30 0x00007f642adc74c0 in g_main_context_iterate (context=context@entry=0x5557ee22bd70, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../../glib/gmain.c:3903
#31 0x00007f642adc754c in g_main_context_iteration (context=context@entry=0x5557ee22bd70, may_block=may_block@entry=1) at ../../../../glib/gmain.c:3964
#32 0x00007f642b387cbd in g_application_run (application=0x5557ee225410 [TerminalApp], argc=<optimized out>, argv=<optimized out>) at ../../../../gio/gapplication.c:2470
#33 0x00005557ecaf72c2 in main (argc=<optimized out>, argv=<optimized out>) at server.c:183
```
[20180320_backtrace-gnome-terminal-server.txt](/uploads/fbb7c700f8156f062230f248c974160e/20180320_backtrace-gnome-terminal-server.txt)https://gitlab.gnome.org/GNOME/gtk/-/issues/118Border Image Slice incorrect in HiDPI2018-03-31T17:26:29ZDanielle Forédanielle@elementary.ioBorder Image Slice incorrect in HiDPI## Steps to reproduce
1. Display scaling factor must be >1. This doesn't seem to effect LoDPI displays
2. Use a border-image with slices such as here: https://github.com/danrabbit/border-image-slice-bug-example/blob/master/example.val...## Steps to reproduce
1. Display scaling factor must be >1. This doesn't seem to effect LoDPI displays
2. Use a border-image with slices such as here: https://github.com/danrabbit/border-image-slice-bug-example/blob/master/example.vala#L5
I've created a small example here: https://github.com/danrabbit/border-image-slice-bug-example
## Current behavior
Border images are sliced incorrectly. The slice looks to be more units than it should be. In my above example, the slice ends up being 11 units (22px) wide
## Expected outcome
According to the CSS, the slice should be 10 units (20px) wide
## Version information
3.22.28-1ubuntu3 from Ubuntu 18.04
## Additional information
These two screenshots are using the same images and CSS.
This is the correct behavior at 1x scaling:
![Screenshot_from_2018-03-21_11.15.01_2x](/uploads/a577e24e6a9742de68bf8122d8dccada/Screenshot_from_2018-03-21_11.15.01_2x.png)
This is the incorrect behavior at 2x scaling:
![Screenshot_from_2018-03-21_11.13.10_2x](/uploads/ad6c19f1a9e67e2494fe5e10c058f1b1/Screenshot_from_2018-03-21_11.13.10_2x.png)https://gitlab.gnome.org/GNOME/gtk/-/issues/119icon_info_ensure_scale_and_pixbuf might not ensure a valid pixbuf2020-01-01T23:43:33ZDaniel Sicon_info_ensure_scale_and_pixbuf might not ensure a valid pixbufThis issue has the goal to resolve [this fedora bug](https://bugzilla.redhat.com/show_bug.cgi?id=1520010#c23) (and probably [more](https://bugzilla.redhat.com/show_bug.cgi?id=1513944)) upstream.
The large-picture problem is that gnome-s...This issue has the goal to resolve [this fedora bug](https://bugzilla.redhat.com/show_bug.cgi?id=1520010#c23) (and probably [more](https://bugzilla.redhat.com/show_bug.cgi?id=1513944)) upstream.
The large-picture problem is that gnome-shell aborts if it tries to scale 1px wide thumbnails (made by GNOME thumbnailer, w*h=1x50) with certain dpi resolutions.
In my case scale became `scale = 0.47999999999999998` causing the width argument to become 0 in [this line](https://gitlab.gnome.org/GNOME/gtk/blob/master/gtk/gtkicontheme.c#L3746) which afterwards probably causes `gdk_pixbuf_scale_simple` to not create a pixbuf. This will later cause a assertion error in [this line](https://gitlab.gnome.org/GNOME/gtk/blob/master/gtk/gtkicontheme.c#L3977)
## Steps to reproduce
1. Have a screen with a certain dpi
2. Have some files that will be cause 1x50px sized thumbnails to be generated
3. Search in gnome shell for these thumbnails
You probably need to create a 1x50px image and write a little programm that tries to load that as icon.
## Current behavior
Gnome-Shell aborts
## Expected outcome
Gnome-Shell does not abort. I don't know what it should display as file icon.
## Version information
Fedora 27
➜ ~ dnf list installed | grep gtk
gtk2.i686 2.24.32-1.fc27 @updates
gtk2.x86_64 2.24.32-1.fc27 @updates
gtk3.i686 3.22.26-2.fc27 @updates
gtk3.x86_64 3.22.26-2.fc27 @updates
...
## Additional information
[GDB inspection](https://bugzilla.redhat.com/attachment.cgi?id=1409471)https://gitlab.gnome.org/GNOME/gtk/-/issues/121GtkTextView focus crash minor2018-03-24T14:46:13ZGhost UserGtkTextView focus crash minorSo, I was obviously doing this the wrong way but, the correct way is `gtk_window_set_focus` of course. But it still shouldn't crash. So here was my email to the users list about this, thanks:
I'm trying to get my application to focus ...So, I was obviously doing this the wrong way but, the correct way is `gtk_window_set_focus` of course. But it still shouldn't crash. So here was my email to the users list about this, thanks:
I'm trying to get my application to focus on a `GtkTextView, to put the keyboard focus on it. Elsewhere I did
`g_signal_emit_by_name(G_OBJECT(thetextview), "focus-in-event", apointer);`
and this seemed to work fine, but now it's crashing when I call it from somewhere else, possibly because it's being called from within a signal `"key-press-event"` callback for the window.
The crash is all this
```
(lulu:3300): Gtk-CRITICAL **: _gtk_widget_captured_event: assertion 'GTK_IS_WIDGET (widget)' failed
(lulu:3300): Gtk-CRITICAL **: gtk_widget_get_realized: assertion 'GTK_IS_WIDGET (widget)' failed
(lulu:3300): Gtk-CRITICAL **: gtk_container_get_border_width: assertion 'GTK_IS_CONTAINER (container)' failed
(lulu:3300): Gtk-CRITICAL **: gtk_widget_queue_resize_no_redraw: assertion 'GTK_IS_WIDGET (widget)' failed
(lulu:3300): GLib-GObject-WARNING **: instance with invalid (NULL) class pointer
(lulu:3300): GLib-GObject-CRITICAL **: g_signal_emit_valist: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(lulu:3300): GLib-GObject-CRITICAL **: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
(lulu:3300): Gtk-CRITICAL **: gtk_widget_queue_resize: assertion 'GTK_IS_WIDGET (widget)' failed
(lulu:3300): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
==3300== Invalid read of size 8
==3300== at 0x54206D3: gtk_widget_get_request_mode (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x52B3D38: ??? (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x526EDA6: ??? (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x52B8AD1: ??? (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x54206D8: gtk_widget_get_request_mode (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x52B3D38: ??? (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x526EDA6: ??? (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x52B8AD1: ??? (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x54206D8: gtk_widget_get_request_mode (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x542081A: ??? (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x5421287: ??? (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== at 0x54206D3: gtk_widget_get_request_mode (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x52B3D38: ??? (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x526EDA6: ??? (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x52B8AD1: ??? (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x54206D8: gtk_widget_get_request_mode (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x52B3D38: ??? (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x526EDA6: ??? (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x52B8AD1: ??? (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x54206D8: gtk_widget_get_request_mode (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x542081A: ??? (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x5421287: ??? (in /usr/lib64/libgtk-3.so.0.2200.16)
==3300== by 0x542156D: gtk_widget_get_preferred_height_and_baseline_for_width (in /usr/lib64/libgtk-3.so.0.2200.16
```
And I thought it might have to do with these warnings:
```
(lulu:3300): Gtk-WARNING **: Allocating size to GtkWindow 0xc854b20 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?
```
But I looked around and I can't seem to find anything out about this.
Is there a preferred way to set keyboard focus on a particular `GtkTextView`, and is it supposed to crash if that's done from within the `key-press-event` callback on the window? In other words, why does my other `emit_signal_by_name` not crash, and what's that warning about the size stuff, is that related?https://gitlab.gnome.org/GNOME/gtk/-/issues/122narrow, tall GtkTextView trap faults2023-03-25T14:31:17ZGhost Usernarrow, tall GtkTextView trap faultsProbably to do with the size allocation warnings "Allocating size to GtkWindow without calling gtk_widget_get_preferred_size"
If you make a GtkTextView that's very tall and narrow, it causes a trap fault in X, and it's a little difficul...Probably to do with the size allocation warnings "Allocating size to GtkWindow without calling gtk_widget_get_preferred_size"
If you make a GtkTextView that's very tall and narrow, it causes a trap fault in X, and it's a little difficult to diagnose why. I think it's something like a 10 character by over 2100 line GtkTextView.
Calling this ahead of time prevents the trap fault, presumably it's something to do with the way gtk guesses at allocation sizes while tracking width and height.
gtk_widget_set_size_request((GtkWidget *)textview, width * 5, lines * 10);
Perhaps there is a preferred way to do this, pre-allocation stuff, but it's not mentioned anywhere that I saw.https://gitlab.gnome.org/GNOME/gtk/-/issues/125GtkComboBox::private::popup_window can be NULL2019-02-11T09:18:40ZMilan CrhaGtkComboBox::private::popup_window can be NULLWhen I open File->New->Contact in Evolution, it shows 4 runtime warnings:
`Gtk-CRITICAL **: gtk_widget_is_drawable: assertion 'GTK_IS_WIDGET (widget)' failed`
when I catch backtrace of the first of them, then it gets:
```
#0 0x00007f...When I open File->New->Contact in Evolution, it shows 4 runtime warnings:
`Gtk-CRITICAL **: gtk_widget_is_drawable: assertion 'GTK_IS_WIDGET (widget)' failed`
when I catch backtrace of the first of them, then it gets:
```
#0 0x00007ffff733d7e0 in g_logv (log_domain=0x7ffff6b2a5b8 "Gtk", log_level=G_LOG_LEVEL_CRITICAL, format=0x7ffff73887ea "%s: assertion '%s' failed", args=args@entry=0x7fffffffcd20) at gmessages.c:1248
#1 0x00007ffff733dbaf in g_log (log_domain=log_domain@entry=0x7ffff6b2a5b8 "Gtk", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x7ffff73887ea "%s: assertion '%s' failed") at gmessages.c:1403
#2 0x00007ffff733e0f9 in g_return_if_fail_warning (log_domain=log_domain@entry=0x7ffff6b2a5b8 "Gtk", pretty_function=pretty_function@entry=0x7ffff6bb1290 <__func__.65487> "gtk_widget_is_drawable", expression=expression@entry=0x7ffff6b2a618 "GTK_IS_WIDGET (widget)") at gmessages.c:2702
#3 0x00007ffff6ade35a in gtk_widget_is_drawable (widget=0x0) at gtkwidget.c:9173
#4 0x00007ffff68bb58a in gtk_combo_box_popdown (combo_box=combo_box@entry=0x6a60890 [GtkComboBox]) at gtkcombobox.c:2429
#5 0x00007ffff68bb889 in gtk_combo_box_unmap (widget=0x6a60890 [GtkComboBox]) at gtkcombobox.c:4138
#6 0x00007ffff5ea8976 in _g_closure_invoke_va (closure=0x65e5f0, return_value=0x0, instance=0x6a60890, args=0x7fffffffd070, n_params=0, param_types=0x0) at gclosure.c:867
#7 0x00007ffff5ec3ff4 in g_signal_emit_valist (instance=0x6a60890, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fffffffd070) at gsignal.c:3300
#8 0x00007ffff5ec466f in g_signal_emit (instance=instance@entry=0x6a60890, signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3447
#9 0x00007ffff6adb85c in gtk_widget_unmap (widget=0x6a60890 [GtkComboBox]) at gtkwidget.c:5027
#10 0x00007ffff6ae1698 in gtk_widget_unrealize (widget=0x6a60890 [GtkComboBox]) at gtkwidget.c:5515
#11 0x00007ffff6aecdbd in gtk_widget_unparent (widget=0x6a60890 [GtkComboBox]) at gtkwidget.c:4616
#12 0x00007ffff694bccc in gtk_grid_remove (container=0x68fb180 [EContactEditorDynTable], child=<optimized out>) at gtkgrid.c:511
#13 0x00007ffff5eab929 in g_cclosure_marshal_VOID__OBJECTv (closure=0x683c00, return_value=<optimized out>, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x683c30)
at gmarshal.c:2102
#14 0x00007ffff5ea8976 in _g_closure_invoke_va (closure=0x683c00, return_value=0x0, instance=0x68fb180, args=0x7fffffffd510, n_params=1, param_types=0x683c30) at gclosure.c:867
#15 0x00007ffff5ec3ff4 in g_signal_emit_valist (instance=0x68fb180, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fffffffd510) at gsignal.c:3300
#16 0x00007ffff5ec466f in g_signal_emit (instance=instance@entry=0x68fb180, signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3447
#17 0x00007ffff68c5306 in gtk_container_remove (container=0x68fb180 [EContactEditorDynTable], widget=0x6a60890 [GtkComboBox]) at gtkcontainer.c:1905
#18 0x00007ffff6ae3d74 in gtk_widget_dispose (object=0x6a60890 [GtkComboBox]) at gtkwidget.c:12068
#19 0x00007ffff5eaee5c in g_object_run_dispose (object=0x6a60890 [GtkComboBox]) at gobject.c:1100
#20 0x00007fffc257b354 in remove_empty_entries (dyntable=0x68fb180 [EContactEditorDynTable], fillup=1) at ....evolution/src/addressbook/gui/contact-editor/e-contact-editor-dyntable.c:322
#21 0x00007fffc257b866 in e_contact_editor_dyntable_set_max_entries (dyntable=0x68fb180 [EContactEditorDynTable], max=50) at ....evolution/src/addressbook/gui/contact-editor/e-contact-editor-dyntable.c:442
#22 0x00007fffc256d23f in sensitize_email (editor=0x55c6510 [EContactEditor]) at ....evolution/src/addressbook/gui/contact-editor/e-contact-editor.c:1110
#23 0x00007fffc2575b5f in sensitize_all (editor=0x55c6510 [EContactEditor]) at ....evolution/src/addressbook/gui/contact-editor/e-contact-editor.c:3843
#24 0x00007fffc257a437 in e_contact_editor_set_property (object=0x55c6510 [EContactEditor], property_id=7, value=0x7fffffffd830, pspec=0x6a2b2c0 [GParamPointer])
at ....evolution/src/addressbook/gui/contact-editor/e-contact-editor.c:5503
#25 0x00007ffff5eb069e in object_set_property (nqueue=0x7fff68db3630, value=0x7fffffffd810, pspec=0x6a2b2c0 [GParamPointer], object=0x55c6510 [EContactEditor]) at gobject.c:1439
#26 0x00007ffff5eb069e in g_object_set_valist (object=object@entry=0x55c6510 [EContactEditor], first_property_name=first_property_name@entry=0x7fffc257f391 "writable_fields", var_args=var_args@entry=0x7fffffffd8e0) at gobject.c:2300
#27 0x00007ffff5eb107c in g_object_set (_object=0x55c6510, first_property_name=0x7fffc257f391 "writable_fields") at gobject.c:2465
#28 0x00007fffc2579923 in supported_fields_cb (source_object=0x7fff5c00bd90 [EBookClient], result=0x6262520, user_data=0x55c6510) at ....evolution/src/addressbook/gui/contact-editor/e-contact-editor.c:5255
#29 0x00007ffff6165966 in g_simple_async_result_complete (simple=0x6262520 [GSimpleAsyncResult]) at gsimpleasyncresult.c:801
#30 0x00007ffff6165a09 in complete_in_idle_cb_for_thread (_data=_data@entry=0x68e0460) at gsimpleasyncresult.c:872
#31 0x00007ffff7333577 in g_idle_dispatch (source=0x7ffec4002c40, callback=0x7ffff61659f0 <complete_in_idle_cb_for_thread>, user_data=0x68e0460) at gmain.c:5486
#32 0x00007ffff7336b77 in g_main_dispatch (context=0x660fc0) at gmain.c:3142
#33 0x00007ffff7336b77 in g_main_context_dispatch (context=context@entry=0x660fc0) at gmain.c:3795
#34 0x00007ffff7336f20 in g_main_context_iterate (context=0x660fc0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3868
#35 0x00007ffff7337232 in g_main_loop_run (loop=0x543cce0) at gmain.c:4064
#36 0x00007ffff698dca5 in gtk_main () at gtkmain.c:1322
#37 0x0000000000404e0e in main (argc=1, argv=0x7fffffffdcf8) at ....evolution/src/shell/main.c:675
```
and in frame 4:
```
(gdb) f 4
#4 0x00007ffff68bb58a in gtk_combo_box_popdown (combo_box=combo_box@entry=0x6a60890 [GtkComboBox]) at gtkcombobox.c:2429
2429 if (!gtk_widget_is_drawable (priv->popup_window))
(gdb) l
2424 }
2425
2426 if (!gtk_widget_get_realized (GTK_WIDGET (combo_box)))
2427 return;
2428
2429 if (!gtk_widget_is_drawable (priv->popup_window))
2430 return;
2431
2432 if (priv->grab_pointer)
2433 gdk_seat_ungrab (gdk_device_get_seat (priv->grab_pointer));
(gdb) p *priv
$1 = {model = 0x0, area = 0x0, col_column = -1, row_column = -1, wrap_width = 0, active = -1, active_row = 0x0, tree_view = 0x0, cell_view = 0x5d2d7a0 [GtkCellView], box = 0x67e2da0 [GtkBox], button = 0x66d2d70 [GtkToggleButton],
arrow = 0x7fff6c023580 [GtkIcon], popup_widget = 0x0, popup_window = 0x0, scrolled_window = 0x0, gadget = 0x66d1210 [GtkCssCustomGadget], popup_idle_id = 0, trigger_event = 0x0, scroll_timer = 0, resize_idle_id = 0,
text_column = -1, text_renderer = 0x0, id_column = -1, popup_in_progress = 0, popup_shown = 0, add_tearoffs = 0, has_frame = 1, is_cell_renderer = 0, editing_canceled = 0, auto_scroll = 0, button_sensitivity = 0, has_entry = 0,
popup_fixed_width = 1, row_separator_func = 0x0, row_separator_data = 0x0, row_separator_destroy = 0x0, grab_pointer = 0x0, tearoff_title = 0x0}
```
Briefly looking into the code, it looks like the priv->popup_window can be NULL in case the combo box shows a GtkMenu, but I can be wrong here.
Do you think I should try some ugly magic in Evolution to avoid this state, or a one-liner either in gtk_widget_is_drawable() to remove the runtime warning or in gtk_combo_box_popdown() to change line 2429 into:
```
if (!priv->popup_window || !gtk_widget_is_drawable (priv->popup_window))
```
would be possible, please?https://gitlab.gnome.org/GNOME/gtk/-/issues/129Segfault in `wl_proxy_marshal()`2018-05-05T17:01:13ZPaul MenzelSegfault in `wl_proxy_marshal()`From a comment from https://gitlab.gnome.org/GNOME/gtk/issues/114:
> I'm afraid this im-wayland issue isn't completely fixed.
> Debian applied the 4f78abdd patch and I still loose all gtk+ apps from time to time.
> Here is another backt...From a comment from https://gitlab.gnome.org/GNOME/gtk/issues/114:
> I'm afraid this im-wayland issue isn't completely fixed.
> Debian applied the 4f78abdd patch and I still loose all gtk+ apps from time to time.
> Here is another backtrace with vte calling into im-wayland:
I believe I hit this issue too. See the backtrace below, and the full backtrace attached.
```
#0 0x00007fb067e0ae79 in [gtk-wayland-crash.txt](/uploads/68544e45cffbdc3bd925d0cb944ba306/gtk-wayland-crash.txt) (proxy=0x0, opcode=opcode@entry=2) at ../src/wayland-client.c:692
#1 0x00007fb05b07abd4 in gtk_text_input_disable (gtk_text_input=<optimized out>) at ../../../../../modules/input/gtk-text-input-client-protocol.h:526
#2 0x00007fb05b07abd4 in gtk_im_context_wayland_focus_out (context=<optimized out>) at ../../../../../modules/input/imwayland.c:540
#3 0x00007fb06d1e8346 in VteTerminalPrivate::widget_focus_out(_GdkEventFocus*) (this=0x55d1b87bc9e0, event=<optimized out>) at ../../src/vte.cc:7422
#4 0x00007fb06d1f8e7e in vte_terminal_focus_out(GtkWidget*, GdkEventFocus*) (widget=widget@entry=0x55d1b87bfd70 [TerminalScreen], event=0x55d1b99935b0) at ../../src/vtegtk.cc:235
#9 0x00007fb06b984e0f in <emit signal ??? on instance 0x55d1b87bfd70 [TerminalScreen]> (instance=instance@entry=0x55d1b87bfd70, signal_id=<optimized out>, detail=detail@entry=0) at ../../../../gobject/gsignal.c:3447
#5 0x00007fb06caf0e1b in _gtk_marshal_BOOLEAN__BOXED (closure=0x55d1b814e4a0, return_value=0x7ffeeb649a70, n_param_values=<optimized out>, param_values=0x7ffeeb649ad0, invocation_hint=<optimized out>, marshal_data=<optimized out>) at ../../../../gtk/gtkmarshalers.c:82
#6 0x00007fb06b968e81 in g_closure_invoke (closure=0x55d1b814e4a0, return_value=0x7ffeeb649a70, n_param_values=2, param_values=0x7ffeeb649ad0, invocation_hint=0x7ffeeb649a50) at ../../../../gobject/gclosure.c:804
#7 0x00007fb06b97bac8 in signal_emit_unlocked_R (node=node@entry=0x55d1b8160c00, detail=detail@entry=0, instance=instance@entry=0x55d1b87bfd70, emission_return=emission_return@entry=0x7ffeeb649bf0, instance_and_params=instance_and_params@entry=0x7ffeeb649ad0) at ../../../../gobject/gsignal.c:3673
#8 0x00007fb06b983d8f in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffeeb649ca0) at ../../../../gobject/gsignal.c:3401
#10 0x00007fb06cc38254 in gtk_widget_event_internal (widget=widget@entry=0x55d1b87bfd70 [TerminalScreen], event=event@entry=0x55d1b99935b0) at ../../../../gtk/gtkwidget.c:7740
#11 0x00007fb06cc3a2ca in gtk_widget_event (widget=widget@entry=0x55d1b87bfd70 [TerminalScreen], event=event@entry=0x55d1b99935b0) at ../../../../gtk/gtkwidget.c:7310
#12 0x00007fb06cc4af55 in gtk_widget_send_focus_change (widget=widget@entry=0x55d1b87bfd70 [TerminalScreen], event=event@entry=0x55d1b99935b0) at ../../../../gtk/gtkwidget.c:16172
#13 0x00007fb06cc4ceb0 in do_focus_change (widget=0x55d1b87bfd70 [TerminalScreen], in=0) at ../../../../gtk/gtkwindow.c:8389
#14 0x00007fb06cc5c2b3 in _gtk_window_set_has_toplevel_focus (window=0x55d1b81497d0 [TerminalWindow], has_toplevel_focus=0) at ../../../../gtk/gtkwindow.c:12150
#15 0x00007fb06cc5c4bb in gtk_window_focus_out_event (widget=widget@entry=0x55d1b81497d0 [TerminalWindow], event=<optimized out>) at ../../../../gtk/gtkwindow.c:8457
#20 0x00007fb06b984e0f in <emit signal ??? on instance 0x55d1b81497d0 [TerminalWindow]> (instance=instance@entry=0x55d1b81497d0, signal_id=<optimized out>, detail=detail@entry=0) at ../../../../gobject/gsignal.c:3447
#16 0x00007fb06caf0e1b in _gtk_marshal_BOOLEAN__BOXED (closure=0x55d1b814e4a0, return_value=0x7ffeeb649ff0, n_param_values=<optimized out>, param_values=0x7ffeeb64a050, invocation_hint=<optimized out>, marshal_data=<optimized out>) at ../../../../gtk/gtkmarshalers.c:82
#17 0x00007fb06b968f6d in g_closure_invoke (closure=0x55d1b814e4a0, return_value=0x7ffeeb649ff0, n_param_values=2, param_values=0x7ffeeb64a050, invocation_hint=0x7ffeeb649fd0) at ../../../../gobject/gclosure.c:804
#18 0x00007fb06b97bac8 in signal_emit_unlocked_R (node=node@entry=0x55d1b8160c00, detail=detail@entry=0, instance=instance@entry=0x55d1b81497d0, emission_return=emission_return@entry=0x7ffeeb64a170, instance_and_params=instance_and_params@entry=0x7ffeeb64a050) at ../../../../gobject/gsignal.c:3673
#19 0x00007fb06b983d8f in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffeeb64a220) at ../../../../gobject/gsignal.c:3401
#21 0x00007fb06cc38254 in gtk_widget_event_internal (widget=widget@entry=0x55d1b81497d0 [TerminalWindow], event=event@entry=0x55d1b9993330) at ../../../../gtk/gtkwidget.c:7740
#22 0x00007fb06cc3a2ca in gtk_widget_event (widget=widget@entry=0x55d1b81497d0 [TerminalWindow], event=event@entry=0x55d1b9993330) at ../../../../gtk/gtkwidget.c:7310
#23 0x00007fb06caefeee in gtk_main_do_event (event=<optimized out>) at ../../../../gtk/gtkmain.c:1855
#24 0x00007fb06c6029b5 in _gdk_event_emit (event=event@entry=0x55d1b9993330) at ../../../../gdk/gdkevents.c:73
#25 0x00007fb06c65d302 in gdk_event_source_dispatch (base=base@entry=0x55d1b8131280, callback=<optimized out>, data=<optimized out>) at ../../../../../gdk/wayland/gdkeventsource.c:124
#26 0x00007fb06b68f287 in g_main_dispatch (context=0x55d1b8125d70) at ../../../../glib/gmain.c:3177
#27 0x00007fb06b68f287 in g_main_context_dispatch (context=context@entry=0x55d1b8125d70) at ../../../../glib/gmain.c:3830
#28 0x00007fb06b68f4c0 in g_main_context_iterate (context=context@entry=0x55d1b8125d70, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../../glib/gmain.c:3903
#29 0x00007fb06b68f54c in g_main_context_iteration (context=context@entry=0x55d1b8125d70, may_block=may_block@entry=1) at ../../../../glib/gmain.c:3964
#30 0x00007fb06bc4fcbd in g_application_run (application=0x55d1b811f410 [TerminalApp], argc=<optimized out>, argv=<optimized out>) at ../../../../gio/gapplication.c:2470
#31 0x000055d1b7c6fdf2 in main (argc=<optimized out>, argv=<optimized out>) at server.c:183
```https://gitlab.gnome.org/GNOME/gtk/-/issues/130On KDE, long removable device label makes sidebar wider and prevents resizing2018-05-02T18:32:17ZStrangiatoOn KDE, long removable device label makes sidebar wider and prevents resizingstart KDE Plasma session
connect to your usb port a removable device labeled with a long name and mount it
open Firefox and load some webpage
press ctrl+s to open the filechooser
Now filechooser sidebar is wider because the long labe...start KDE Plasma session
connect to your usb port a removable device labeled with a long name and mount it
open Firefox and load some webpage
press ctrl+s to open the filechooser
Now filechooser sidebar is wider because the long label of your removable device
and it's impossible to resize it.
I recorded a screencast on Arch Linux running gtk3 3.22.29+4+gb485cf91b5-1 and Firefox 59.0.1.
![gtk](/uploads/c6089ba6502bd5d30d3bc64d3a7b850c/gtk.webm)https://gitlab.gnome.org/GNOME/gtk/-/issues/131Application hangs when user presses Delete after opening a GtkFileChooserNati...2019-12-07T17:57:29ZMichael CatanzaroApplication hangs when user presses Delete after opening a GtkFileChooserNative when run as a flatpak## Steps to reproduce
Flatpak applications hang when the user presses Delete to remove the suggested filename (except for the file extension) after opening a GtkFileChooserNative. For example:
1. In Epiphany, right click on any web pa...## Steps to reproduce
Flatpak applications hang when the user presses Delete to remove the suggested filename (except for the file extension) after opening a GtkFileChooserNative. For example:
1. In Epiphany, right click on any web page and select Save As to open a GtkFileChooserNative
2. Press Delete to delete the initially-selected text
You can also reproduce in Builder by using the Save As command (if you can find it; it's accessible via the teensy downward-pointing arrow just underneath the window menu in the top right), typing any character, and then pressing Backspace.
Note: This bug only occurs when running as a Flatpak.
## Current behavior
The file chooser hangs until Epiphany is closed with Ctrl+Q. With Builder, Ctrl+Q doesn't work and I have to kill it using System Monitor.
## Expected outcome
I should be able to type a filename and save my file
## Version information
GTK+ 3 from GNOME nightly runtime (tested with Epiphany) and the 3.28 stable runtime (tested with Builder)https://gitlab.gnome.org/GNOME/gtk/-/issues/132GtkTextView auto-scrolling to insert mark upon focus changes due to input-met...2022-06-15T20:07:25ZChristian HergertGtkTextView auto-scrolling to insert mark upon focus changes due to input-methods## Steps to reproduce
0. Only tested on Wayland, but with flatpak and jhbuild.
1. Open gedit or Builder with a large'ish file
2. Scroll the insertion mark out of view
3. Unfocus the editor such as Super+Click to drag the window arou...## Steps to reproduce
0. Only tested on Wayland, but with flatpak and jhbuild.
1. Open gedit or Builder with a large'ish file
2. Scroll the insertion mark out of view
3. Unfocus the editor such as Super+Click to drag the window around
## Current behavior
This is a regression of behavior and the insertion mark auto scrolls into view due to input methods.
## Expected outcome
No scrolling in the view.
## Version information
On Fedora 28 with gtk+ 3.22.29, I did not see the issue with gedit. But when running gedit with gtk+ from jhbuild, I did see the issue. (`jhbuild run gedit`).
When running Builder from flatpak or jhbuild I see the issue.
## Stack trace
I can trigger this in a number of ways on focus in/out, raising/lowering the window, etc. A common bit of stack looks like:
```
#1 0x00007ffff6404ee1 in gtk_text_view_scroll_mark_onscreen (text_view=0x555556f17490, mark=0x555555f487a0) at /home/christian/Projects/gtk+-3/gtk/gtktextview.c:2819
#2 0x00007ffff6413245 in gtk_text_view_preedit_changed_handler (context=0x5555562d95b0, text_view=0x555556f17490) at /home/christian/Projects/gtk+-3/gtk/gtktextview.c:9154
#3 0x00007ffff6a35e58 in g_cclosure_marshal_VOID__VOIDv (closure=0x555556f14e50, return_value=0x0, instance=0x5555562d95b0, args=0x7fffffffae38, marshal_data=0x0,
n_params=0, param_types=0x0) at /home/christian/Projects/glib/gobject/gmarshal.c:905
#4 0x00007ffff6a32d5f in _g_closure_invoke_va (closure=0x555556f14e50, return_value=0x0, instance=0x5555562d95b0, args=0x7fffffffae38, n_params=0, param_types=0x0)
at /home/christian/Projects/glib/gobject/gclosure.c:867
#5 0x00007ffff6a4eb4d in g_signal_emit_valist (instance=0x5555562d95b0, signal_id=364, detail=0, var_args=0x7fffffffae38)
at /home/christian/Projects/glib/gobject/gsignal.c:3300
#6 0x00007ffff6a4fef8 in g_signal_emit_by_name (instance=0x5555562d95b0, detailed_signal=0x7ffff6546e2c "preedit-changed")
at /home/christian/Projects/glib/gobject/gsignal.c:3487
#7 0x00007ffff629e18d in gtk_im_multicontext_preedit_changed_cb (slave=0x5555563d3680, multicontext=0x5555562d95b0)
at /home/christian/Projects/gtk+-3/gtk/gtkimmulticontext.c:515
#8 0x00007ffff6a35e58 in g_cclosure_marshal_VOID__VOIDv (closure=0x555556fd59d0, return_value=0x0, instance=0x5555563d3680, args=0x7fffffffb2e8, marshal_data=0x0,
n_params=0, param_types=0x0) at /home/christian/Projects/glib/gobject/gmarshal.c:905
#9 0x00007ffff6a32d5f in _g_closure_invoke_va (closure=0x555556fd59d0, return_value=0x0, instance=0x5555563d3680, args=0x7fffffffb2e8, n_params=0, param_types=0x0)
at /home/christian/Projects/glib/gobject/gclosure.c:867
#10 0x00007ffff6a4eb4d in g_signal_emit_valist (instance=0x5555563d3680, signal_id=364, detail=0, var_args=0x7fffffffb2e8)
at /home/christian/Projects/glib/gobject/gsignal.c:3300
#11 0x00007ffff6a4fef8 in g_signal_emit_by_name (instance=0x5555563d3680, detailed_signal=0x7fffa737ff4f "preedit-changed")
at /home/christian/Projects/glib/gobject/gsignal.c:3487
#12 0x00007fffa737eea7 in reset_preedit (context=0x5555563d3680) at /home/christian/Projects/gtk+-3/modules/input/imwayland.c:105
#13 0x00007fffa737fae3 in gtk_im_context_wayland_reset (context=0x5555563d3680) at /home/christian/Projects/gtk+-3/modules/input/imwayland.c:544
#14 0x00007ffff62990d0 in gtk_im_context_reset (context=0x5555563d3680) at /home/christian/Projects/gtk+-3/gtk/gtkimcontext.c:578
#15 0x00007ffff629df5c in gtk_im_multicontext_reset (context=0x5555562d95b0) at /home/christian/Projects/gtk+-3/gtk/gtkimmulticontext.c:429
#16 0x00007ffff62990d0 in gtk_im_context_reset (context=0x5555562d95b0) at /home/christian/Projects/gtk+-3/gtk/gtkimcontext.c:578
#17 0x00007ffff64113a8 in gtk_text_view_reset_im_context (text_view=0x555556f17490) at /home/christian/Projects/gtk+-3/gtk/gtktextview.c:8189
#18 0x00007ffff640b057 in gtk_text_view_multipress_gesture_pressed (gesture=0x555556232f60, n_press=1, x=265, y=434, text_view=0x555556f17490)
```https://gitlab.gnome.org/GNOME/gtk/-/issues/133Deprecated m4 macros don't use CPU-OS-pkg-config when cross-compiling2018-04-08T15:54:40ZSimon McVittieDeprecated m4 macros don't use CPU-OS-pkg-config when cross-compilingThis is Debian bug <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=894069>.
## Steps to reproduce
Cross-compile [terminatorx](https://tracker.debian.org/pkg/terminatorx) (version not stated, but presumably 4.0.1), which uses the dep...This is Debian bug <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=894069>.
## Steps to reproduce
Cross-compile [terminatorx](https://tracker.debian.org/pkg/terminatorx) (version not stated, but presumably 4.0.1), which uses the deprecated `AM_PATH_GTK_3_0` macro.
For example, you might be building on an x86_64 system (the *build architecture* in Autotools terms) for an ARM system (the *host architecture*).
## Current behavior
`AC_PATH_PROG([pkg-config])` searches `$PATH` for `pkg-config`, which is the pkg-config for the build architecture (usually x86_64), and queries the GTK version etc. for the build architecture
## Expected outcome
`AC_PATH_TOOL([pkg-config])` searches `$PATH` for e.g. `arm-linux-gnueabihf-pkg-config`, which is the pkg-config for the host architecture (e.g. ARM), queries the GTK version etc. for the host architecture, and skips checks that do not make sense when cross-compiling
## Version information
GTK 3.22.29 on Debian. GTK 4 is unaffected, because the deprecated macros have been removed there.
It looks as though this also affects GTK 2 (untested). The GTK 2 version of the macro also hard-codes `pkg-config` in one location where GTK 3 correctly uses `$PKG_CONFIG`.https://gitlab.gnome.org/GNOME/gtk/-/issues/134Bigger cursor can overlap tooltips2018-08-28T09:32:43ZStrangiatoBigger cursor can overlap tooltipsGnome 3.28 on Arch Linux.
I increased cursor size in gnome settings > universal access.
![Screenshot_from_2018-03-26_11-39-27](/uploads/030e7048aaf10ef4af89965d97519042/Screenshot_from_2018-03-26_11-39-27.png)Gnome 3.28 on Arch Linux.
I increased cursor size in gnome settings > universal access.
![Screenshot_from_2018-03-26_11-39-27](/uploads/030e7048aaf10ef4af89965d97519042/Screenshot_from_2018-03-26_11-39-27.png)https://gitlab.gnome.org/GNOME/gtk/-/issues/137GtkFileChooser: button create folder not correctly labelled for accessiblity2019-04-02T20:29:22ZAlex ARNAUDGtkFileChooser: button create folder not correctly labelled for accessiblity## Steps to reproduce
1. Run the Orca screen reader
2. Open the File Chooser from a text editor, for example Pluma
3. Tab until focus the icon to create a new folder
## Current behavior
Orca announces "menu" instead of "create folder...## Steps to reproduce
1. Run the Orca screen reader
2. Open the File Chooser from a text editor, for example Pluma
3. Tab until focus the icon to create a new folder
## Current behavior
Orca announces "menu" instead of "create folder icon" so a blind user couldn't be aware of the icon.
## Expected outcome
Orca should announce "create folder"
## Version information
GTK 3.22.29
## Additional information
Orca doesn't present tool-tip to the user because tool-tip is a description. See explanation of the Orca developper: https://mail.gnome.org/archives/orca-list/2018-March/msg00076.htmlhttps://gitlab.gnome.org/GNOME/gtk/-/issues/138Install Valgrind suppressions file2020-02-28T16:02:16ZPhilip ChimentoInstall Valgrind suppressions fileLike GLib does, GTK should install a suppressions file for Valgrind.
As an example to get started with, I need the following suppressions for a minimal GTK 3.22 program that creates and immediately destroys a `GtkWindow`:
```
{
gtk-...Like GLib does, GTK should install a suppressions file for Valgrind.
As an example to get started with, I need the following suppressions for a minimal GTK 3.22 program that creates and immediately destroys a `GtkWindow`:
```
{
gtk-style-context
Memcheck:Leak
match-leak-kinds: possible
fun:malloc
fun:g_malloc
...
fun:gtk_css_node_declaration_make_writable
...
fun:gtk_style_constructed
}
{
gtk-style-context2
Memcheck:Leak
match-leak-kinds: possible
fun:malloc
fun:g_malloc
...
fun:gtk_css_node_declaration_make_writable_resize
...
fun:gtk_style_constructed
}
```
(Unless this is an actual memory leak, in which case the nature of this bug report changes quite a bit!)Philip ChimentoPhilip Chimentohttps://gitlab.gnome.org/GNOME/gtk/-/issues/140Bindings on keypad directions incorrectly activate for different modifiers2023-03-25T14:30:56ZKai WilladsenBindings on keypad directions incorrectly activate for different modifiers## Steps to reproduce
For context, GtkSourceView binds `Alt+KP_Up` to swap a line with the one above it, and `Alt+Shift+KP_Up` to move the viewport (and same for `KP_Down`).
Please note that the `KP_` is important. This doesn't happen ...## Steps to reproduce
For context, GtkSourceView binds `Alt+KP_Up` to swap a line with the one above it, and `Alt+Shift+KP_Up` to move the viewport (and same for `KP_Down`).
Please note that the `KP_` is important. This doesn't happen for `Alt+Up`, etc.
1. Run the attached sample, which in one direction has removed both Alt+KP_Up and Alt+Shift+KP_Up bindings, but only `Alt+KP_Down`
2. Scroll down using `Alt+KP_Down`; this *shouldn't* work because we've removed the binding, but does.
3. Try and scroll up using `Alt+KP_Up`; this *doesn't* work and yet the only difference is that we've removed the `Alt+Shift` binding as well.
## Current behavior
`Alt+KP_Up`/`KP_Down` activates bindings for `Alt+Shift+KP_Up`/`KP_Down`.
This *does not* appear to happen for the non-`KP_` versions of these bindings.
## Expected outcome
The `Alt+Shift` bindings shouldn't be activated.[keybinding.py](/uploads/87c2039e04c18897a80c3e919c87c4e6/keybinding.py)
## Version information
Fedora 25 (GTK+ 3.22.17) and confirmed with jhbuild of current `gtk-3-22` branch.https://gitlab.gnome.org/GNOME/gtk/-/issues/144Maximised windows ignore/pass through mouse clicks after launching a fullscre...2021-11-16T16:42:25ZGhost UserMaximised windows ignore/pass through mouse clicks after launching a fullscreen app, if using multiple displays## Steps to reproduce
1. Launch a GTK+ application and maximize it
2. Start a fullscreen application
3. The GTK+ window cannot be interacted with using the mouse anymore as clicks go "through" the window to other windows behind it, h...## Steps to reproduce
1. Launch a GTK+ application and maximize it
2. Start a fullscreen application
3. The GTK+ window cannot be interacted with using the mouse anymore as clicks go "through" the window to other windows behind it, however keyboard still works as long as you give the window focus by clicking on it in the taskbar
## Version information
Windows 10, 64 Bit, version 1709, latest updates installed
Tested with HexChat (GTK+ 2.x) and gedit (GTK+ 3.x) and various video games as the fullscreen application.
I've wanted to try the GTK+ demo application, but I could not find a download link.
GPU is a GTX 970 with the latest drivers
## Additional information
This bug looks very similar to this one: https://bugzilla.gnome.org/show_bug.cgi?id=770596 as well as the issues this user on reddit is having: https://www.reddit.com/r/Windows10/comments/7arvb4/cant_interact_with_some_program_windows_after/
I am not encountering this bug with Steam or Discord as suggested, though these applications may have had this bug fixed. I do remember running into a similar issue with IntelliJ, but I cannot reproduce it anymore, so it might have been fixed there too. This leads me to believe that this might be incorrect handling of custom-drawn UIs, given that all these applications use them.
The bug only happens when I have multiple displays connected. Arrangement of the screens does not matter, neither does which screen the GTK+ application is running on.
Moving the GTK+ application to another display and back using keyboard shortcuts fixes the problem (though handling of this keyboard shortcut seems broken in gedit and instead causes the window to be de-maximized, it works fine in HexChat).
I wrote a little test program to call WinAPI's ShowWindow on the GTK+ window in an attempt to fix the problem; the problem is fixed if I call it with SW_MINIMIZE followed by SW_MAXIMIZE (also works if done by clicking on it in the taskbar twice), but not with SW_HIDE followed by SW_SHOW.
Resetting the graphics drivers using ctrl+shift+win+B also fixes the issue.
Setting the environment variable GDK_WIN32_LAYERED to 0 or 1 makes no difference for either GTK+ application.https://gitlab.gnome.org/GNOME/gtk/-/issues/145GtkEmojiChooser: Colour emoji in non-selected section label are invisible2019-01-11T10:13:46ZDaniel BolesGtkEmojiChooser: Colour emoji in non-selected section label are invisibleTSIA really:
* if an `EmojiSection` has a colour emoji as its button label, that emoji can only be seen if that section is currently selected/active;
* if it's not, said emoji is invisible - like the Smileys and Flags ones here (see [t...TSIA really:
* if an `EmojiSection` has a colour emoji as its button label, that emoji can only be seen if that section is currently selected/active;
* if it's not, said emoji is invisible - like the Smileys and Flags ones here (see [this comment](https://gitlab.gnome.org/GNOME/gtk/issues/145#note_94813) for how they should look)
![image](/uploads/8e21d8f53730725b8c32b06037efc9c3/image.png)
Avoiding transparency fixes this, e.g. putting this in the Inspector:
```
.emoji-picker button label
{
opacity: 1;
}
```
so it looks like colour glyphs and `opacity` don't interact well here at all. Any `opacity` except `1` immediately disappears.
The stock CSS in `_common.scss` is
```
label {
padding: 0;
opacity: 0.55;
}
&:hover label { opacity: 0.775; }
&:checked label { opacity: 1; }
```
However, this isn't a problem with all colour glyphs; for example, this properly makes the pickable emoji transparent, instead of making them disappear:
```
.emoji label
{
opacity: 0.5;
}
```
I'm on Debian unstable so may have various strange and horrible combinations of supporting libraries, but I can't see how any of them would cause this. However, I'm equally baffled by how no one else has reported it yet, so I'm wondering whether it occurs for anyone else.
This occurs with both `libgtk-3-dev_3.22.29-2_amd64.deb` and my own fresh `jhbuild`. It also occurs in GTK+ 4 when using the cairo renderer.https://gitlab.gnome.org/GNOME/gtk/-/issues/146GtkExpander arrow is not dimmed when the Expander is not :sensitive2018-09-26T18:21:55ZDaniel BolesGtkExpander arrow is not dimmed when the Expander is not :sensitiveI noticed this when trying to figure out why I have no sound: The Advanced expander is insensitive because there's nothing to do with the Dummy Output, but the arrow is fully intense, which contradicts the label by looking clickable:
![...I noticed this when trying to figure out why I have no sound: The Advanced expander is insensitive because there's nothing to do with the Dummy Output, but the arrow is fully intense, which contradicts the label by looking clickable:
![image](/uploads/309ce87e596da9fbab0efb1d06a72927/image.png)
There don't seem to be any "base states" selectors generic enough to catch this, so I think we'll just need some copy-pastad rules for the `expander title > arrow`. (Note that `-gtk-icon-effect` does nothing for symbolic icons.)
This applies to both Adwaita and HighContrast.https://gitlab.gnome.org/GNOME/gtk/-/issues/148Mutter SSD decorations do not properly scale -gtk-scaled images2018-03-30T18:41:26ZMarco Trevisanmail@3v1n0.netMutter SSD decorations do not properly scale -gtk-scaled imagesAs you can see, when using `background-image: -gtk-scaled(...)`:
![image](/uploads/e50c6e656fe8b83e359a9f05d01cc856/image.png)
As per commit e36b629c using `cairo_set_device_scale` in mutter would suffice to fix the issue (instead of `...As you can see, when using `background-image: -gtk-scaled(...)`:
![image](/uploads/e50c6e656fe8b83e359a9f05d01cc856/image.png)
As per commit e36b629c using `cairo_set_device_scale` in mutter would suffice to fix the issue (instead of `cairo_scale`), but while that could be right and can be done, I think that using `cairo_get_device_scale` on the target is wrong anyway, while we should use what `-gtk-scaled` already does, and so the style provider scaling.Marco Trevisanmail@3v1n0.netMarco Trevisanmail@3v1n0.nethttps://gitlab.gnome.org/GNOME/gtk/-/issues/152Cannot make modal popover appear by clicking an entry icon within a CellRende...2018-11-07T21:02:17ZPaul JohnsonCannot make modal popover appear by clicking an entry icon within a CellRendererText## Steps to reproduce
1. Create a TreeView with a TreeViewColumn that contains a CellRendererText.
2. In the "edited" callback for the CellRendererText:
a: Call gtk_entry_set_icon_from_icon_name to set the icon in the Editable.
...## Steps to reproduce
1. Create a TreeView with a TreeViewColumn that contains a CellRendererText.
2. In the "edited" callback for the CellRendererText:
a: Call gtk_entry_set_icon_from_icon_name to set the icon in the Editable.
b: Attach a popover to the Editable.
c: Connect the "icon-press" signal to a function that calls gtk_popover_popup.
## Current behavior
The text entry icon appears when editing starts. However when the icon is clicked the Popover does not appear. Instead the following messages are generated:
> (editable_cells:24711): GLib-GObject-WARNING **: invalid (NULL) pointer instance
>
> (editable_cells:24711): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
>
> (editable_cells:24711): GLib-GObject-WARNING **: invalid (NULL) pointer instance
>
> (editable_cells:24711): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
>
> (editable_cells:24711): GLib-GObject-WARNING **: invalid (NULL) pointer instance
>
> (editable_cells:24711): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
## Expected outcome
Popover appears when text entry icon is clicked.
## Version information
gtk3.x86_64 3.22.26-2.fc27
Linux Fedora 27
## Additional information
If the popover is made non-modal then it works. However in my application I want to be able to select a date from a calendar, and this is not possible when the popover is non-modal.
Attachment contains a modified version of the "editable_cells" demo that exhibits the problem.[editable_cells.c](/uploads/6f9b8e53c2279c8fcb470ab5c9482437/editable_cells.c)https://gitlab.gnome.org/GNOME/gtk/-/issues/155GtkAboutDialog License Button not hidden2018-04-03T08:49:59ZlovetoxGtkAboutDialog License Button not hidden## Steps to reproduce
Create a About Dialog, and set a license type instead of a license from string
see attached example[bugreport.py](/uploads/f5880dd2da41d5bef22be47a318e15f4/bugreport.py)
## Current behavior
Use set_license_type() t...## Steps to reproduce
Create a About Dialog, and set a license type instead of a license from string
see attached example[bugreport.py](/uploads/f5880dd2da41d5bef22be47a318e15f4/bugreport.py)
## Current behavior
Use set_license_type() to set a license
and set_license(None) to hide the license button
## Expected outcome
License Button should be hidden
## Version information
GTK 3.22.28
OS: Windows, Linux (only some Desktops, for example XCFE)
## Additional information
On Gnome this seems to work fine, but not all other desktopshttps://gitlab.gnome.org/GNOME/gtk/-/issues/156Transfer annotation for gtk_gl_area_new is incorrect.2018-04-05T13:10:15ZGhost UserTransfer annotation for gtk_gl_area_new is incorrect.Return value of gtk_gl_area_new is annotated with "transfer full", but it returns a floating reference so this is incorrect. It should use "transfer none" or no annotation at all.Return value of gtk_gl_area_new is annotated with "transfer full", but it returns a floating reference so this is incorrect. It should use "transfer none" or no annotation at all.https://gitlab.gnome.org/GNOME/gtk/-/issues/157Crashes in gdkdisplay-wayland when clicking any button/menu item2018-05-03T20:55:26ZGhost UserCrashes in gdkdisplay-wayland when clicking any button/menu item## Summary
The application goes out after clicking on any button/menu link.
## Steps to reproduce
```bash
$ filezilla
$ audacity
```
## Version information
* Linux: Arch Linux
* GTK: 3.22.29+60+ge42d8598ca-1
* Filezilla: 3.31.0
* Auda...## Summary
The application goes out after clicking on any button/menu link.
## Steps to reproduce
```bash
$ filezilla
$ audacity
```
## Version information
* Linux: Arch Linux
* GTK: 3.22.29+60+ge42d8598ca-1
* Filezilla: 3.31.0
* Audacity: 2.2.2
## Logs
Conversation about the error: https://bugs.archlinux.org/task/58073
### Filezilla:
```bash
Reading locale option from /home/inder/.config/filezilla/filezilla.xml
(filezilla:2920): Gdk-WARNING **: 14:15:42.085: gdk_window_set_composited called but compositing is not supported
(filezilla:2920): Gdk-WARNING **: 14:15:42.085: gdk_window_set_composited called but compositing is not supported
wxD-Bus: Signal from /org/freedesktop/DBus, member NameAcquired
wxD-Bus: Reply with serial 2
wxD-Bus: Reply to RegisterClient, our object path is /org/gnome/SessionManager/Client27
(filezilla:2920): Gtk-CRITICAL **: 14:15:45.185: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkSpinButton
(filezilla:2920): Gtk-CRITICAL **: 14:15:45.185: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkSpinButton
(filezilla:2920): Gtk-CRITICAL **: 14:15:45.186: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkSpinButton
(filezilla:2920): Gdk-CRITICAL **: 14:15:45.387: gdkdisplay-wayland.c:1317: Truncating shared memory file failed: Bad argument
```
### Audacity:
```bash
Gdk-Message: 14:15:29.463: Error 71 (Protocol error) dispatching to Wayland display.
```
## Workaround
1. downgrading package gtk3 (3.22.29+60+ge42d8598ca-1 => 3.22.29+4+gb485cf91b5-1) OR:
```bash
GDK_BACKEND=x11
```https://gitlab.gnome.org/GNOME/gtk/-/issues/159No press event for Unicode U07AE / character corresponding to 'o' in Dhivehi2021-03-04T00:44:45ZGhost UserNo press event for Unicode U07AE / character corresponding to 'o' in Dhivehi## Steps to reproduce
1. Add Dhivehi as Input Source
2. Start any Editor
3. Press 'o'(lowercase).
Please note that in Dhivehi (Uppercase)O and (lowercase)o is two different symbol.
Here is the Demo, I wrote for Testing.
[clip-0IJHF...## Steps to reproduce
1. Add Dhivehi as Input Source
2. Start any Editor
3. Press 'o'(lowercase).
Please note that in Dhivehi (Uppercase)O and (lowercase)o is two different symbol.
Here is the Demo, I wrote for Testing.
[clip-0IJHFD.txt](/uploads/9932dcab4ad48a4406f693232b4b9204/clip-0IJHFD.txt)
## Current behavior
No Event Signal on Press.
## Expected outcome
Unicode U07AE.
## Version information
- GTK 3.22.29
- Linux
- Ubuntu 17.10, Ubuntu 18.10
## Additional information
<!--
- If the bug was a crash, the exact text that was printed out
when the crash occurred.
- If the bug was a crash, attaching a stack trace obtained using
GDB is appreciated; follow the instructions on the wiki:
https://wiki.gnome.org/Community/GettingInTouch/Bugzilla/GettingTraces
-->https://gitlab.gnome.org/GNOME/gtk/-/issues/162Why is gdk_property_change not introspectable?2018-04-08T23:13:05ZIvan MalisonWhy is gdk_property_change not introspectable?gdk_property_change is marked as not introspectable in the gir for GDK
see https://gist.github.com/dc934beea4045675dd8ba28f43d137f8
Is there a reason for this?gdk_property_change is marked as not introspectable in the gir for GDK
see https://gist.github.com/dc934beea4045675dd8ba28f43d137f8
Is there a reason for this?https://gitlab.gnome.org/GNOME/gtk/-/issues/163Unable to explicitly set GtkModelButton role2018-05-01T00:22:53ZMichael HeynsUnable to explicitly set GtkModelButton role## Steps to reproduce
1. Create ModelButton with a stateful `action-name` and a `role`
2. Try using the `pygobject` widget props attribute
3. Try using the `set_property` method
```python
def _set_profile_menu(self):
sel...## Steps to reproduce
1. Create ModelButton with a stateful `action-name` and a `role`
2. Try using the `pygobject` widget props attribute
3. Try using the `set_property` method
```python
def _set_profile_menu(self):
self.profile_menu_button_label.set_label(App().session.active.profile_name)
if len(App().session.available_profiles) > 1:
self.profile_menu = Gtk.PopoverMenu()
profile_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, margin=10)
self.profile_menu.add(profile_box)
for profile in App().session.available_profiles:
if profile != App().session.active.profile_name:
profile_menu_item = Gtk.ModelButton(
text=profile, role=Gtk.ButtonRole.NORMAL,
action_name="app.switch_profile", action_target=GLib.Variant.new_string(profile))
profile_menu_item.props.role = Gtk.ButtonRole.NORMAL
profile_menu_item.set_property('role', Gtk.ButtonRole.NORMAL)
profile_box.add(profile_menu_item)
profile_box.show_all()
self.profile_menu_button.set_popover(self.profile_menu)
```
## Current behavior
![screenshot-1523080137](/uploads/4f999992c57f8c37d869efffa7a93f55/screenshot-1523080137.png)
GtkModelButton still assumes role from `action-name`
## Expected outcome
Explicitly set `role` property is preserved.
## Version information
- Arch Linux
- `gtk3 3.22.29+4+gb485cf91b5-1`
- `python-gobject 3.28.1-1`
## Additional information
Trying to override the radio CSS node (even interactively), documented [here](https://developer.gnome.org/gtk3/stable/GtkModelButton.html#id-1.3.9.12.9.9), has no effect. Is this worthy of an additional bug report? i.e.
```css
modelbutton radio {
opacity: 0;
}
```
## Workaround
I have worked around this by calling the `set_property` method in a `realize` signal handler for each button.I am not sure if this is good practice.https://gitlab.gnome.org/GNOME/gtk/-/issues/164gtk_window_set_geometry_hints triggers a resize loop under certain conditions2018-05-02T16:31:37ZRafał Mużyłogtk_window_set_geometry_hints triggers a resize loop under certain conditions"If they troll you, troll them back."
Anyway, this is sort of a clone of bugzilla [bug 747584](https://bugzilla.gnome.org/show_bug.cgi?id=747584).
[gtkTest.c](/uploads/06c2c8db6832941e48e9cac683c24eae/gtkTest.c)
Attached is a trimmed d..."If they troll you, troll them back."
Anyway, this is sort of a clone of bugzilla [bug 747584](https://bugzilla.gnome.org/show_bug.cgi?id=747584).
[gtkTest.c](/uploads/06c2c8db6832941e48e9cac683c24eae/gtkTest.c)
Attached is a trimmed down copy of the testcase from that bug.
Trimming down is mostly due to the problem being identified wrong in that bug.
See the commented line:
- for window size 160x32, aspect of 3.0 makes the window shrink into 1x1
- for the same size, aspect of 3.01 makes the window size itself correctly
Chances are it's window manager dependent, so openbox 3.6.1.
gtk+-3.22.19https://gitlab.gnome.org/GNOME/gtk/-/issues/166GtkSpinner triggers repainting when not visible2023-07-09T15:53:47ZMichael GrattonGtkSpinner triggers repainting when not visibleGtkSpinner seems to be triggering repainting when not visible, causing applications to wake up at whatever the frame clock is set to.
Users has reported in Geary [Bug 783025](https://bugzilla.gnome.org/show_bug.cgi?id=783025) that the p...GtkSpinner seems to be triggering repainting when not visible, causing applications to wake up at whatever the frame clock is set to.
Users has reported in Geary [Bug 783025](https://bugzilla.gnome.org/show_bug.cgi?id=783025) that the poll() system call was constantly returning, at a rate of around 60Hz, waking up the app when otherwise idle. This manifested as a small but persistent CPU overhead (~2-4% on my 6th gen i7). I originally thought it was [WebKitGTK+ related](https://bugs.webkit.org/show_bug.cgi?id=180330) since that was responsible for most of the CPU use during these wakeups. However when porting Geary's conversation list from GtkTreeView to use GtkListBox (and hence substantially increasing the number of GTK widgets being used), I noticed that the CPU utilisation when idle had gone up dramatically to ~20-30%.
It turned out that a GtkSpinner that is shown only rarely was never being stopped. After ensuring that the spinner is stopped when not visible, CPU use has dropped back down to 0 when idle.
Of course, "don't keep spinners running when not visible" is good advice for application authors, but it seems like the widget should at least be smart enough to manage this optimisation itself as well.https://gitlab.gnome.org/GNOME/gtk/-/issues/168Crash in gtk_container_idle_sizer2018-05-04T10:03:22ZAndrea Azzaroneazzaronea@gmail.comCrash in gtk_container_idle_sizerDownstream bug: https://launchpad.net/bugs/1759468
Stacktrace (using gtk-3.22)
```
#0 0x00007f04da1b4fad in gtk_style_context_clear_property_cache (context=<optimized out>) at ../../../../gtk/gtkstylecontext.c:276
priv = 0x561...Downstream bug: https://launchpad.net/bugs/1759468
Stacktrace (using gtk-3.22)
```
#0 0x00007f04da1b4fad in gtk_style_context_clear_property_cache (context=<optimized out>) at ../../../../gtk/gtkstylecontext.c:276
priv = 0x56193b056980
i = 0
#1 0x00007f04da072f01 in gtk_css_widget_node_update_style (cssnode=0x56193afb0aa0, change=12884901887, timestamp=87695266627, style=0x56193b1690f0) at ../../../../gtk/gtkcsswidgetnode.c:82
context = <optimized out>
widget_node = 0x56193afb0aa0
#2 0x00007f04da057c24 in gtk_css_node_ensure_style (cssnode=0x56193afb0aa0, current_time=87695266627) at ../../../../gtk/gtkcssnode.c:1007
new_style = <optimized out>
style_changed = <optimized out>
#3 0x00007f04da0589b5 in gtk_css_node_ensure_style (current_time=87695266627, cssnode=0x56193afb0aa0) at ../../../../gtk/gtkcssnode.c:1389
style_changed = <optimized out>
style_changed = <optimized out>
new_style = <optimized out>
_pp = <optimized out>
_p = <optimized out>
_destroy = <optimized out>
#4 gtk_css_node_validate_internal (cssnode=0x56193afb0aa0, timestamp=87695266627) at ../../../../gtk/gtkcssnode.c:1384
child = <optimized out>
#5 0x00007f04da0589cb in gtk_css_node_validate_internal (cssnode=<optimized out>, timestamp=87695266627) at ../../../../gtk/gtkcssnode.c:1398
child = 0x56193afb0aa0
timestamp = 87695266627
cssnode = <optimized out>
child = <optimized out>
child = <optimized out>
#6 0x00007f04da0589cb in gtk_css_node_validate_internal (cssnode=<optimized out>, timestamp=87695266627) at ../../../../gtk/gtkcssnode.c:1398
child = 0x56193afb0920
timestamp = 87695266627
cssnode = <optimized out>
child = <optimized out>
child = <optimized out>
#7 0x00007f04da0589cb in gtk_css_node_validate_internal (cssnode=<optimized out>, timestamp=87695266627) at ../../../../gtk/gtkcssnode.c:1398
child = 0x56193af90710
timestamp = 87695266627
cssnode = <optimized out>
child = <optimized out>
child = <optimized out>
#8 0x00007f04da0589cb in gtk_css_node_validate_internal (cssnode=<optimized out>, timestamp=87695266627) at ../../../../gtk/gtkcssnode.c:1398
child = 0x56193af90410
timestamp = 87695266627
cssnode = <optimized out>
child = <optimized out>
child = <optimized out>
#9 0x00007f04da03f5a6 in gtk_container_idle_sizer (clock=0x56193a747d50, container=0x56193aeb24f0) at ../../../../gtk/gtkcontainer.c:2053
No locals.
#10 0x00007f04dab03f6d in g_closure_invoke (closure=0x56193b486d40, return_value=0x0, n_param_values=1, param_values=0x7ffc6e692870, invocation_hint=0x7ffc6e6927f0) at ../../../../gobject/gclosure.c:804
marshal = 0x7f04dab05e60 <g_cclosure_marshal_VOID__VOID>
marshal_data = 0x0
in_marshal = 0
real_closure = 0x56193b486d20
__func__ = "g_closure_invoke"
#11 0x00007f04dab16d3e in signal_emit_unlocked_R (node=node@entry=0x56193a746390, detail=detail@entry=0, instance=instance@entry=0x56193a747d50, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffc6e692870) at ../../../../gobject/gsignal.c:3635
tmp = <optimized out>
handler = 0x56193b48b580
accumulator = 0x0
emission = {next = 0x0, instance = 0x56193a747d50, ihint = {signal_id = 31, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 4}
class_closure = <optimized out>
hlist = <optimized out>
handler_list = 0x56193b48b580
return_accu = 0x0
accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
signal_id = 31
max_sequential_handler_number = 4630
return_value_altered = 0
#12 0x00007f04dab1f3f5 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffc6e692a30) at ../../../../gobject/gsignal.c:3391
instance_and_params = 0x7ffc6e692870
signal_return_type = <optimized out>
param_values = 0x7ffc6e692888
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#13 0x00007f04dab1fe0f in g_signal_emit (instance=instance@entry=0x56193a747d50, signal_id=<optimized out>, detail=detail@entry=0) at ../../../../gobject/gsignal.c:3447
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffc6e692b10, reg_save_area = 0x7ffc6e692a50}}
#14 0x00007f04d9c2259f in _gdk_frame_clock_emit_layout (frame_clock=frame_clock@entry=0x56193a747d50) at ../../../../gdk/gdkframeclock.c:634
No locals.
#15 0x00007f04d9c22c62 in gdk_frame_clock_paint_idle (data=0x56193a747d50) at ../../../../gdk/gdkframeclockidle.c:437
iter = 1
clock = 0x56193a747d50
clock_idle = 0x56193a747d50
priv = 0x56193a747c70
skip_to_resume_events = 0
timings = 0x56193b1d8120
__func__ = "gdk_frame_clock_paint_idle"
#16 0x00007f04d9c0e2c0 in gdk_threads_dispatch (data=0x56193a916c80, data@entry=<error reading variable: value has been optimized out>) at ../../../../gdk/gdk.c:743
dispatch = 0x56193a916c80
ret = 0
#17 0x00007f04da82ab73 in g_timeout_dispatch (source=source@entry=0x56193a743e70, callback=<optimized out>, user_data=<optimized out>) at ../../../../glib/gmain.c:4650
timeout_source = 0x56193a743e70
again = <optimized out>
#18 0x00007f04da82a0f5 in g_main_dispatch (context=0x56193a7300f0) at ../../../../glib/gmain.c:3177
dispatch = 0x7f04da82ab60 <g_timeout_dispatch>
prev_source = 0x0
was_in_call = 0
user_data = 0x56193a916c80
callback = 0x7f04d9c0e2a0 <gdk_threads_dispatch>
cb_funcs = 0x7f04daaf2280 <g_source_callback_funcs>
cb_data = 0x56193b0dee90
need_destroy = <optimized out>
source = 0x56193a743e70
current = 0x56193a783c70
i = 0
current = <optimized out>
i = <optimized out>
source = <optimized out>
_g_boolean_var_ = <optimized out>
was_in_call = <optimized out>
user_data = <optimized out>
callback = <optimized out>
cb_funcs = <optimized out>
cb_data = <optimized out>
need_destroy = <optimized out>
dispatch = <optimized out>
prev_source = <optimized out>
_g_boolean_var_ = <optimized out>
#19 g_main_context_dispatch (context=context@entry=0x56193a7300f0) at ../../../../glib/gmain.c:3830
No locals.
#20 0x00007f04da82a4c0 in g_main_context_iterate (context=context@entry=0x56193a7300f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../../glib/gmain.c:3903
max_priority = 120
timeout = 0
some_ready = 1
nfds = <optimized out>
allocated_nfds = 5
fds = 0x56193b349c50
#21 0x00007f04da82a54c in g_main_context_iteration (context=context@entry=0x56193a7300f0, may_block=may_block@entry=1) at ../../../../glib/gmain.c:3964
retval = <optimized out>
#22 0x00007f04dadead0d in g_application_run (application=0x56193a747c40, argc=<optimized out>, argv=<optimized out>) at ../../../../gio/gapplication.c:2470
arguments = 0x56193aea1c00
status = 0
context = 0x56193a7300f0
acquired_context = <optimized out>
__func__ = "g_application_run"
#23 0x00005619384ccb91 in main (argc=<optimized out>, argv=<optimized out>) at ../shell/main.c:57
application = 0x56193a747c40
```https://gitlab.gnome.org/GNOME/gtk/-/issues/169GtkTextView accesses already disposed object2018-05-02T04:33:36ZMarek KašíkGtkTextView accesses already disposed object## Steps to reproduce
1. Open the attached file in evince
2. Double click on a text field (e.g. the one below the "Address of Headquarter, ...")
3. See critical warnings in console (or crash)
## Current behavior
Critical warnings i...## Steps to reproduce
1. Open the attached file in evince
2. Double click on a text field (e.g. the one below the "Address of Headquarter, ...")
3. See critical warnings in console (or crash)
## Current behavior
Critical warnings in console (or crash - https://bugzilla.redhat.com/show_bug.cgi?id=1559136)
## Expected outcome
No warnings and no crash
## Version information
3.22.29
## Additional information
[ds156_e.pdf](/uploads/f628983f97284d32170ce5f7c04f7eca/ds156_e.pdf)
The backtrace for the warning is:
```
#0 g_log (log_domain=0x7ffff60318fe "Gtk", log_level=G_LOG_LEVEL_CRITICAL, format=0x7ffff4092682 "%s: assertion '%s' failed") at ../glib/glib/gmessages.c:1431
#1 0x00007ffff40392e5 in g_return_if_fail_warning (log_domain=0x7ffff60318fe "Gtk", pretty_function=0x7ffff6031a60 <__func__.58010> "gtk_text_mark_get_buffer", expression=0x7ffff603194f "GT
K_IS_TEXT_MARK (mark)") at ../glib/glib/gmessages.c:2809
#2 0x00007ffff5e9e347 in gtk_text_mark_get_buffer (mark=0x845c00) at gtktextmark.c:348
#3 0x00007ffff5eb62d5 in selection_data_free (data=0x845ea0) at gtktextview.c:7621
#4 0x00007ffff400b54d in g_datalist_clear (datalist=0xccf590) at ../glib/glib/gdataset.c:273
#5 0x00007ffff4322e9c in g_object_finalize (object=0xccf580) at ../glib/gobject/gobject.c:1068
#6 0x00007ffff5cec304 in gtk_gesture_finalize (object=0xccf580) at gtkgesture.c:237
#7 0x00007ffff4327eb6 in g_object_unref (_object=0xccf580) at ../glib/gobject/gobject.c:3346
#8 0x00007ffff5eacf5c in gtk_text_view_finalize (object=0x7c8300) at gtktextview.c:3708
#9 0x00007ffff4327eb6 in g_object_unref (_object=0x7c8300) at ../glib/gobject/gobject.c:3346
#10 0x00007ffff4322fb1 in g_object_run_dispose (object=0x7c8300) at ../glib/gobject/gobject.c:1110
#11 0x00007ffff5f38af7 in gtk_widget_destroy (widget=0x7c8300) at gtkwidget.c:4728
#12 0x00007ffff796c480 in destroy_child_if_form_widget (widget=0x7c8300) at ev-view.c:5177
#13 0x00007ffff797161d in ev_view_forall (container=0x6b7b80, include_internals=0, callback=0x7ffff796c443 <destroy_child_if_form_widget>, callback_data=0x0) at ev-view.c:7136
#14 0x00007ffff5c36867 in gtk_container_foreach (container=0x6b7b80, callback=0x7ffff796c443 <destroy_child_if_form_widget>, callback_data=0x0) at gtkcontainer.c:2472
#15 0x00007ffff796c4ba in ev_view_remove_all_form_fields (view=0x6b7b80) at ev-view.c:5183
#16 0x00007ffff796c1c5 in ev_view_button_press_event (widget=0x6b7b80, event=0x95ddd0) at ev-view.c:5128
#17 0x00007ffff5d5bb54 in _gtk_marshal_BOOLEAN__BOXEDv (closure=0x6d2aa0, return_value=0x7fffffffcb00, instance=0x6b7b80, args=0x7fffffffcc98, marshal_data=0x7ffff796b96d <ev_view_button_pre
ss_event>, n_params=1, param_types=0x6d2ad0) at gtkmarshalers.c:129
#18 0x00007ffff431c2fd in g_type_class_meta_marshalv (closure=0x6d2aa0, return_value=0x7fffffffcb00, instance=0x6b7b80, args=0x7fffffffcc98, marshal_data=0x180, n_params=1, param_types=0x6d2
ad0) at ../glib/gobject/gclosure.c:1024
#19 0x00007ffff431bebf in _g_closure_invoke_va (closure=0x6d2aa0, return_value=0x7fffffffcb00, instance=0x6b7b80, args=0x7fffffffcc98, n_params=1, param_types=0x6d2ad0) at ../glib/gobject/gc
losure.c:867
#20 0x00007ffff4337623 in g_signal_emit_valist (instance=0x6b7b80, signal_id=60, detail=0, var_args=0x7fffffffcc98) at ../glib/gobject/gsignal.c:3300
#21 0x00007ffff4338861 in g_signal_emit (instance=0x6b7b80, signal_id=60, detail=0) at ../glib/gobject/gsignal.c:3447
#22 0x00007ffff5f3ec70 in gtk_widget_event_internal (widget=0x6b7b80, event=0x95ddd0) at gtkwidget.c:7740
#23 0x00007ffff5f3e0ae in gtk_widget_event (widget=0x6b7b80, event=0x95ddd0) at gtkwidget.c:7310
#24 0x00007ffff5d59feb in propagate_event_up (widget=0x6b7b80, event=0x95ddd0, topmost=0x0) at gtkmain.c:2582
#25 0x00007ffff5d5a2d1 in propagate_event (widget=0x7c8300, event=0x95ddd0, captured=0, topmost=0x0) at gtkmain.c:2685
#26 0x00007ffff5d5a3a0 in gtk_propagate_event (widget=0x7c8300, event=0x95ddd0) at gtkmain.c:2719
#27 0x00007ffff5d58faf in gtk_main_do_event (event=0x95ddd0) at gtkmain.c:1915
#28 0x00007ffff5772cc0 in _gdk_event_emit (event=0x95ddd0) at gdkevents.c:73
#29 0x00007ffff57b9013 in gdk_event_source_dispatch (source=0x6b8640, callback=0x0, user_data=0x0) at gdkeventsource.c:367
#30 0x00007ffff402d665 in g_main_dispatch (context=0x6c19a0) at ../glib/glib/gmain.c:3177
#31 0x00007ffff402e4e7 in g_main_context_dispatch (context=0x6c19a0) at ../glib/glib/gmain.c:3830
#32 0x00007ffff402e6cb in g_main_context_iterate (context=0x6c19a0, block=1, dispatch=1, self=0x7f9e10) at ../glib/glib/gmain.c:3903
#33 0x00007ffff402e78f in g_main_context_iteration (context=0x6c19a0, may_block=1) at ../glib/glib/gmain.c:3964
#34 0x00007ffff488ddf9 in g_application_run (application=0x7ab230, argc=0, argv=0x0) at ../glib/gio/gapplication.c:2470
#35 0x000000000044fbda in main (argc=1, argv=0x7fffffffd2d8) at main.c:316
```https://gitlab.gnome.org/GNOME/gtk/-/issues/170GtkFileChooser dialog can't show/open drives on Windows anymore2018-05-03T19:44:00ZChristoph ReiterGtkFileChooser dialog can't show/open drives on Windows anymoreSee https://github.com/Alexpux/MINGW-packages/issues/3584
* Open the dialog
* Click on C: or "Other Places" and the there Computer or C:
Expected:
* Content of the main drive or C: is shown
Actual:
* Nothing happens (It used to work...See https://github.com/Alexpux/MINGW-packages/issues/3584
* Open the dialog
* Click on C: or "Other Places" and the there Computer or C:
Expected:
* Content of the main drive or C: is shown
Actual:
* Nothing happens (It used to work with gtk3.22.26 and glib2.54)
![Capture](/uploads/c7408276aac39b58fca2b16a620a99fe/Capture.PNG)https://gitlab.gnome.org/GNOME/gtk/-/issues/172Ctrl+Shift+Mouse-Scroll triggers Ctrl+Mouse Scroll2022-06-11T17:46:48ZUdi OronCtrl+Shift+Mouse-Scroll triggers Ctrl+Mouse ScrollIn previous versions of Gnome I was able to set volume up/down with the following `~/.xbindkeysrc` settings:
```
"amixer sset -q 'Master' 10%+"
control + shift + b:4
"amixer sset -q 'Master' 10%-"
control + shift + b:5
```
However...In previous versions of Gnome I was able to set volume up/down with the following `~/.xbindkeysrc` settings:
```
"amixer sset -q 'Master' 10%+"
control + shift + b:4
"amixer sset -q 'Master' 10%-"
control + shift + b:5
```
However, this does not work for the few last versions of Gnome as the underlying app gets detects this as Ctrl+Mouse Scroll (Which make the screen zoom usually).
The expected behavior should be: Ctrl+Shift+Scroll mouse does not trigger zoom (for example, in google chrome)https://gitlab.gnome.org/GNOME/gtk/-/issues/177Setting left-margin or right-margin may make GtkTextView inconsistent2018-04-17T08:22:51ZMohammed SadiqSetting left-margin or right-margin may make GtkTextView inconsistentSetting left-margin or right-margin on GtkTextView lets the parent window grow indefinitely. This was tested with the parent container GtkScrolledWindow hscrollpolicy to none, and wrap-mode set to word.
How to reproduce:
1. Compile the ...Setting left-margin or right-margin on GtkTextView lets the parent window grow indefinitely. This was tested with the parent container GtkScrolledWindow hscrollpolicy to none, and wrap-mode set to word.
How to reproduce:
1. Compile the following file and run.
2. Unmaximize and reduce the window width as much as possible.
3. Write some text as much so it would exceed the window width.
Result:
The window simply grows as more text is fed.
Expected result:
The text should be wrapped if the text exceeds the allocated width.
File (modified from sunny.c in gtk3): [sunny.c](/uploads/35c95c2c0b7feb51d9cdd7143db9c3e7/sunny.c)
Diff of relevant code:
```
diff --git a/examples/sunny.c b/examples/sunny.c
index 62f51a9866..e174b2748d 100644
--- a/examples/sunny.c
+++ b/examples/sunny.c
@@ -24,9 +24,14 @@ new_window (GApplication *app,
gtk_container_add (GTK_CONTAINER (window), overlay);
scrolled = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled),
+ GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
gtk_widget_set_hexpand (scrolled, TRUE);
gtk_widget_set_vexpand (scrolled, TRUE);
view = gtk_text_view_new ();
+ gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (view), GTK_WRAP_WORD);
+ gtk_text_view_set_left_margin (GTK_TEXT_VIEW (view), 12);
+ gtk_text_view_set_right_margin (GTK_TEXT_VIEW (view), 12);
gtk_container_add (GTK_CONTAINER (scrolled), view);
gtk_container_add (GTK_CONTAINER (overlay), scrolled);
```
The `padding` css property works, which is pretty much the same, I believe.https://gitlab.gnome.org/GNOME/gtk/-/issues/179Middle-clicking rows in the places view doesn’t actually work2019-12-13T19:21:37ZGhost UserMiddle-clicking rows in the places view doesn’t actually workSince the multi-press gesture in `GtkListBox` only listens to primary button presses, https://gitlab.gnome.org/GNOME/gtk/commit/33fdcca2cf5c3f808e5d2567a89d6c059d36c65b does not work.Since the multi-press gesture in `GtkListBox` only listens to primary button presses, https://gitlab.gnome.org/GNOME/gtk/commit/33fdcca2cf5c3f808e5d2567a89d6c059d36c65b does not work.Emmanuele BassiEmmanuele Bassihttps://gitlab.gnome.org/GNOME/gtk/-/issues/183Please consider not enabling viqr by default for Vietnamese locales2019-11-16T20:37:11ZSimon McVittiePlease consider not enabling viqr by default for Vietnamese localesDebian and Ubuntu have had a patch in their GTK+ 2 and GTK+ 3 packages since 2008, making the `imviqr` module no longer used by default in Vietnamese locales. I recently did some research on why we had this patch, which it seems was orig...Debian and Ubuntu have had a patch in their GTK+ 2 and GTK+ 3 packages since 2008, making the `imviqr` module no longer used by default in Vietnamese locales. I recently did some research on why we had this patch, which it seems was originally added for <https://launchpad.net/bugs/191451>.
In the Vietnamese Quoted-Readable input method, punctuation following a base letter is converted into diacritical marks, for example `a(` → `ă`. (See <https://en.wikipedia.org/wiki/Vietnamese_Quoted-Readable>.) A 2008 bug report in Ubuntu argued that this is a problematic default, particularly when typing passwords, where the effect of the punctuation is non-obvious.
According to the bug reporter, VIQR is popular with Vietnamese users living elsewhere in the world, where Vietnamese keyboards are unlikely to be readily available, but is not a popular choice within Vietnam, where the Telex or VNI input modes are preferred.
When I asked the debian-l10n-vietnamese mailing list, the feedback I received was that VIQR should continue to be available, but should not be the default for any locale. I'll point members of that list to this issue report.https://gitlab.gnome.org/GNOME/gtk/-/issues/193Document that GtkUIManager is deprecated by GtkBuilder2020-03-07T13:19:29ZGhost UserDocument that GtkUIManager is deprecated by GtkBuilderThis has been former logged in Bugzilla bug 709732.
GtkUIManager is tagged as deprecated in gtk+-3.10 but the reader isn't told what to use instead.
Shouldn't (s)he be pointed to GtkBuilder widget instead?
See commit https://git.gnome...This has been former logged in Bugzilla bug 709732.
GtkUIManager is tagged as deprecated in gtk+-3.10 but the reader isn't told what to use instead.
Shouldn't (s)he be pointed to GtkBuilder widget instead?
See commit https://git.gnome.org/browse/gtk+/commit/gtk/gtkuimanager.h?id=c96a1c49802468bd0c7b7ad44782e864bdaaf430
"It is recommended to use GAction et al and GtkBuilder."
I'd really appreciate it, if a hint would have been mentioned in the deprication message of GtkUIManager or GtkActionGroup. Maybe with a little warning that there is not 1:1 take pendant.
I request to update the official documentation because there is nearly NO programming examples in the wild for GtkBuilder. Most examples point to GtkUIManager which meanwhile became depricated.https://gitlab.gnome.org/GNOME/gtk/-/issues/195Want to use Draw signal to create cairo on TextView in gtk32018-04-19T10:36:29ZGhost UserWant to use Draw signal to create cairo on TextView in gtk3I am trying to use signal draw to create cairo on TextView. But I am not able to do so.
I can use overlay to create cairo and use it over the TextView but I don't want this as a solution I want to have the draw on the TextView.
Here is...I am trying to use signal draw to create cairo on TextView. But I am not able to do so.
I can use overlay to create cairo and use it over the TextView but I don't want this as a solution I want to have the draw on the TextView.
Here is the code
<pre>
#!/usr/bin/env python
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('GdkX11', '3.0')
from gi.repository import Gtk
from gi.repository import GdkX11
def draw_cb(widget, cr):
cr = widget.get_property('window').cairo_create()
cr.set_source_rgba(0,0,0,0.5)
cr.rectangle(50,75,100,100)
cr.fill()
return False
window = Gtk.Window()
window.set_default_size(200, 200)
window.connect("destroy", Gtk.main_quit)
textview = Gtk.TextView()
textview.set_wrap_mode(Gtk.WrapMode.WORD_CHAR)
textbuffer = textview.get_buffer()
textbuffer.set_text("Hello world"*18, -1)
textview.connect('draw', draw_cb)
window.add(textview)
window.show_all()
Gtk.main()
</pre>
I am using Python2.7 and GTK3.18 version on Windows 7 system.https://gitlab.gnome.org/GNOME/gtk/-/issues/196GtkEntry: Should pay attention to :hover state CSS selector2021-07-31T19:32:12ZPhilip ChimentoGtkEntry: Should pay attention to :hover state CSS selector## Steps to reproduce
Here's a GJS script:
```js
Object.assign(imports.gi.versions, {Gdk: '3.0', Gtk: '3.0'});
const {Gdk, Gtk} = imports.gi;
Gtk.init(null);
const entry = new Gtk.Entry({
valign: Gtk.Align.CENTER,
primary_icon_n...## Steps to reproduce
Here's a GJS script:
```js
Object.assign(imports.gi.versions, {Gdk: '3.0', Gtk: '3.0'});
const {Gdk, Gtk} = imports.gi;
Gtk.init(null);
const entry = new Gtk.Entry({
valign: Gtk.Align.CENTER,
primary_icon_name: 'edit-find-symbolic',
});
const w = new Gtk.Window();
w.add(entry);
const css = `
entry { background-color: blue; }
entry:hover { background-color: red; }
entry image { color: green; }
entry image:hover { color: white; }`;
const provider = new Gtk.CssProvider();
provider.load_from_data(css);
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), provider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
w.connect('destroy', () => Gtk.main_quit());
w.show_all();
Gtk.main();
```
## Current behavior
Hovering over the entry has no effect.
Hovering over the icon turns it from green to white as expected.
## Expected outcome
Hovering over the entry should turn it from blue to red.
## Version information
Tested inside GNOME Flatpak runtime. Info:
```
Ref: runtime/org.gnome.Sdk/x86_64/master
ID: org.gnome.Sdk
Arch: x86_64
Branch: master
Origin: gnome-nightly
Collection ID:
Date: 2018-03-19 19:51:59 +0000
Subject: build of org.gnome.Sdk, Mon Mar 19 18:04:31 UTC 2018
Commit: ad722135212ca96f2611f839cb1e3ba41ab2c29d5c679737f886e3363851eb69
Parent: 51575bef5f4b620eb02d86142eaf74f45e36f533110b5be8fa88dd0adedc5405
Location: /var/lib/flatpak/runtime/org.gnome.Sdk/x86_64/master/ad722135212ca96f2611f839cb1e3ba41ab2c29d5c679737f886e3363851eb69
Installed size: 1.6 GB
```https://gitlab.gnome.org/GNOME/gtk/-/issues/197GTK 3.22 prints warnings on standard error when expanding tree item at bottom...2023-03-25T14:31:32ZSimeon AndreevGTK 3.22 prints warnings on standard error when expanding tree item at bottom of tree## Steps to reproduce
1. Create a tree with some items and nested items, inside a scrolled window.
2. Expand a tree item, so that the child items of the tree are partially outside of the tree scroll window.
3. Observe that a warning ...## Steps to reproduce
1. Create a tree with some items and nested items, inside a scrolled window.
2. Expand a tree item, so that the child items of the tree are partially outside of the tree scroll window.
3. Observe that a warning is printed on standard error.
The behaviour can be reproduced with the following snippet:
[GTK_nested_tree_warnings.cpp](/uploads/4f2c6ade3f725dcca97e9f593dc53e68/GTK_nested_tree_warnings.cpp)
Otherwise, any tree within a scrolled window, with nested items, can be used to observe the problem.
## Current behavior
The following type of warning is printed on standard error:
`Gtk-WARNING **: Allocating size to GtkWindow 0x682260 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?`
## Expected outcome
No warnings are printed on standard error.
## Version information
I can reproduce this on RHEL 7.4, with GTK 3.22.10 (gtk3-devel-3.22.10-4.el7.x86_64).
## Additional information
I can reproduce this on RHEL 7.4, with GTK 3.22.10 (gtk3-devel-3.22.10-4.el7.x86_64).
I cannot reproduce this on RHEL 7.2, with GTK 3.14.13 (gtk3-devel-3.14.13-16.el7.x86_64).
Originally, this was found in Eclipse SDK, see Eclipse bug report: https://bugs.eclipse.org/bugs/show_bug.cgi?id=533876https://gitlab.gnome.org/GNOME/gtk/-/issues/198Gtk3 CSS background-image won't display 1 to 1 pixel by pixel2018-04-25T14:13:16ZJos van RiswickGtk3 CSS background-image won't display 1 to 1 pixel by pixel
I'm working on a Gtk3 theme and cant get small background-images to display sharply. I'd like them to be displayed as they are, pixel by pixel, without scaling, anti alias etc.
To narrow down the problem I made a file ~/.themes/test/gt...
I'm working on a Gtk3 theme and cant get small background-images to display sharply. I'd like them to be displayed as they are, pixel by pixel, without scaling, anti alias etc.
To narrow down the problem I made a file ~/.themes/test/gtk-3.2/gtk.css
containing only:
```css
combobox button arrow
{
min-width:15px;
min-height:6px;
background-image:url("comboBoxBeam.png");
background-size: 15px 6px;
background-repeat: no-repeat;
background-position: center;
margin:0px;
padding:0px;
}
```
and fired up awf-gtk3. In the image below, you see screen grabs from:
1) the original comboBoxBeam.png 2) the image as displayed in awf-gtk3 app with the above gtk.css file 3) the image displayed in awf-gtk3 with this gtk.css file (height 5 instead of 6):
```css
combobox button arrow
{
min-width:15px;
min-height:5px;
background-image:url("comboBoxBeam.png");
background-size: 15px 5px;
background-repeat: no-repeat;
background-position: center;
margin:0px;
padding:0px;
}
```
In 2) the image is displayed with height 7 (too high) and blurry In 3) the image is displayed at the given size 5 and sharply, but the original image is on pixel larger (6px)
Shouldn't images be displayed 1 to 1 as the original image is, when the set size is the same as the original image size?
(Xubuntu 17.10, gtk version 3.22)
![rendered images](/uploads/1e552dc3da9ce2af2145ce3b70aa1d3f/gtkrendering2.png)
https://gitlab.gnome.org/GNOME/gtk/-/issues/199MenuButton not notified when its Popover is destroyed, still accesses it in d...2018-04-23T04:43:57ZDaniel BolesMenuButton not notified when its Popover is destroyed, still accesses it in dispose()* Have a `MenuButton` and a `Popover`, set up via `menuButton.set_popover(popover)`
* Use a binding like `gtkmm` and declare such that `popover` is destroyed before `menuButton`
* `menuButton` is not notified that `popover` is dead, so `...* Have a `MenuButton` and a `Popover`, set up via `menuButton.set_popover(popover)`
* Use a binding like `gtkmm` and declare such that `popover` is destroyed before `menuButton`
* `menuButton` is not notified that `popover` is dead, so `dispose()` accesses an invalid instance
We presumably want the destruction of the `Popover` to clear the reference in the `MenuButton`.
```
Thread 1 "concentration" received signal SIGSEGV, Segmentation fault.
0x00007ffff617eaf7 in gtk_popover_set_relative_to (popover=0x5555558c2470, relative_to=0x0)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkpopover.c:2205
2205 g_return_if_fail (GTK_IS_POPOVER (popover));
(ins)(gdb) bt
#0 0x00007ffff617eaf7 in gtk_popover_set_relative_to (popover=0x5555558c2470, relative_to=0x0)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkpopover.c:2205
#1 0x00007ffff611b678 in gtk_menu_button_dispose (object=0x555555bbe240)
at /home/daniel/jhbuild/checkout/gnome/gtk+-3/gtk/gtkmenubutton.c:1042
#2 0x00007ffff79d4bcd in Gtk::Widget_Class::dispose_vfunc_callback (self=0x555555bbe240)
at /home/daniel/jhbuild/checkout/gnome/gtkmm-3/gtk/gtkmm/widget.cc:678
#3 0x00007ffff55f1047 in g_object_run_dispose (object=0x555555bbe240)
at /home/daniel/jhbuild/checkout/gnome/glib/gobject/gobject.c:1108
#4 0x00007ffff7a24707 in Gtk::Object::_release_c_instance (this=0x555555838fa8)
at /home/daniel/jhbuild/checkout/gnome/gtkmm-3/gtk/gtkmm/object.cc:131
#5 0x00007ffff7a24c01 in Gtk::Object::destroy_ (this=0x555555838fa8)
at /home/daniel/jhbuild/checkout/gnome/gtkmm-3/gtk/gtkmm/object.cc:266
#6 0x00007ffff793b86b in Gtk::MenuButton::~MenuButton (this=0x555555838fa8, __in_chrg=<optimized out>, __vtt_parm=<optimized out>)
at /home/daniel/jhbuild/checkout/gnome/gtkmm-3/gtk/gtkmm/menubutton.cc:156
```
I didn't check in depth but don't think this is a problem when the popup is a `Menu` instead, as I use that elsewhere and never encountered this crash.https://gitlab.gnome.org/GNOME/gtk/-/issues/203Crash on keypress when using broadway backend on windows2018-04-27T15:31:28ZAlexandre Pereira NunesCrash on keypress when using broadway backend on windows## Steps to reproduce
1. run broadwayd (windows requirement)
2. set GDK_BACKEND=broadway
3. start gtk3 app with e.g. text entry
4. on browser window, connect to broadway (http://localhost:9090)
5. On app inside browser, select te...## Steps to reproduce
1. run broadwayd (windows requirement)
2. set GDK_BACKEND=broadway
3. start gtk3 app with e.g. text entry
4. on browser window, connect to broadway (http://localhost:9090)
5. On app inside browser, select text-consuming widget press any key
6. Different bug: attempt to select text (e.g. by ctrl+a) on the text input and it triggers
on another site.
## Version information
GTK 3.22.30 on windows
## Backtrace
Sorry, I can't come up with a backtrace - however it seems that broadway attempts to emulate platform input events and the win32 gdk input layer chokes on missing data (dereferencing pointers which are then null). I managed to get a usable build with the attached patch but I don't know if it's behavior is correct.
[fix-broadway-win32.patch](/uploads/0072d2f02b73d051e64b2561832e2cc3/fix-broadway-win32.patch)https://gitlab.gnome.org/GNOME/gtk/-/issues/204GtkModelButton fails to emit accessible state changes2020-07-22T16:10:09ZJoanmarie DiggsGtkModelButton fails to emit accessible state changesSteps to reproduce:
1. Launch the attached pyatspi accessible-event listener in a terminal
2. Launch gtk3-demo
3. In the Printing->Page Setup demo, arrow amongst the radio buttons
4. In the Model Button demo, arrow amongst the model butt...Steps to reproduce:
1. Launch the attached pyatspi accessible-event listener in a terminal
2. Launch gtk3-demo
3. In the Printing->Page Setup demo, arrow amongst the radio buttons
4. In the Model Button demo, arrow amongst the model buttons under "color"
Expected results: The accessibility events seen when performing step 3 would be the same as those seen when performing step 4.
Actual results: Both step 3 and step 4 result in focused events, but there are no state-changed:checked events seen in step 4.
Also, the "checked" state never appears in the state set (e.g. when the item initially gains focus and happens to be checked). But that's left out of the listener to keep listener output to a minimum.
Impact: Orca has no clue what the state of these model buttons are. Thus Orca users have no clue.[radio.py](/uploads/d1fcb12a1d7d1a69da5a18e449e7bd03/radio.py)https://gitlab.gnome.org/GNOME/gtk/-/issues/205missing window decoration for some GTK 3 apps on KDE Wayland2018-05-03T08:51:30ZMarkus Rathgebmissing window decoration for some GTK 3 apps on KDE Wayland## Steps to reproduce
1. Start a KDE Plasma Wayland session
2. Install "kde-gtk-config" (package name depends on dist) to get "gtk3_preview"
3. Start gtk3_preview using the GDK wayland backend e.g. `GDK_BACKEND=wayland gtk3_preview`
...## Steps to reproduce
1. Start a KDE Plasma Wayland session
2. Install "kde-gtk-config" (package name depends on dist) to get "gtk3_preview"
3. Start gtk3_preview using the GDK wayland backend e.g. `GDK_BACKEND=wayland gtk3_preview`
## Current behavior
If using the wayland GDK backend the window decoration is missing.
If using the x11 GDK backend the window decoration is shown.
## Expected outcome
Window decoration are available on GDK backend wayland.
## Version information
* Linux (Gentoo distribution)
* GTK+ 3.22.30
* configure options: `--prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-dependency-tracking --disable-silent-rules --docdir=/usr/share/doc/gtk+-3.22.30 --htmldir=/usr/share/doc/gtk+-3.22.30/html --disable-gtk-doc --disable-maintainer-mode --disable-schemas-compile --disable-quartz-backend --disable-broadway-backend --disable-cloudprint --disable-colord --enable-cups=auto --enable-introspection --enable-wayland-backend --enable-x11-backend --enable-xcomposite --enable-xdamage --enable-xfixes --enable-xkb --enable-xrandr --disable-xinerama --disable-cloudproviders --disable-mir-backend --disable-papi --enable-man --with-xml-catalog=/etc/xml/catalog --libdir=/usr/lib64 CUPS_CONFIG=/usr/bin/x86_64-pc-linux-gnu-cups-config`
* Wayland 1.14.0
* Wayland Protocols 1.13
* KDE Plasma 5.12.4
* KDE Frameworks 5.45.0
* KDE Applications 18.04.0
## Additional information
* I opened an issue on the KDE bug tracker: https://bugs.kde.org/show_bug.cgi?id=393536
* I have been told it is a bug in GTKhttps://gitlab.gnome.org/GNOME/gtk/-/issues/206GTK 3.22 button outline and bottom image border overlap2023-02-18T01:09:20ZSimeon AndreevGTK 3.22 button outline and bottom image border overlapWhen upgrading from GTK 3.14 to GTK 3.22, we observed that with our theme the bottom border and outline of buttons overlap on GTK 3.22. This was not the case on GTK 3.14.
On GTK 3.22:
![gtk_322_button_outline_and_border](/uploads/d11a79...When upgrading from GTK 3.14 to GTK 3.22, we observed that with our theme the bottom border and outline of buttons overlap on GTK 3.22. This was not the case on GTK 3.14.
On GTK 3.22:
![gtk_322_button_outline_and_border](/uploads/d11a7990fa00f6ba695312eb44d4fe32/gtk_322_button_outline_and_border.png)
On GTK 3.14:
![gtk_314_button_outline_and_border](/uploads/9a06899d24d4fccc4b7afc34fac0caa6/gtk_314_button_outline_and_border.png)
To reproduce, the theme contents consist of `gtk.css`, `border.svg`, `settings.ini` and the application consists of `button.cpp`. The contents of these are:
* `gtk.css`: [gtk.css](/uploads/b0ccf3955ef94f1ed6d5b8ce754d89eb/gtk.css)
* `border.svg`: ![border.svg](/uploads/40293e6e73a37a639ec84b0f8f171ec9/border.svg)
* `settings.ini`: [settings.ini](/uploads/f53a9383e7770819d6dc9a006fdb616e/settings.ini)
* GTK3 button hello world tutorial: [button.cpp](/uploads/d4d86e4f34ae1dd39b6f65dac01b58dd/button.cpp)
Here is our background:
We have an Eclipse 4.x based product which runs on a RHEL 7.x environment. We use the Clearlook Phenix theme, see https://github.com/jpfleury/clearlooks-phenix, where the actual theme variation we use can be found here: https://github.com/iloveeclipse/clearlooks-phenix/tree/eclipse-patches.
Recently we upgraded from RHEL 7.2 (GTK 3.14.13) to RHEL 7.4 (GTK 3.22.10). We observed the problem after upgrading.
We are not sure if this is an actual GTK 3.22 bug, or if GTK 3.14 happened to render the image border as it did and therefore the Clearlook Phenix theme provides `border.svg` as it does. If this is a theme problem and not a GTK3 problem, hints on what the theme does wrong would be greatly appreciated.
Regardless of the outcome in this ticket, we will try to adapt our theme to get some normal looking buttons.https://gitlab.gnome.org/GNOME/gtk/-/issues/209GtkSizeGroup and margins resulting in wrong size2018-05-04T08:51:35ZFelipe Ferreira da Silvaferreiradaselva@protonmail.comGtkSizeGroup and margins resulting in wrong sizeFor example, in the app I'm working, I have the following layout:
GtkBox-horizontal [GtkLabel, GtkScale, GtkLabel]
All the GtkBox-horizontal are part of a GtkSizeGroup (vertical)
Here is a group where the first GtkBox-horizontal has 1...For example, in the app I'm working, I have the following layout:
GtkBox-horizontal [GtkLabel, GtkScale, GtkLabel]
All the GtkBox-horizontal are part of a GtkSizeGroup (vertical)
Here is a group where the first GtkBox-horizontal has 18px of top-margin and the following GtkBox-horizontal have 6px of top-margin:
![bad](/uploads/809b30749a269d5f81205a0e7f281e72/bad.png)
The result is the first one with the expected height and the others with wrong height (bigger than the first one).
Now, if I make the top-margin of the first also 6px, they have the same height, as expected:
![ok](/uploads/88be873c0e43939bb3f015abc9d873c3/ok.png)
What I would expect is that all widgets would have the same height, independent of their margin.https://gitlab.gnome.org/GNOME/gtk/-/issues/211Gnome Nautilus drag and drop moving/copying frequently delayed2019-09-09T09:31:59Zmark roiGnome Nautilus drag and drop moving/copying frequently delayedFor several months now I've been experiencing, almost daily, the same bug reported here from another person: https://gitlab.gnome.org/GNOME/nautilus/issues/93
i.e. drag and drop file move/copy actions in Nautilus are frequently not acte...For several months now I've been experiencing, almost daily, the same bug reported here from another person: https://gitlab.gnome.org/GNOME/nautilus/issues/93
i.e. drag and drop file move/copy actions in Nautilus are frequently not acted upon until after a long delay. It seems to happen randomly and when it does, further actions are silently queued with no indication, until they all happen at once after a while.
Today after trying to move a couple of pdf files to a subdirectory (in nautilus), I finally got these error messages after about 30 seconds:
```
There was an error getting information about "%D0%FC%E03%12V" Operation not supported
There was an error getting information about "%01" Operation not supported
There was an error getting information about "" Operation not supported
```
Repeating the operation worked fine.
This is in Arch linux with gnome 3.28.1-1, gtk3 3.22.30-1, wayland 1.14.0-1.
I'm opening this new bug report as the previous one was closed with the message: "Dnd issues and reliability are usually gtk+, so closing here for now. Feel free to open a bug in bugzilla.gnome.org for GTK+ in case you find it's wayland and you have some more info."
(edit: fixing markdown)https://gitlab.gnome.org/GNOME/gtk/-/issues/213gtk_window_present_with_time() with GDK_CURRENT_TIME is ignored on Wayland2018-05-01T16:22:38ZFelix Riemanngtk_window_present_with_time() with GDK_CURRENT_TIME is ignored on WaylandThis is a follow up to this eog bug (reported by which can't be reassigned due to the Gitlab migration: https://bugzilla.gnome.org/show_bug.cgi?id=795690
## Steps to reproduce
1. Use Nautilus to open a picture in Eye of GNOME
2. Wai...This is a follow up to this eog bug (reported by which can't be reassigned due to the Gitlab migration: https://bugzilla.gnome.org/show_bug.cgi?id=795690
## Steps to reproduce
1. Use Nautilus to open a picture in Eye of GNOME
2. Wait for eog to show up
3. Try opening the same picture from a Nautilus window again
## Current behavior
The already opened Eye of GNOME window stays in the background / remains unfocussed.
## Expected outcome
The existing Eye of GNOME window should be focussed / brought to the front.
## Version information
This is on F28 with GTK+ 3.22.30 and Eye of GNOME 3.28.1.
## Additional information
Debugging shows that `gtk_window_present_with_time()` gets called correctly by EogApplication's open()-callback. The problem seems to be here that `GDK_CURRENT_TIME` is used as the timestamp parameter (there's no event timestamp available at that time). This seems to be ignored by the GdkWayland code: [gdkwindow-wayland.c](https://gitlab.gnome.org/GNOME/gtk/blob/33bec5a4fbd95509f6e3b7a457325aeb8b0a0608/gdk/wayland/gdkwindow-wayland.c#L3440)
This however means that `gdk_window_present()` becomes a no-op, as it's just a nice way of saying `gdk_window_present_with_time(x, GDK_CURRENT_TIME)`.
Running on X11 or with GDK_BACKEND=x11 makes it behave correctly.
It's also reproducible with Nautilus if you try opening a folder twice (e.g. from the commandline).
As an experiment I tried using `time(NULL)` as timestamp parameter instead and it worked, but I am not sure if that counts as a solution.https://gitlab.gnome.org/GNOME/gtk/-/issues/215A hung GTK application cannot be closed2018-05-02T10:47:19ZEmmanuele BassiA hung GTK application cannot be closedKWin implements the ping protocol like described in http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#idm140146176692592 after sending a `WM_DELETE_WINDOW`. Thus KWin can only detect hung clients which it tried to close. This ...KWin implements the ping protocol like described in http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#idm140146176692592 after sending a `WM_DELETE_WINDOW`. Thus KWin can only detect hung clients which it tried to close. This does no longer work with the client-side-decorated GTK applications as there is no close button provided by the window manager.
## Steps to reproduce
1. Run KWin
2. Run gtk3-demo from a Konsole
3. Press `ctrl+z` in Konsole
4. try to close the window by clicking the close button
## Actual result:
nothing
## Expected result:
KWin shows the dialog for hung applications.
Note: this affects our stable release 4.11 which got released in July 2013. We cannot adjust this version as sending more pings would be a new feature and the dialog shown for hung applications is explicitly stating that the user tried to close the window. With CSD one doesn't know that the user tried to close the window, thus the dialog would need a rewording which is not possible as the language is frozen.
## Original bug
* [729786](https://bugzilla.gnome.org/show_bug.cgi?id=729786) - A hung GTK application cannot be closed
## Duplicates
* [734919](https://bugzilla.gnome.org/show_bug.cgi?id=734919) - If an application freezes, clicking on the client-side decorations (CSD)' close button on a headerbar doesn't tell the window manager
## Blocks
* [729721](https://bugzilla.gnome.org/show_bug.cgi?id=729721) - CSD compatibility issues
## Comments
I think compositors should always detect unresponsive applications, not just in response to close.
-- Matthias Clasen [gtk+ developer] 2014-05-11 14:11:28 UTC
- - -
> I think compositors should always detect unresponsive applications, not just in
> response to close.
well we don't and thus it affects our stable release. The NETWM spec is quite clear that it's only intended after a DELETE request. Thus we don't know how a client would respond to that. It's possible that it only expects it after getting a DELETE request. This would need an update to the NETWM spec to cover the usecase.
Also I don't understand why you think that compositors should always detect that. It has never been a problem and we support compositing now since 2008.
-- Martin Gräßlin [reporter] 2014-05-11 14:41:43 UTC
- - -
>> I think compositors should always detect unresponsive applications, not just in
>> response to close.
> well we don't and thus it affects our stable release. The NETWM spec is quite
> clear that it's only intended after a DELETE request. Thus we don't know how a
> client would respond to that.
First of all, the compositor should not mess with the _NET_WM_PING protocol at all, it's for the windowmanager and has little to no relation to the compositor.
Second, actually:
"A Window Manager can use this protocol at any time"
"A participating Client receiving this message MUST send it back to the root window immediately"
Just that 3rd there's also little reason to play ping pong on the X11 server for no actual cause and then annoy the user with an offer to kill a client out of the void.
Anybodies personal opinion on this does really not matter, the specification doesn't mandate any particular behavior, so fact remains that if a user tries to close a window with a CSD on a stopped or hung process, he simply won't be able to do and we won't be able to detect this wish and offer him a kill instead.
At "best", we could ping all clients every 10 seconds and popup kill dialogs into the users face - which he hopefully doesn't confirm accidentally then... (i'd then immediately file a bug for an option to disable such silly behavior)
-- thomas.luebking@gmail.com 2014-05-13 21:26:19 UTC
- - -
> I think compositors should always detect unresponsive applications, not just in
> response to close.
I partially take this back. I thought mutter does this, but it turns out it doesn't, actually. Its behavior for non-responsive clients is pretty bad, actually. Regardless whether they are csd or not.
-- Matthias Clasen [gtk+ developer] 2014-05-14 19:02:33 UTC
- - -
mutter sends out a ping whenever activating a window, either with Alt+Tab, mouse focus or click-to-focus.
-- Jasper St. Pierre (not reading bugmail) [developer] 2014-05-14 19:28:16 UTC
- - -
> First of all, the compositor should not mess with the _NET_WM_PING protocol at
> all, it's for the windowmanager and has little to no relation to the
> compositor.
Compositor, here, was used in the "compositing window manager" sense. Since mutter is both the compositor and window manager, and the terminology is "compositor" in Wayland, the two are often used interchangeably in GNOME. Sorry for the confusion.
-- Jasper St. Pierre (not reading bugmail) [developer] 2014-05-14 19:32:36 UTC
- - -
> mutter sends out a ping whenever activating a window
Interesting.
How do you catch a client that freezes while it's active (eg. because the user interacted with it)?
Or do you ping on close attempts as well?
-- thomas.luebking@gmail.com 2014-05-14 19:55:51 UTC
- - -
> > mutter sends out a ping whenever activating a window
> Interesting.
> How do you catch a client that freezes while it's active (eg. because the user
> interacted with it)?
We apparently don't right now. We could do it on clicks, since we take a passive grab on the window that we replay, or we could do it any time we update _NET_WM_USER_TIME.
> Or do you ping on close attempts as well?
We do that also.
-- Jasper St. Pierre (not reading bugmail) [developer] 2014-05-14 21:05:34 UTC
- - -
Does it at least work when trying to close the window with Alt+F4 or a WM shortcut?
-- Jasper St. Pierre (not reading bugmail) [developer] 2014-06-25 14:09:20 UTC
- - -
> Does it at least work when trying to close the window with Alt+F4 or a WM
> shortcut?
Alt + F4 works, but one cannot call that a solution as users don't know that shortcut.
-- Martin Gräßlin [reporter] 2014-06-25 14:21:28 UTC
- - -
OK. I was checking to see if we were actually treating _NET_WM_PING events properly.
Well, it's obvious that if our application is hung, we can't really respond to click events. What would you like to see us do?
-- Jasper St. Pierre (not reading bugmail) [developer] 2014-06-25 14:38:41 UTC
- - -
> OK. I was checking to see if we were actually treating _NET_WM_PING events
> properly.
fair enough :-)
>
> Well, it's obvious that if our application is hung, we can't really respond to
> click events. What would you like to see us do?
This one is difficult and to me a deal breaker (unfortunately). A possible solution might be to expose the geometry of the close button and the window manager to install a passive grab on the window to check whether the close button got clicked and send it a ping. That would though require quite some changes in existing window managers.
To me it looks like there will be a bunch of properties a window manager needs to support and if one of them is missing GTK shouldn't use client side decorations. To be quite honest: the broken close brings me very close to enforce server side decorations for GTK+ windows. We have a strong "form follows functionality" approach and as I said: not being able to close hung applications is a deal breaker to me.
-- Martin Gräßlin [reporter] 2014-06-26 06:37:07 UTC
- - -
> This one is difficult and to me a deal breaker (unfortunately). A possible
> solution might be to expose the geometry of the close button and the window
> manager to install a passive grab on the window to check whether the close
> button got clicked and send it a ping. That would though require quite some
> changes in existing window managers.
Why can't you always send the ping in your passive grab that you use to raise the window, like we do?
-- Jasper St. Pierre (not reading bugmail) [developer] 2014-06-26 11:51:54 UTC
- - -
>
> Why can't you always send the ping in your passive grab that you use to raise
> the window, like we do?
That would require us to completely rework the message we show or introduce a different dedicated one. Right now it's just for closing:
"You tried to close window..."
-- Martin Gräßlin [reporter] 2014-06-26 12:06:30 UTC
- - -
And it increases likelihood of false positives (I/O pending or simply stopped clients)
And we bother the client with useless chat (as it's completely irrelevant whether it is responsive in this condition)
And, most important: what about the active client (where we do not hold an unmodified passive grab to not accidentally "confuse" the client of main interaction)?
-- thomas.luebking@gmail.com 2014-06-26 12:18:17 UTChttps://gitlab.gnome.org/GNOME/gtk/-/issues/221Closing displays2022-12-06T13:19:18ZBugzillaClosing displays## Submitted by Owen Taylor
**[Link to original bug (#85715)](https://bugzilla.gnome.org/show_bug.cgi?id=85715)**
## Description
http://mail.gnome.org/archives/gtk-devel-list/2002-June/msg00129.html
Describes a plan for adding the ...## Submitted by Owen Taylor
**[Link to original bug (#85715)](https://bugzilla.gnome.org/show_bug.cgi?id=85715)**
## Description
http://mail.gnome.org/archives/gtk-devel-list/2002-June/msg00129.html
Describes a plan for adding the ability to close displays to
GTK+-2.2. Some additional particular items that need fixing:
- gdk_x11_display_finalize() needs some careful going
over; there is a lot of stuff it leaves un-freed. For
instance the ClientFilter objects in the client_filters
list.
- gdk_x11_screen_finalize() also needs a lot of attention.
- gdk_display_close() just unrefs currently; it *should*
unref (if the display hasn't already been closed) but
has to do a lot more as well.
- A lot of caches need to be freed when the display is dispposed;
along with ones mentioned in the mail message, a few others
are the scratch_image information in gdkimage.c and
the pixmap catch in gtktree.c. (Although gtktree.c could
just be left, since it's a GTK_ENABLE_BROKEN widget.)
Version: 3.0.xhttps://gitlab.gnome.org/GNOME/gtk/-/issues/242Cannot follow shortcuts (*.lnk files) to Windows directories2023-04-02T10:40:01ZBugzillaCannot follow shortcuts (*.lnk files) to Windows directories## Submitted by benji
Assigned to **gtk-win32 maintainers**
**[Link to original bug (#163544)](https://bugzilla.gnome.org/show_bug.cgi?id=163544)**
## Description
recognize *.lnk as links and not as picture files
Other informatio...## Submitted by benji
Assigned to **gtk-win32 maintainers**
**[Link to original bug (#163544)](https://bugzilla.gnome.org/show_bug.cgi?id=163544)**
## Description
recognize *.lnk as links and not as picture files
Other information:
I'm sorry for this report. I didn't really have time to check the whole
bug-list. just look at this as a well meant input for improvement. LOW PRIORITY
Version: 2.4.xhttps://gitlab.gnome.org/GNOME/gtk/-/issues/264Top button of Wacom Volito 2's pen only produce right click2022-10-19T20:24:54ZBugzillaTop button of Wacom Volito 2's pen only produce right click## Submitted by Joakim
Assigned to **gtk-win32 maintainers**
**[Link to original bug (#349864)](https://bugzilla.gnome.org/show_bug.cgi?id=349864)**
## Description
Please describe the problem:
I'm using a Wacom Volito 2 tablet (dr...## Submitted by Joakim
Assigned to **gtk-win32 maintainers**
**[Link to original bug (#349864)](https://bugzilla.gnome.org/show_bug.cgi?id=349864)**
## Description
Please describe the problem:
I'm using a Wacom Volito 2 tablet (driver v. 4.95-6) with Gnome 2.2.12 under WindowsXP and GTK+ 2 (v. 2.8.18.)
The top button can't be assigned to do anything, all it does is right clicking. The button doesn't appear in the Device dialog.
Steps to reproduce:
1. Open the configuration panel for Wacom from the control panel.
2. Set the top button to erase (or anything else for that matter)
3. Start Gimp and create a new document
4. Press the topbutton somewhere on the canvas
Actual results:
Instead of erasing, the right click menu appears instead
Expected results:
Erase
Does this happen every time?
Yes
Other information:
As said before, there is no graphical representation of the button in the Device dialog.
Version: 2.10.x
### Blocking
* [Bug 784342](https://bugzilla.gnome.org/show_bug.cgi?id=784342)
### See also
* [Bug 784342](https://bugzilla.gnome.org/show_bug.cgi?id=784342)https://gitlab.gnome.org/GNOME/gtk/-/issues/277scrollbar not always displayed when result is too large2020-10-19T12:08:04ZBugzillascrollbar not always displayed when result is too large## Submitted by Teppo Turtiainen
Assigned to **gtk..@..tk.org**
**[Link to original bug (#407886)](https://bugzilla.gnome.org/show_bug.cgi?id=407886)**
## Description
The scrollbar is not displayed when the results is just slightl...## Submitted by Teppo Turtiainen
Assigned to **gtk..@..tk.org**
**[Link to original bug (#407886)](https://bugzilla.gnome.org/show_bug.cgi?id=407886)**
## Description
The scrollbar is not displayed when the results is just slightly larger then the window.
Steps to reproduce:
1. Press 1 sixteen times in Basic mode.
Please see attached screenshot.https://gitlab.gnome.org/GNOME/gtk/-/issues/292GtkRanges should send ::change-value even if not realized2018-05-06T19:02:58ZBugzillaGtkRanges should send ::change-value even if not realized## Submitted by Björn Lindqvist
**[Link to original bug (#524203)](https://bugzilla.gnome.org/show_bug.cgi?id=524203)**
## Description
In gtk_range_scroll_event() there is a check to see if the widget is realized before it sends the...## Submitted by Björn Lindqvist
**[Link to original bug (#524203)](https://bugzilla.gnome.org/show_bug.cgi?id=524203)**
## Description
In gtk_range_scroll_event() there is a check to see if the widget is realized before it sends the ::change-event. That check seems redundant and contrary to the API doc which doesn't state that the widget has to be realized before it sends ::change-event.https://gitlab.gnome.org/GNOME/gtk/-/issues/319gdk_window_set_urgency_hint is not implemented on quartz2023-03-25T14:25:52ZBugzillagdk_window_set_urgency_hint is not implemented on quartz## Submitted by Christian Hergert `@chergert`
Assigned to **gtk-quartz maintainers**
**[Link to original bug (#589742)](https://bugzilla.gnome.org/show_bug.cgi?id=589742)**
## Description
The GdkWindow backend for quartz currently...## Submitted by Christian Hergert `@chergert`
Assigned to **gtk-quartz maintainers**
**[Link to original bug (#589742)](https://bugzilla.gnome.org/show_bug.cgi?id=589742)**
## Description
The GdkWindow backend for quartz currently does not implement gdk_window_set_urgency_hint().
This should be set using NSApplication:requestUserAttention.
In NSApplication, there are currently two attention types, information and critical. Information will go away after 1 second wile critical will stay until the application gets focus.
To map closest to the implementation in X, I'd suggest the critical attention type.
Version: 2.19.xhttps://gitlab.gnome.org/GNOME/gtk/-/issues/352Allow key bindings to paste PRIMARY selection2023-08-05T06:24:23ZBugzillaAllow key bindings to paste PRIMARY selection## Submitted by Andy Spencer
**[Link to original bug (#643391)](https://bugzilla.gnome.org/show_bug.cgi?id=643391)**
## Description
Created attachment 182026
Gtk 3 patch to add signal for pasting alternate selections
I would like t...## Submitted by Andy Spencer
**[Link to original bug (#643391)](https://bugzilla.gnome.org/show_bug.cgi?id=643391)**
## Description
Created attachment 182026
Gtk 3 patch to add signal for pasting alternate selections
I would like to have a way to insert the PRIMARY selection into a GtkEntry/GtkTextView using only the keyboard. I commonly use a laptop that only has two buttons, and trying to press them simultaneously can be difficult at times.
I wrote a patch that adds a "paste-selection" signal to GtkEntry and GtkTreeView. This is very similar to the "paste-clipboard" signal but takes a parameter for which selection to use. Then a key-binding can added to ~/.config/gtk-3.0/gtk.css to paste the selection.
I found this this related Chromium bug while searching for information:
http://code.google.com/p/chromium/issues/detail?id=28231
For reference, I also sent a message to the mailing list:
https://mail.gnome.org/archives/gtk-devel-list/2011-February/msg00097.html
**Patch 182026**, "Gtk 3 patch to add signal for pasting alternate selections":
[0001-Add-paste-selection-keybind-signal.patch](/uploads/162fe4667780c53fd7105461ab993654/0001-Add-paste-selection-keybind-signal.patch)
### See also
* [Bug 584236](https://bugzilla.gnome.org/show_bug.cgi?id=584236)https://gitlab.gnome.org/GNOME/gtk/-/issues/357Gdk-3.0.gir incorrectly generated with separate build dir2023-03-25T14:26:41ZBugzillaGdk-3.0.gir incorrectly generated with separate build dir## Submitted by Eitan Isaacson
**[Link to original bug (#647729)](https://bugzilla.gnome.org/show_bug.cgi?id=647729)**
## Description
If you do the following:
tar xvfj gtk+-3.0.8.tar.bz2
mkdir builddir
cd builddir
../gtk+-3.0.8/con...## Submitted by Eitan Isaacson
**[Link to original bug (#647729)](https://bugzilla.gnome.org/show_bug.cgi?id=647729)**
## Description
If you do the following:
tar xvfj gtk+-3.0.8.tar.bz2
mkdir builddir
cd builddir
../gtk+-3.0.8/configure
make
You will notice that the contents of Gdk-3.0.gir doesn't contain the gtype info for enumerations (for example "EventType"). This breaks deb packaging because it uses a separate build dir.
This has to do with there being a gdkenumtypes.h in the distribution tarball, and also one created in the build dir.
I think the appropriate solution would be to not have gdkenumtypes.[ch] in the EXTRA_DIST. But it is sort of hard to decrypt the reasoning for different bits in Makefile.am.
Version: 3.0.xhttps://gitlab.gnome.org/GNOME/gtk/-/issues/364gtk_clipboard_set_with_data/set_with_owner is binding-unfriendly2020-09-30T08:09:47ZBugzillagtk_clipboard_set_with_data/set_with_owner is binding-unfriendly## Submitted by Pavel Holejsovsky
**[Link to original bug (#656312)](https://bugzilla.gnome.org/show_bug.cgi?id=656312)**
## Description
These two methods are not bindable through gobject-introspection because they contain two callb...## Submitted by Pavel Holejsovsky
**[Link to original bug (#656312)](https://bugzilla.gnome.org/show_bug.cgi?id=656312)**
## Description
These two methods are not bindable through gobject-introspection because they contain two callbacks, moreover with strange lifetime rules.
Version: 3.1.x
### Blocking
* [Bug 782595](https://bugzilla.gnome.org/show_bug.cgi?id=782595)https://gitlab.gnome.org/GNOME/gtk/-/issues/383gdk_property_get is not available with TypeError in gir2021-04-03T12:52:29ZBugzillagdk_property_get is not available with TypeError in gir## Submitted by Takao Fujiwara `@fujiwarat`
**[Link to original bug (#670509)](https://bugzilla.gnome.org/show_bug.cgi?id=670509)**
## Description
When I run Gdk.property_get(), it causes a TypeError.
% python a.py
Traceback (most ...## Submitted by Takao Fujiwara `@fujiwarat`
**[Link to original bug (#670509)](https://bugzilla.gnome.org/show_bug.cgi?id=670509)**
## Description
When I run Gdk.property_get(), it causes a TypeError.
% python a.py
Traceback (most recent call last):
File "a.py", line 124, in `<module>`
print Gdk.property_get(root_window, xkb_rules_name, xa_string, 0, 1024, pdelete)
File "/usr/lib64/python2.7/site-packages/gi/types.py", line 43, in function
return info.invoke(*args, **kwargs)
TypeError: Could not caller allocate argument 6 of callable property_get
% cat a.py
from gi.repository import Gdk
root_window = Gdk.get_default_root_window()
net_desktop_names = Gdk.Atom.intern('_NET_DESKTOP_NAMES', False)
xa_string = Gdk.Atom.intern('UTF8_STRING', False)
print Gdk.property_get(root_window, net_desktop_names, xa_string, 0, 1024, 0)
I'm attaching the patch.https://gitlab.gnome.org/GNOME/gtk/-/issues/391GtkTreeView: horizontal and vertical-separator not working properly2023-03-25T14:31:59ZBugzillaGtkTreeView: horizontal and vertical-separator not working properly## Submitted by kur..@..ine.de
Assigned to **gtk..@..tk.org**
**[Link to original bug (#673094)](https://bugzilla.gnome.org/show_bug.cgi?id=673094)**
## Description
Created attachment 210874
example program, five red cells on blac...## Submitted by kur..@..ine.de
Assigned to **gtk..@..tk.org**
**[Link to original bug (#673094)](https://bugzilla.gnome.org/show_bug.cgi?id=673094)**
## Description
Created attachment 210874
example program, five red cells on black background
Hi there,
GtkTreeView does not handle the style properties horizontal-separator and vertical-separator properly: cells colored by the CellRenderer using "background-gdk" will also paint the background usually set by "cell-background-gdk".
Furthermore the default value for both separators (2 Pix. in GTK2) is set to zero now.
Please try the attached example, the rows should be separated by black lines.
Thanks in advance
**Attachment 210874**, "example program, five red cells on black background":
[treeview-gtk3.c](/uploads/4efbc75789ebe1f64679256beacf2510/treeview-gtk3.c)
Version: 3.2.xhttps://gitlab.gnome.org/GNOME/gtk/-/issues/404no introspection annotation for GtkContainer::set-focus-child to indicate opt...2023-03-25T14:27:25ZBugzillano introspection annotation for GtkContainer::set-focus-child to indicate optional parameter## Submitted by Phil Clayton `@pclayton`
**[Link to original bug (#682033)](https://bugzilla.gnome.org/show_bug.cgi?id=682033)**
## Description
The first parameter of GtkContainer::set-focus-child (of type GtkWidget) is optional. H...## Submitted by Phil Clayton `@pclayton`
**[Link to original bug (#682033)](https://bugzilla.gnome.org/show_bug.cgi?id=682033)**
## Description
The first parameter of GtkContainer::set-focus-child (of type GtkWidget) is optional. However, there is no introspection annotation indicating this.
This may be the case for GtkContainer::add and GtkContainer::remove signals too.
Currently, none of the four GtkContainer signals have a gtk-doc comment, so cannot include introspection annotations.
Version: 3.22.xhttps://gitlab.gnome.org/GNOME/gtk/-/issues/3826Styling for inline toolbar is broken when a separator is used2023-03-25T14:27:49ZBugzillaStyling for inline toolbar is broken when a separator is used## Submitted by David Zeuthen
**[Link to original bug (#684325)](https://bugzilla.gnome.org/show_bug.cgi?id=684325)**
## Description
Screenshot says it all. See attached.
Version: 3.22.x## Submitted by David Zeuthen
**[Link to original bug (#684325)](https://bugzilla.gnome.org/show_bug.cgi?id=684325)**
## Description
Screenshot says it all. See attached.
Version: 3.22.xhttps://gitlab.gnome.org/GNOME/gtk/-/issues/433SEGV if use GtkCellRendererCombo with appears-as-list is true2023-04-03T18:49:31ZBugzillaSEGV if use GtkCellRendererCombo with appears-as-list is true## Submitted by okimoto
**[Link to original bug (#703511)](https://bugzilla.gnome.org/show_bug.cgi?id=703511)**
## Description
Created attachment 248282
Sample code to reproduce problems
I get some errors when I use GtkCellRenderer...## Submitted by okimoto
**[Link to original bug (#703511)](https://bugzilla.gnome.org/show_bug.cgi?id=703511)**
## Description
Created attachment 248282
Sample code to reproduce problems
I get some errors when I use GtkCellRendererCombo with appears-as-list is true or 1.
On the other hand, I get no errors when appears-as-list is false or 0.
I checked several versions of Gtk+ as followings.
Please refer attached sample code.
- 2.28.14 (no SEGV but display CRITICAL message)
- 3.8.2 (no SEGV but display CRITICAL message)
- 3.9.6 (SEGV)
- master@96abd26 (SEGV)
How to reproduce.
1. Build sample code
for Gtk2
> $ gcc -g3 `pkg-config --cflags --libs gtk+-2.0` sample3.c -o sample3-gtk2
gtkrc:
> style "appears-as-list"
> {
> GtkComboBox::appears-as-list = 1
> }
>
> class "GtkComboBox" style "appears-as-list"
for Gtk3
> $ gcc -g3 `pkg-config --cflags --libs gtk+-3.0` sample3.c -o sample3-gtk3
gtk.css:
> * {
> -GtkComboBox-appears-as-list: true;
> }
2. Run sample and change combobox value.
3-1. Displays CRITICAL message as following
On 2.28.14 and 3.8.2.
> (sample3-gtk2:32223): GLib-GObject-CRITICAL **: g_object_notify: assertion `G_IS_OBJECT (object)' failed
3-2. SEGV and get backtrace as following
On 3.9.2 and master@96abd26.
> Program received signal SIGSEGV, Segmentation fault.
> g_type_check_instance_cast (type_instance=type_instance@entry=0x7a64b0, iface_type=iface_type@entry=80) at gtype.c:4008
> 4008 node = lookup_type_node_I (type_instance->g_class->g_type);
> (gdb) bt
> #0 g_type_check_instance_cast (type_instance=type_instance@entry=0x7a64b0, iface_type=iface_type@entry=80) at gtype.c:4008
> #1 0x00007ffff7797889 in gtk_combo_box_set_active_internal (combo_box=combo_box@entry=0x7a64b0, path=path@entry=0x7bb540)
> at gtkcombobox.c:4383
> #2 0x00007ffff779c5be in gtk_combo_box_set_active_iter (combo_box=0x7a64b0, iter=<optimized out>) at gtkcombobox.c:4440
> #3 0x00007ffff779c9c1 in gtk_combo_box_list_button_released (widget=<optimized out>, event=<optimized out>, data=<optimized out>)
> at gtkcombobox.c:3753
> #4 0x00007ffff78454ae in _gtk_marshal_BOOLEAN__BOXEDv (closure=0x7afa10, return_value=0x7fffffffd490, instance=<optimized out>,
> args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x6562a0) at gtkmarshalers.c:130
> #5 0x00007ffff6096e37 in _g_closure_invoke_va (closure=0x7afa10, return_value=0x7fffffffd490, instance=0x6848f0, args=0x7fffffffd588,
> n_params=1, param_types=0x6562a0) at gclosure.c:840
> #6 0x00007ffff60b0a99 in g_signal_emit_valist (instance=0x6848f0, signal_id=<optimized out>, detail=<optimized out>,
> var_args=var_args@entry=0x7fffffffd588) at gsignal.c:3234
> #7 0x00007ffff60b1362 in g_signal_emit (instance=instance@entry=0x6848f0, signal_id=<optimized out>, detail=detail@entry=0)
> at gsignal.c:3382
> #8 0x00007ffff798a224 in gtk_widget_event_internal (widget=widget@entry=0x6848f0, event=event@entry=0x7d10d0) at gtkwidget.c:7110
> #9 0x00007ffff798a4f9 in gtk_widget_event (widget=widget@entry=0x6848f0, event=event@entry=0x7d10d0) at gtkwidget.c:6772
> #10 0x00007ffff784379c in propagate_event_up (topmost=<optimized out>, event=<optimized out>, widget=0x6848f0) at gtkmain.c:2394
> #11 propagate_event (widget=<optimized out>, event=0x7d10d0, captured=<optimized out>, topmost=0x0) at gtkmain.c:2502
> #12 0x00007ffff784506a in gtk_main_do_event (event=0x7d10d0) at gtkmain.c:1717
> #13 0x00007ffff744a342 in gdk_event_source_dispatch (source=source@entry=0x6137a0, callback=<optimized out>, user_data=<optimized out>)
> at gdkeventsource.c:364
> #14 0x00007ffff5da6a06 in g_main_dispatch (context=0x613890) at gmain.c:3058
> #15 g_main_context_dispatch (context=context@entry=0x613890) at gmain.c:3634
> #16 0x00007ffff5da6d58 in g_main_context_iterate (context=0x613890, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
> at gmain.c:3705
> #17 0x00007ffff5da715a in g_main_loop_run (loop=0x789470) at gmain.c:3899
> #18 0x00007ffff784458d in gtk_main () at gtkmain.c:1157
> #19 0x0000000000402607 in main (argc=1, argv=0x7fffffffd988) at sample3.c:363
Thanks.
**Attachment 248282**, "Sample code to reproduce problems":
[sample3.c](/uploads/7da6574b139d4c168ae1b8902a20d38e/sample3.c)
### See also
* [Bug 729651](https://bugzilla.gnome.org/show_bug.cgi?id=729651)
* [Bug 793745](https://bugzilla.gnome.org/show_bug.cgi?id=793745)https://gitlab.gnome.org/GNOME/gtk/-/issues/534[GtkImage] Symbolic emblems are not recolored2020-10-04T12:46:01ZBugzilla[GtkImage] Symbolic emblems are not recolored## Submitted by ria..@..il.com
**[Link to original bug (#745201)](https://bugzilla.gnome.org/show_bug.cgi?id=745201)**
## Description
if emblem is symbolic themed icon (like audio-volume-low-symbolic), it will not be recolored to fo...## Submitted by ria..@..il.com
**[Link to original bug (#745201)](https://bugzilla.gnome.org/show_bug.cgi?id=745201)**
## Description
if emblem is symbolic themed icon (like audio-volume-low-symbolic), it will not be recolored to foreground color, but use ugly default gray instead.
occurs when use gtk_image_set_from_gicon with EmblemedIcon.https://gitlab.gnome.org/GNOME/gtk/-/issues/550Black background appears briefly before window gets drawn2018-05-04T11:52:59ZBugzillaBlack background appears briefly before window gets drawn## Submitted by mrb..@..il.com
**[Link to original bug (#748498)](https://bugzilla.gnome.org/show_bug.cgi?id=748498)**
## Description
Created attachment 302400
application startup video
When an application is started, a black backg...## Submitted by mrb..@..il.com
**[Link to original bug (#748498)](https://bugzilla.gnome.org/show_bug.cgi?id=748498)**
## Description
Created attachment 302400
application startup video
When an application is started, a black background is drawn first, before the application's window content appears.
This is only happening when I'm not using a compositor. If compositing is turned on, all the windows get drawn nicely (without the black background appearing).
I'm using GNOME applications outside of GNOME; I tested this with Openbox/Compton and with Xfce4's window manager/compositor and they both had the issue. It's also only happening with GTK3+ applications, GTK2 and applications using other toolkits get drawn without the black background.
I attached a short video clip which demonstrates it.
**Attachment 302400**, "application startup video":
![vid](/uploads/424c4b97eb3b2245f700333dd105a1a5/vid.webm)
Version: 3.22.x
### See also
* [Bug 767212](https://bugzilla.gnome.org/show_bug.cgi?id=767212)https://gitlab.gnome.org/GNOME/gtk/-/issues/593Children of ScrolledWindow receive scroll events when scrolling2022-01-25T21:58:53ZBugzillaChildren of ScrolledWindow receive scroll events when scrolling## Submitted by Lukas
Assigned to **gtk..@..tk.org**
**[Link to original bug (#760644)](https://bugzilla.gnome.org/show_bug.cgi?id=760644)**
## Description
When placing widgets that receive scroll events (spinbutton, scale, etc) i...## Submitted by Lukas
Assigned to **gtk..@..tk.org**
**[Link to original bug (#760644)](https://bugzilla.gnome.org/show_bug.cgi?id=760644)**
## Description
When placing widgets that receive scroll events (spinbutton, scale, etc) inside of a scrolledwindow they receive scroll events when the mouse cursor happens to be over them while scrolling. It goes like this: user finds a 'safe' area to start scrolling, scrolls on and on, until a widget is hit. The scroll events now get directed to the widget, user is unhappy because he inadvertently changed a value and has to find a new place to continue scrolling.
Proposed fix: When scrolling, the scrolledwindow captures all scroll events until the mouse is moved by a certain amount.
Version: 3.22.x
### See also
* [Bug 738859](https://bugzilla.gnome.org/show_bug.cgi?id=738859)https://gitlab.gnome.org/GNOME/gtk/-/issues/607[HighContrast(|Inverse)] GtkColorScale is unthemed2020-03-27T13:15:25ZBugzilla[HighContrast(|Inverse)] GtkColorScale is unthemed## Submitted by Arnaud B. `@arnaudb`
**[Link to original bug (#764230)](https://bugzilla.gnome.org/show_bug.cgi?id=764230)**
## Description
When using HighContrast / HighContrastInverse themes, a GtkColorScale looks like an usual sc...## Submitted by Arnaud B. `@arnaudb`
**[Link to original bug (#764230)](https://bugzilla.gnome.org/show_bug.cgi?id=764230)**
## Description
When using HighContrast / HighContrastInverse themes, a GtkColorScale looks like an usual scale with a rainbow/alpha gradient. I think the scale should be at least larger/higher, so it’s easier to spot the selected color:
scale.color > :first-child > :first-child { min-width:20px; min-height:20px }
but it probably should be “just” synced with Adwaita look.
Version: 3.20.xhttps://gitlab.gnome.org/GNOME/gtk/-/issues/611CSS margin transition not smooth2023-03-25T14:28:12ZBugzillaCSS margin transition not smooth## Submitted by Arnaud B. `@arnaudb`
**[Link to original bug (#764524)](https://bugzilla.gnome.org/show_bug.cgi?id=764524)**
## Description
Quite all CSS transitions are working smoothly, but it’s not the case of a transition of a “...## Submitted by Arnaud B. `@arnaudb`
**[Link to original bug (#764524)](https://bugzilla.gnome.org/show_bug.cgi?id=764524)**
## Description
Quite all CSS transitions are working smoothly, but it’s not the case of a transition of a “margin” property. You can test it for example with the following code in a Widget Factory, but I had initially the problem with a “modelbutton” node (and it’s tested either with “linear” or “ease”).
button.toggle {
margin:0px 5px;
transition:margin 2s linear 0s;
}
button.toggle:hover {
margin:0px;
}
I’d say the problem is that the transition is calculated pixel by pixel but with one more step than really needed, so it’s waiting twice at the start or end step (depending of “ease” or “linear”) of the transition.
Version: 3.20.xhttps://gitlab.gnome.org/GNOME/gtk/-/issues/617GtkExpander label and child no longer fill the available space in 3.202019-11-13T10:51:00ZBugzillaGtkExpander label and child no longer fill the available space in 3.20## Submitted by Christoph Reiter `@creiter`
**[Link to original bug (#765602)](https://bugzilla.gnome.org/show_bug.cgi?id=765602)**
## Description
Two problems:
1) gtk_expander_set_label_fill() no longer works. Any idea how to get ...## Submitted by Christoph Reiter `@creiter`
**[Link to original bug (#765602)](https://bugzilla.gnome.org/show_bug.cgi?id=765602)**
## Description
Two problems:
1) gtk_expander_set_label_fill() no longer works. Any idea how to get the label to expand horizontally?
2) The child of GtkExpander no longer fills the available space. This can be worked around by setting h/vexpand on the child, but imo this should work without it.
Version: 3.22.x