| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Event controllers now auto-attach, and the GtkCapturePhase only determines
when are events dispatched, but all controllers are managed by the widget wrt
grabs.
All callers have been updated.
|
|
|
|
|
|
|
|
|
|
|
| |
The propagation phase property/methods in GtkEventController are gone,
This is now set directly on the GtkWidget add/remove controller API,
which has been made private.
The only public bit now are the new functions gtk_gesture_attach() and
gtk_gesture_detach() that will use the private API underneath.
All callers have been updated.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Instead, make the functions conform to the prototype, so that casting
isn't needed.
|
|
|
|
|
| |
This commit adds a few missing private headers, and cleans up
some irregularities in the existing ones
|
|
|
|
|
| |
This problem was discovered in
https://bugzilla.gnome.org/show_bug.cgi?id=725225
|
|
|
|
| |
Instead of Return value:
|
|
|
|
| |
https://wiki.gnome.org/Design/OS/Typography
|
| |
|
|
|
|
|
|
|
| |
Add names to every timeout we setup, so it's easier to track their
usage, and debug possible misbehaviour.
https://bugzilla.gnome.org/show_bug.cgi?id=710651
|
|
|
|
|
|
|
| |
If a range goes all the way to the edge of the screen then we don't
have any way to activate autoscrolling. By adding a small region
at the ends of the range we can handle this case. This is the same
approach used in treeviews.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A problem with the zoom scroll mode is that you have to restart
if you hit the bottom of the screen before you hit the bottom
of your document.
This commit adds an autoscroll feature to the zoom scroll: if
you move outside the window while in zoom scroll mode, we keep
scrolling in the direction you were going until you let go
of the mouse button.
https://bugzilla.gnome.org/show_bug.cgi?id=704703
|
|
|
|
|
|
|
|
|
|
|
| |
Triggering zoom scroll mode by Shift click was too much
of an easter egg. It also requires using keyboard and
mouse together, which is hard to do for many users.
Instead, we now trigger zoom scroll mode by click-and-hold
(or touch-and-hold).
https://bugzilla.gnome.org/show_bug.cgi?id=704703
|
| |
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=702996
|
| |
|
|
|
|
|
|
|
| |
When the range of the GtkRange is zero (i.e. the upper and lower bounds
of the adjustment have the same value), don't use an origin to draw the
trough, as the slider will also be hidden, and the juncture between the
two sections of the trough will be visible.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This replaces the previously hardcoded calls to gdk_window_set_user_data,
and also lets us track which windows are a part of a widget. Old code
should continue working as is, but new features that require the
windows may not work perfectly.
We need this for the transparent widget support to work, as we need
to specially mark the windows of child widgets.
https://bugzilla.gnome.org/show_bug.cgi?id=687842
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit e32da246a84492f02b4dac5a448bb46cb23d68b8 made GtkRange's trough
respect the CSS margin property, but it also trimmed the box in which
the trough reacts to click events by the margin.
We still want to catch events in that area instead, and just make sure
the margin is applied when drawing (which was already implemented by
that commit).
This commit reverts the parts of
e32da246a84492f02b4dac5a448bb46cb23d68b8 that didn't involve drawing,
fixing the bug.
https://bugzilla.gnome.org/show_bug.cgi?id=691677
|
|
|
|
|
|
| |
Make GtkRange honor the setting and implement it in the
quartz backend, it proxies the "click in the scroll bar to"
property from the OS X PrefPane.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Many themes want to render the trough background/stroke thinner than the
full height/width (which is constructed around the value of the
'slider-width' style property).
Read and apply the CSS margin from the theme on the trough component, so
that themes can make it smaller at their will without the need to
override the render_background, render_frame and render_activity methods
of GtkThemingEngine.
https://bugzilla.gnome.org/show_bug.cgi?id=676196
|
|
|
|
|
|
|
| |
We wouldn't need any detail anyway, since we use a progressbar style
class for the progress part of GtkRange.
https://bugzilla.gnome.org/show_bug.cgi?id=676196
|
|
|
|
|
|
|
|
|
|
|
| |
Shift-click in the slider now starts a drag in 'fine adjustment'
mode, where we move the slider 10-times slower than the mouse.
This can be very helpful when scrolling through a very long document
or webpage, and moving the scrollbar even a single pixel already
jumps too far in the content.
https://bugzilla.gnome.org/show_bug.cgi?id=563688
|
|
|
|
|
|
|
|
| |
It seems to be general consensus that button 1 should do the jumping,
so we now jump to the clicked position on primary button clicks and
page on secondary button clicks. Touch behaves like primary.
https://bugzilla.gnome.org/show_bug.cgi?id=563688
|
|
|
|
|
|
|
| |
This can cause lagging when scrolling as it causes us to repaint
on every scroll event. This wasn't historically a great problem,
but with smooth scrolling we get a lot more events, so this
now creates visible lagging on slower machines.
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=671819
|
|
|
|
|
|
|
| |
Scroll events report normalized deltas in terms of an abstract
'scroll unit' now, so our job is to determine a suitable scroll
unit here. Since we are changing the value of the adjustment,
the allocation of the widget does not factor into this at all.
|
|
|
|
|
| |
... and make all the headers to not include gtkadjustment.h anymore. Of
course, also include it in the source files instead.
|
|
|
|
|
|
| |
When scaling the scroll delta, always use the 'large' dimension
of a range widget. When dx was 0, the code code accidentally
use the small dimension.
|
|
|
|
|
|
|
|
|
|
| |
If delta_x/y information is provided in scroll events, use it
to modify the underlying adjustment in steps proportional to
the deltas provided.
If the child widget of a scrolledwindow doesn't set
GDK_SMOOTH_SCROLL_MASK, regular scroll events will be dispatched,
and still handled by these 2 widgets.
|
|
|
|
|
|
| |
This widget is too narrow to make touch interaction tricky enough, so
don't add the penalty of having the slider run farther from the touch
coordinates if it happens to miss the slider.
|
|
|
|
|
|
| |
Emulated crossing events with mode GDK_CROSSING_TOUCH_PRESS/RELEASE
already cater dynamically for the "don't prelight on touch devices"
usecase.
|
| |
|
|
|
|
|
|
| |
The implicit grab on priv->event_window already warrants that this
widget is the only one getting events while the button is pressed,
so avoid the extra GTK+ grab here.
|
|
|
|
|
| |
Add a 'private' suffix to all newly introduced private
headers.
|
|
|
|
| |
This will be used for a popup in the color chooser.
|
| |
|
| |
|
|
|
|
|
| |
We only want to shrink the scrollbar allocation by the actual
overlap, not always by the full size of the resize grip.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
If the scale has an origin (it will have one by default), GtkRange will
render the two sides before/after the current value with different style
classes, making it possible for themes to use different colors and
properties for the two areas.
This was possible in GTK 2 with style details, but got lost during the
road to 3.0.
https://bugzilla.gnome.org/show_bug.cgi?id=665140
|
| |
|
|
|
|
|
| |
This is needed for e.g. win32 theming, but is also generally
useful.
|
| |
|
|
|
|
| |
There were some includes of gtkmain.h missing
|
|
|
|
| |
and remove gtkmainprivate.h completely.
|