elementary / elementary/granite

Provide a Gtk.Application and Gtk.ApplicationWindow subclass

Open
#875 1 comment 1 reaction 0 assignees Claimed by @wpkelso View on GitHub
Dominant language
Vala
Stars
329
Forks
65
Avg merge
1d 14h
Merged PRs (30d)
31

Description

### Problem

Given that, eventually, we want to add functionality on either at the application-level and/or top-level instances, such as https://github.com/elementary/granite/issues/838, we'd want a way to make use of those features as easy as possible to use, by providing custom instances. This could also help us handle application-level bugs such as https://github.com/elementary/granite/issues/874. Having a Gtk.Application subclass would also give application developers the opportunity to avoid manually initializing Granite, as they'll be able to just use the subclass.

### Proposal

We'd want to have a subclass of Gtk.Application (application-level) and Gtk.ApplicationWindow (top-level window) to open up more possibilities to handle these issues.

### Prior Art (Optional)

#### Gtk.Application subclasses
- https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.Application.html
- https://theevilskeleton.pages.gitlab.gnome.org/libfancy/fancy-1.0/class.Application.html

#### Gtk.ApplicationWindow subclasses
- https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ApplicationWindow.html
- https://theevilskeleton.pages.gitlab.gnome.org/libfancy/fancy-1.0/class.ApplicationWindow.html

#### ShortcutsWindow / CommandPalette
For https://github.com/elementary/granite/issues/838, some inspiration:

- https://theevilskeleton.pages.gitlab.gnome.org/libfancy/fancy-1.0/class.Application.html#shortcuts-dialog
- https://theevilskeleton.pages.gitlab.gnome.org/libfancy/fancy-1.0/class.ShortcutsDialog.html
- https://gitlab.gnome.org/TheEvilSkeleton/libfancy/-/merge_requests/1
- https://gitlab.gnome.org/TheEvilSkeleton/Refine/-/merge_requests/50

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.