-
-
Notifications
You must be signed in to change notification settings - Fork 42
Fix GLib::GObject::CRITICAL on out-of-range zoom factor (Gtk3::ImageV… #775
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
base: master
Are you sure you want to change the base?
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -57,6 +57,23 @@ BEGIN { | |
| ); | ||
| } | ||
|
|
||
| package Gtk3::ImageViewCustom; | ||
|
|
||
| use Gtk3::ImageView; | ||
| use Glib::Object::Subclass Gtk3::ImageView::, properties => [ | ||
| # override minium zoom | ||
| Glib::ParamSpec->float( | ||
| 'zoom', #name | ||
| 'zoom', #nick | ||
| 'zoom level', #blurb | ||
| 0.0001, #minium, tuned to fit 4K/8K modern display | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why not to fix it in Gtk3::ImageView itself?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Another PR to Gtk3::ImageView? If no change to upstream, derived class is the most convenient way to override GObject Property, AFAIK. Alternative way: if extending with
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's at https://github.com/carygravel/gtk3-imageview Or you think only shutter can benefit from 8k display?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What we're trying to say is that it would be more beneficial to try a fix upstream in addition to the one here, so we get a fix right away plus other projects can be benefit long term as well :)
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Got it. PR for upstream on the way.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. After more investigation, it turns out the RCA is the lazy allocation of Gtk widgets: New ImageView widgets created during invisible state would keep 1x1 dummy size allocation till first show. When this size applied in |
||
| 100, #maximum | ||
| 1.0, #default | ||
| [qw/readable writable/], | ||
| ), | ||
| ]; | ||
|
|
||
|
|
||
| package Shutter::App; | ||
|
|
||
| #Deal with encoding problem | ||
|
|
@@ -71,7 +88,6 @@ use Pango; | |
| use Glib qw/TRUE FALSE/; | ||
| use Gtk3 '-init'; | ||
| use Glib::Object::Subclass qw/Gtk3::Application/; | ||
| use Gtk3::ImageView 10; | ||
|
|
||
| #filename parsing | ||
| use POSIX qw/ strftime /; | ||
|
|
@@ -4428,7 +4444,7 @@ sub STARTUP { | |
| unless ($is_all) { | ||
|
|
||
| #Gtk2::ImageView - empty at first | ||
| $session_screens{$key}->{'image'} = Gtk3::ImageView->new(); | ||
| $session_screens{$key}->{'image'} = Gtk3::ImageViewCustom->new(); | ||
| #$session_screens{$key}->{'image'}->set_show_frame(FALSE); | ||
| $session_screens{$key}->{'image'}->set_fitting(TRUE); | ||
| $session_screens{$key}->{'image'}->get_style_context->add_provider($css_provider_alpha, 0); | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.