| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
Those get in the middle more than help on these widgets, the widget
is already packed with clickable areas and having handles (and their
invisible clickable area around) hovering above don't help, plus the
purpose in most likely numeric values is a bit doubtful.
All touch events are either consumed by the up/down panels, or
the swipe gesture, all GtkEntry handling of touch events on the text
window is avoided, so handles to not appear anymore.
|
|
|
|
| |
That's the right phase for gestures replacing entirely event handlers.
|
|
|
|
|
| |
The gesture must be able to catch first events for it to be seen
as recognized in event handlers.
|
|
|
|
|
|
|
|
|
|
|
| |
the "bubble" phase used to run before event handlers before GTK_PHASE_TARGET
was added, in order to keep phases in the expected order, move GTK_PHASE_BUBBLE
to be run (still invariably) after event handlers.
The only behavioral change should be wrt widgets wanting mixed event handler/
gesture handling, they could previously attach the gesture to the bubble phase
and check for gtk_gesture_is_active() in the event handler to bail out, they'll
have to use GTK_PHASE_CAPTURE for that purpose from now on.
|
|
|
|
|
|
| |
The handle is still centered horizontally, but the extra vertical
space wasn't taken into account, leading to misplacing the dragging
point (and the handle) during motion events.
|
|
|
|
|
| |
And always unset/hide the selection popover if unhandled, that means the
sequence went grabbed/claimed somewhere else and cancelled here.
|
|
|
|
|
| |
And always unset/hide the selection popover if unhandled, that means the
sequence went grabbed/claimed somewhere else and cancelled here.
|
| |
|
|
|
|
|
| |
Set annotations on return values for gtk_gesture_get_device() and
gtk_gesture_get_window().
|
|
|
|
| |
Set transfer annotation on gtk_event_controller_get_widget()
|
|
|
|
| |
Not much to copy nor free, but this'll make bindings happy
|
|
|
|
|
|
| |
GtkPaned may just capture pointer events because the child widget
doesn't happen to have GDK_TOUCH_MASK set, resort to checking the
device in that case.
|
| |
|
| |
|
|
|
|
| |
This reverts commit eefac03b395a6b885fd61c100b48652200beb996.
|
|
|
|
| |
This reverts commit 75f503fb1fc9068c9e1a0d02126c55addbe8eb3e.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Dragging is all handled by a GtkGesturePan now, matching the
paned orientation.
On touch events, a wider area is listened for, so touch events
don't need to be as accurate to initiate dragging, if no dragging
is truly initiated in this case, events are just forwarded for
child widgets to handle.
|
|
|
|
|
|
| |
A pan gesture is used to handle switch dragging, which is only triggered
by horizontal panning movements. A multipress gesture handles the cases
where clicking without dragging happens, just toggling the switch.
|
|
|
|
|
| |
Add a dedicated tab that shows how gestures are grouped,
and allows changing the propagation phase.
|
|
|
|
| |
We're just showing them as objects in the tree, for now.
|
|
|
|
| |
This will let us show them in the inspector.
|
|
|
|
|
|
| |
The hit area now extends to all sides around the handle, instead
of just towards where the text is. This makes it easier to grab
handles once shown.
|
| |
|
|
|
|
| |
Move it to the right place.
|
|
|
|
|
|
|
|
|
|
|
| |
direction
A pan gesture is optionally attached if there is only one scrolling direction, the pan
gesture orientation is changed so movements tangential to the scroll direction get
scrolling cancelled (The pan gesture is automatically denied when that happens, and
that state change spreads to the others gestures in the group). If the pan direction
happens in the expected directions, no cancellation happens, and scrolling eventually
takes place.
|
|
|
|
|
|
| |
Multiple calls are supposedly allowed to change the phase (although
unlikely to happen), so remove the g_return_if_fail() checking whether
the controller was already added.
|
|
|
|
|
| |
From the very early days where there were a NONE=0 GtkPanOrientation
value. This makes vertical pan operations work as expected.
|
|
|
|
| |
cursor.
|
|
|
|
| |
In order to ensure invariants are kept.
|
|
|
|
|
| |
Y=0 was assumed in a few places, not necessarily right on eg. vertical
spinbuttons.
|
|
|
|
|
|
| |
Presses alternatively show and dismiss the popover, the popover is still
always shown invariably after any dragging happens (either text selection,
or dragging a text handle)
|
|
|
|
|
| |
Somewhat arbitrary at the moment, would be nice to have minimal units
support for this, or at least hidpi support.
|
|
|
|
|
|
| |
Presses alternatively show and dismiss the popover, the popover is still
always shown invariably after any dragging happens (either text selection,
or dragging a text handle)
|
|
|
|
|
|
|
|
|
| |
Similarly to GtkTextView, a GtkGestureMultiPress gesture handles
button/touch presses to initiate one selection mode or other, and
a GtkGestureDrag is used to handle text selection and DnD checks.
The code from button press/release, motion, and grab_notify handlers
has been shuffled into the actions triggered by those gestures.
|
|
|
|
|
| |
It is unnecessary to have those process events manually, just attach
those to the bubble phase.
|
|
|
|
|
|
|
|
|
| |
A GtkGestureDrag is used for color selection, removing also the
need to track the pointer state in widget data. The GDK grab performed
just to set the crosshair cursor has been replaced by a call
to gdk_window_set_device_cursor(), which will be unset if the
drag operation is finished, or cancelled due to the implicit grab
being broken.
|
|
|
|
|
|
|
|
| |
When the pointer cursor is updated on CSW, lookup for either a device
cursor, or a global one. It would previously lookup for windows with
a global cursor, and then check if it had a device cursor, which would
skip windows with only device cursors set, and unexpectedly set the
global cursor.
|
|
|
|
|
|
| |
We only want actions to be triggered by a single sequence there,
so buttons trigger no actions on further simultaneous touches
happening.
|
|
|
|
|
|
| |
All "exclusive" gestures listen for either pointer events, or
"pointer emulating" touch events, so only a single sequence at
a time can make these run.
|
|
|
|
|
| |
It is now useful for that purpose with a ::release signal, so replace
the custom GtkGestureSingle with one of these.
|
| |
|
|
|
|
|
|
|
| |
This signal will always be paired with a ::pressed signal, unless
the sequence is cancelled, or the controller is reset. the n_press
argument in the signal always matches the ::press signal one, even
if GtkGestureMultiPress::stopped was emitted in between.
|
|
|
|
|
|
|
| |
The current sequence (as per gtk_gesture_single_get_current_sequence)
is used to find out the coordinates. And only emit ::pressed if the
gesture began through a GDK_BUTTON_PRESS/TOUCH_BEGIN (eg. not due to
an extra touch being lifted)
|
|
|
|
|
| |
This way events are managed by gestures in the event handlers themselves,
respecting the execution order already assumed by subclasses around.
|