Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • gtk gtk
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 1.6k
    • Issues 1.6k
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 274
    • Merge requests 274
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GNOMEGNOME
  • gtkgtk
  • Issues
  • #2315

New Issue following up on Issue #221 Emacs disconnects

Attached is a reduced test case which was requested in the now closed issue glib#221 (closed) - quickly sloppily hacked up from simple.c from gtk+-demos.

gtk_main is replaced by a loop which calls g_main_context_iteration. X errors are handled via XSetIOErrorHandler and XSetErrorHandler to handle a closed display and continue with the next g_main_context_iteration.

To Run the test case: gcc simple.c -Wno-deprecated -Wno-deprecated-declarations -g3 $(pkg-config gtk+-3.0 --cflags --libs ) -lX11 $ DISPLAY=:0 Xephyr :1 $ DISPLAY=:1 G_DEBUG=fatal-warnings ./a.out kill Xephyr

The stack trace which you get from killing Xephyr is attached.

[Also featured in the code but not relevant to this bug report is the "closed" signal which is expected from when GdkDisplay connection is lost. This signal does not seem to fire] simple.ctrace.out

Assignee
Assign to
Time tracking