| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
GtkTreeView has a particularly expensive drawing path. This can cause
issues when part of animated widget sequences. Caching the content while
a model is attached helps reduce the number of full redraws during
exposure greatly.
https://bugzilla.gnome.org/show_bug.cgi?id=751082
|
|
|
|
|
|
| |
Specify that the theme is wholly in control.
https://bugzilla.gnome.org/show_bug.cgi?id=750718
|
|
|
|
| |
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
|
|
|
|
|
|
|
|
|
|
|
| |
Just use the last coordinates given on XdndPosition/drag_motion() in
order to trigger scrolling.
When running on Xwayland, the pointer position is unknown at this
stage on the X11 side, so the coordinates given here are bogus.
This change avoids both roundtrips and this situation.
https://bugzilla.gnome.org/show_bug.cgi?id=749679
|
|
|
|
|
|
|
|
|
|
| |
When a treeview is destroyed while rubberbanding is going
on, we crash because the rb tree is nuked before we want
to access it to stop the rubberbanding. To avoid this crash
end the rubberbanding early in destroy().
See
https://bugzilla.redhat.com/show_bug.cgi?id=1173904
|
|
|
|
| |
Introduced in 7eecb16404b9fdcd1377e1a159f5e94f079e24b7
|
|
|
|
|
|
|
|
|
|
| |
GPUs generally have problems when you create a 35000px wide surface.
Luckily X catches this and sends a BadAlloc. Which GTK immediately
abort()s on.
Testcase included.
https://bugzilla.redhat.com/show_bug.cgi?id=1163579
|
|
|
|
|
| |
commit aa1b7fab9c6a2b39 introduced a misuse of G_UNLIKELY in
several places. Fix all those.
|
|
|
|
|
| |
The clipping was wrong so it was not drawing grid lines
outside the visible area, which broke due to the pixel cache.
|
|
|
|
|
|
| |
... and _gtk_css_style_property_changes_affect_font().
Replace it with _gtk_css_style_property_get_mask_affecting().
|
|
|
|
|
| |
Add an implementation for the new scrollable vfunc that returns
the header height as top border.
|
|
|
|
|
|
|
| |
This is already handled in GtkGestureMultiPress::release, and more in
concordance with how it was done pre-gestures.
https://bugzilla.gnome.org/show_bug.cgi?id=737891
|
|
|
|
|
|
|
| |
... so that invisible columns get it, too.
Works around weird effects seen when buttons are animated and columns
get hidden/shown.
|
|
|
|
|
|
|
| |
This is a bandaid fix that makes the origin case work again
by switching RGBA window. The arrow case is still unreliable.
https://bugzilla.gnome.org/show_bug.cgi?id=732916
|
|
|
|
|
|
|
|
| |
This is so signal handlers have an opportunity to undo its effect by
returning GDK_EVENT_STOP on ::button-press-event, just like they used
to do pre-gestures.
https://bugzilla.gnome.org/show_bug.cgi?id=735965
|
|
|
|
|
|
|
|
| |
Use the left border color for tree lines. This is similar to
our use of top border color for grid lines. As a side-effect,
tree lines now get recolored when they are in a selected row.
https://bugzilla.gnome.org/show_bug.cgi?id=415415
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=733967
|
|
|
|
|
|
|
|
|
|
|
| |
The pre-gestures code used to compare the current button press with the
previous one on !activate_on_single_click, and unset the previous event
data so ::row-activated would be emitted every 2 clicks.
So do the same with the multipress gesture and reset it after every 2nd
click to have ::row-activated emitted multiple times while manic clicking.
https://bugzilla.gnome.org/show_bug.cgi?id=735353
|
|
|
|
|
|
|
| |
The gesture code was assuming that the rb tree exists, which
will not be the case if the treeview is empty.
https://bugzilla.gnome.org/show_bug.cgi?id=735300
|
|
|
|
|
|
|
|
| |
That gesture is meant to handle clicks on multiple buttons, so unset
the GDK_BUTTON_PRIMARY default. Also, remove unnecessary boilerplate
with the new GtkGestureSingle/GtkEventController defaults.
https://bugzilla.gnome.org/show_bug.cgi?id=734285
|
|
|
|
|
|
|
|
|
| |
This check used to be present in the pre-gestures code, but was unintentionally
removed when splitting code into drag/multiclick gestures. The policy used to
be that if clicking happened on an already selected node, DnD would happen
instead of rubberband selection, so this behavior is resuscitated.
https://bugzilla.gnome.org/show_bug.cgi?id=734143
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The rules-hint property has always been a fairly bad application API, as
it set some wrong expectations for the developers; deferring to the
theme makes it impossible to design application reliably, and if this is
a usability setting we should either impose this setting on every theme,
or simply drop it.
Our own default theme does not honour the zebra striping, which makes
this function even more questionable.
In practice, usability studies on zebra striping have demonstrated that
alternating colors on a list it improves readability just as much as
clear ruling between rows, or by visually differentiating the selected
row. Zebra striping improves readability (or, at least, it does not
hinder it) on static displays, like a table on paper or a document; on a
dynamic display, like an application's UI, there are different
strategies that yield similar, if not better, results.
https://bugzilla.gnome.org/show_bug.cgi?id=733312
|
|
|
|
|
| |
The removal was not intentional, and still needed as the GtkGestureMultiPress
will work for any button unless told to lock on a single specific one.
|
|
|
|
|
|
|
|
|
| |
The animated scrolling interferes with incremental validation.
As short-term solution, disable scrolling animation during
incremental validation. This is not a proper solution, but
it avoids broken behavior like scrollbars that are not reacting
to clicks. The problem was visible, e.g. in the list view
example in gtk3-demo.
|
|
|
|
|
|
|
| |
This reverts commit faa676ffa73060538a4a456531ad1810f3ff7b95.
It fixed the problematic list view example in gtk3-demo, but
broke all others :-(
|
|
|
|
|
|
|
|
|
| |
The animated scrolling interferes with incremental validation.
As short-term solution, disable scrolling animation during
incremental validation. This is not a proper solution, but
it avoids broken behavior like scrollbars that are not reacting
to clicks. The problem was visible, e.g. in the list view
example in gtk3-demo.
|
|
|
|
| |
This same call happens a few lines above.
|
|
|
|
|
|
|
|
| |
The reparenting happening on the column header so it gets a movable
window breaks the implicit grab, so this is one situation were we
want a pointer grab, if just to replace it.
https://bugzilla.gnome.org/show_bug.cgi?id=732933
|
|
|
|
|
|
|
|
| |
Code was expecting view coordinates, not widget ones, as we're
only dealing with horizontal displacements, just adding the
horizontal adjustment value suffices.
https://bugzilla.gnome.org/show_bug.cgi?id=732933
|
| |
|
| |
|
|
|
|
| |
This is a foolowup to d80bf0790d0903ba2825f306b6f7435529f922e2
|
|
|
|
|
|
|
|
|
|
|
| |
Regions are done in a very non-css way. They don't fit the DOM in that
they don't integrate into the CSS tree and they have very weird matching
behavior in selectors.
So I'm deprecating them now. GtkNotebook and GtkTreeview will continue
to use them and as long as they do, we can't remove the code for it.
But once those are ported it might be safe to remove the code as it will
clean up lots of places in the code by quite a bit.
|
|
|
|
|
|
|
| |
The rubberband rendering code was assuming that we just have
a 1-pixel border and the rest of the rubberband is uniform.
That is not a safe assumption to make with css-styled
rubberbands, so remove it.
|
|
|
|
|
| |
It turned out not all code was fully prepared to handle multiple buttons,
this avoids respawning https://bugzilla.gnome.org/show_bug.cgi?id=731020.
|
|
|
|
|
|
| |
The code is actually prepared for that, the gesture was initially limited
to only handling GDK_BUTTON_PRIMARY because it only used to handle row
activation.
|
|
|
|
|
| |
These variables were last used before moving row activation to being
managed by a gesture.
|
|
|
|
|
|
|
|
|
| |
The multipress gesture on the bin window now also does all the business related
to row selection. As row selection and activation can't be easily decoupled, this
fixes certain problems around ::row-activated being emitted on NULL paths.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=731455 and
https://bugzilla.gnome.org/show_bug.cgi?id=731018
|
|
|
|
|
|
| |
This gesture acts only on events from the bin window, and checks that
either the pressed row is draggable, or the conditions for rubberband
selection apply.
|
|
|
|
|
|
| |
A multipress gesture takes care of autosizing on double click, and
a drag gesture is used for both column dragging/resizing (only one
can happen at a time).
|
| |
|
| |
|
|
|
|
|
|
| |
Otherwise the event is possibly handled, but still propagated further anyway.
Ensure the event is consumed by claiming the current sequence on the
GtkGestureMultiPress::pressed handler.
|
|
|
|
|
|
|
|
| |
::row-activated only used to be triggered by GDK_BUTTON_PRIMARY, so make
the multipress gesture handling this now to be only triggered by that same
button.
https://bugzilla.gnome.org/show_bug.cgi?id=731020
|
|
|
|
|
|
|
| |
This reverts commit 6d53c2339f79baa0b295ecc614f41f9daab2e132.
https://bugzilla.gnome.org/show_bug.cgi?id=731054 showed some
major regressions caused by this commit.
|
|
|
|
|
|
|
| |
This reverts commit 0050d469b592ec571a5940f1ab1d842a76905e17.
Conflicts:
gtk/gtktreeview.c
|
|
|
|
|
| |
Moving this bit up a few lines lets the following revert apply
cleanly.
|
|
|
|
|
|
| |
This reverts commit a158a2aa48c8023f99963642cc2657bff207b82d.
The commit conflicts with a later revert, so move it out of the way.
|