Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GTK4 compiling branch #5615

Draft
wants to merge 46 commits into
base: master
Choose a base branch
from
Draft

GTK4 compiling branch #5615

wants to merge 46 commits into from

Conversation

bhennion
Copy link
Contributor

@bhennion bhennion commented Apr 12, 2024

It doesn't run yet, but we're closing in, I think.

This branch compiles (and links) and starts but the .glade files need to be adapted before testing anything. edit: and works

There are a couple of features I deactivated/commented out to get it to compile, so those need fixing either in gtk4, or before that, in gtk3 (e.g. the sidebar could be pre-ported).

  • Optimize cursor creation (cairo->pixbuf->texture->cursor)
  • Restore gtk-sourceview (5 is gtk4)
  • Zoom
    • Scrollzoom
    • Touch pinch zoom
    • Touchpad pinch zoom
    • Long term: refactor -> new Navigation = ScrollHandler + ZoomControl + unify event handling
  • Toolbar Customization
    • Create suitable GtkWidget for toolbars
    • Port ToolbarCustomizeDialog
    • Port drag'n'drop customization
  • Colorize svg for toolbar color icons (so they scale)
  • Sidebar
    • Port Sidebar
    • Restore page numbers
  • Clipboard
  • ImageDialog + add PdfPage dialog
  • Landscape/portrait icons in FormatDialog
  • Fix Gdk-CRITICAL **: 21:20:45.390: gdk_key_event_get_keyval: assertion 'GDK_IS_EVENT_TYPE (event, GDK_KEY_PRESS) || GDK_IS_EVENT_TYPE (event, GDK_KEY_RELEASE)' errors
  • Plugins
    • Refactor API for dialogs. Add callbacks
    • Expose new action system. Retire old one.
  • Replace GdkPixbuf by GdkTexture?
  • @rolandlo's pressure inference thickness issue when running with GDK_BACKEND=x11
  • Double and triple click

NB: this branch is built on a merge of various PR's. Not really a pull request...

@bhennion bhennion marked this pull request as draft April 12, 2024 08:48
@bhennion
Copy link
Contributor Author

It now runs (but doesn't quite work).

Note: the CI fails to build because I put gtk4 >= 4.10.1 in the CMakeFile. Lowering this number should pose no problem, in case you don't have an up-to-date enough setup.

@rolandlo
Copy link
Member

Oh, wow, that's awesome! Great job @bhennion ! I'm really excited!

grafik

@rolandlo

This comment was marked as resolved.

@rolandlo

This comment was marked as resolved.

@rolandlo

This comment was marked as resolved.

@bhennion

This comment was marked as resolved.

@rolandlo

This comment was marked as resolved.

@bhennion

This comment was marked as resolved.

@rolandlo

This comment was marked as resolved.

@rolandlo

This comment was marked as resolved.

@rolandlo

This comment was marked as resolved.

@rolandlo

This comment was marked as resolved.

@bhennion bhennion force-pushed the pr/GTK4 branch 2 times, most recently from d640a73 to baaa7f8 Compare April 17, 2024 10:16
@bhennion

This comment was marked as resolved.

@bhennion bhennion force-pushed the pr/GTK4 branch 3 times, most recently from fe1ba02 to 1887c63 Compare April 18, 2024 08:41
@bhennion
Copy link
Contributor Author

This is now in a reasonably stable state. Everything works with a couple of exceptions (toolbar customization, touchpad pinch zoom, clipboard, plugins).
I'm not quite sure how to proceed from here on. I can cleanup the commit history a little bit and make a dedicated branch on the repository.

@rolandlo
Copy link
Member

Great work @bhennion! It's a giant step forward!
Sure, cleaning up the commit history and making a dedicated branch are good ideas. Probably I'd like to work on some of the remaining issues as well in the coming two weeks (e.g. the plugins), so I can then make a PR to the dedicated branch.

We should also review your previous PR's that went into this PR, so that they can be merged into master.

Moreover I think it's time for some testing of the features that are supposed to work. I will share my observations in this PR.

@rolandlo

This comment was marked as resolved.

@bhennion

This comment was marked as resolved.

@rolandlo

This comment was marked as resolved.

bhennion and others added 29 commits May 8, 2024 10:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

GTK4 preparation
3 participants