Emilio Cobos Álvarez 0bf7d9ce39 gdk/wayland: Don't notify of settings changes on startup.
I was profiling Firefox startup on Wayland, and I realized that we were
doing too much work because we get extra settings changed events, posted
from here:

    #0  gdk_event_copy (event=0x7ffe9c4a7fd0) at ../gtk/gdk/gdkevents.c:659
    #1  0x00007f8b8a5060c6 in gdk_display_put_event (event=0x7ffe9c4a7fd0, display=0x7f8b8d551a00) at ../gtk/gdk/gdkdisplay.c:503
    #2  gdk_display_put_event (display=0x7f8b8d551a00, event=0x7ffe9c4a7fd0) at ../gtk/gdk/gdkdisplay.c:497
    #3  0x00007f8b8a5456e6 in notify_setting (setting=0x7f8b8a59b6d6 "gtk-xft-dpi", screen=0x7f8b8d517700) at ../gtk/gdk/wayland/gdkscreen-wayland.c:237
    #4  update_xft_settings (screen=0x7f8b8d517700) at ../gtk/gdk/wayland/gdkscreen-wayland.c:513
    #5  0x00007f8b8a53ef6d in init_settings (screen=0x7f8b8d517700) at ../gtk/gdk/wayland/gdkscreen-wayland.c:842
    #6  _gdk_wayland_screen_new (display=0x7f8b8d551a00) at ../gtk/gdk/wayland/gdkscreen-wayland.c:1367
    #7  _gdk_wayland_display_open (display_name=<optimized out>) at ../gtk/gdk/wayland/gdkdisplay-wayland.c:618
    #8  0x00007f8b8a507bc7 in gdk_display_manager_open_display (manager=<optimized out>, name=0x0) at ../gtk/gdk/gdkdisplaymanager.c:462
    #9  0x00007f8b82bda2f8 in XREMain::XRE_mainStartup(bool*) (this=this@entry=0x7ffe9c4a8398, aExitFlag=aExitFlag@entry=0x7ffe9c4a830f) at /home/emilio/src/moz/gecko-6/toolkit/xre/nsAppRunner.cpp:4760
    #10 0x00007f8b82be1742 in XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) (this=this@entry=0x7ffe9c4a8398, argc=argc@entry=4, argv=argv@entry=0x7ffe9c4a9698, aConfig=...) at /home/emilio/src/moz/gecko-6/toolkit/xre/nsAppRunner.cpp:5874
    #11 0x00007f8b82be1c2c in XRE_main(int, char**, mozilla::BootstrapConfig const&) (argc=4, argv=0x7ffe9c4a9698, aConfig=...) at /home/emilio/src/moz/gecko-6/toolkit/xre/nsAppRunner.cpp:5942
    #12 0x000055631ef3b3e9 in do_main(int, char**, char**) (argc=4, argv=0x7ffe9c4a9698, envp=<optimized out>) at /home/emilio/src/moz/gecko-6/browser/app/nsBrowserApp.cpp:227
    #13 main(int, char**, char**) (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at /home/emilio/src/moz/gecko-6/browser/app/nsBrowserApp.cpp:445

We shouldn't post events for a screen we're just creating, because it
can make apps do too much work during startup. X11 had code for this.
2023-09-04 17:40:13 +02:00
2022-12-08 11:57:39 +00:00
2022-12-08 17:58:29 +00:00
2023-08-28 16:46:43 -04:00
2023-09-02 03:09:28 +00:00
2023-08-25 22:48:56 +00:00
2023-05-21 22:22:08 -04:00
2012-02-27 17:06:11 +00:00
2011-02-10 14:41:02 -05:00
2011-12-05 20:58:21 -05:00
2010-06-27 23:30:02 +03:00
2014-07-30 15:53:33 +02:00
2015-03-03 15:01:15 -05:00
2023-05-21 22:24:57 -04:00
2023-05-21 22:24:57 -04:00
2022-12-08 17:58:29 +00:00

General Information

GTK is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK is suitable for projects ranging from small one-off projects to complete application suites.

GTK is free software and part of the GNU Project. However, the licensing terms for GTK, the GNU LGPL, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties.

The official download locations are:

The official web site is:

Installation

See the file INSTALL.md

How to report bugs

Bugs should be reported to the GTK issue tracker. You will need to create an account for yourself.

In the bug report please include:

  • Information about your system. For instance:

    • What operating system and version
    • For Linux, what version of the C library

    And anything else you think is relevant.

  • How to reproduce the bug.

    If you can reproduce it with one of the test programs that are built in the tests/ subdirectory, that will be most convenient. Otherwise, please include a short test program that exhibits the behavior. As a last resort, you can also provide a pointer to a larger piece of software that can be downloaded.

  • If the bug was a crash, the exact text that was printed out when the crash occurred.

  • Further information such as stack traces may be useful, but is not necessary.

Bug fixes and improvements

Changes should be submitted as merge request to the GTK project. If a merge request fixes an issue, the description should mention the issue number.

Release notes

Release notes for releases of GTK 3.x are part of the migration guide in the GTK documentation. See

Description
GTK is a multi-platform toolkit for creating graphical user interfaces.
Readme 570 MiB
Languages
C 90.8%
CSS 7.3%
Meson 0.5%
SCSS 0.4%
GLSL 0.3%
Other 0.5%