Re: Volunteer

2014-06-07 Thread Lieven van der Heide
Hi Matthias,

For a start, I'll pick up your first suggestion.

 For your nested scrolling use case, I think it a good start would be a
somewhat convincing testcase. In my experience nested scrolling is almost
always a source of frustration and best avoided...

A test case I was thinking of was to implement an image gallery similar to
those on mobile devices: Swiping left and right scrolls between images,
pinching would let you zoom, and when you've zoomed such that the image is
larger than the area, just dragging lets you scroll the image, until you've
reached a boundary, after which you'd start dragging the neighboring image
in. I'm actually not even sure if a scrolled windows would be the best way
to implement this. Some new features would have to be added anyway: Support
for paging (ie. bounce back to a page boundary after the drag is released),
support for zooming, and probably an option to hide scrollbars.

A problem we would have with paging would be that the start of a page would
change when the scrolled window gets resized, and to accomodate to that we
would need to automatically scroll the widget while it's being resized.
Because page boundaries farther away from the origin might then move much
faster than the amount the size of the scrolled window changed, this might
give very weird results. In the case of the image gallery, this wouldn't be
a problem, because you would always change the size of the children to
match the size of the visible area of the outer scrolled window.

An option would of course be to use a GtkStack instead, and add support for
swiping between pages (as you suggested). Personally, I'd like it if it'd
still behaved a bit like a paging scrolled window, ie: it starts scrolling
as soon as you start dragging, and bounces to the nearest page when you
release the touch (probably taking velocity into account, so a very short
but fast swipe will move to the next page).

But still, I think that to implement this, we might still need
functionality which lets widgets propagate only a part of a drag gesture to
its parent widget.

Regards,

Lieven

On Wed, Jun 4, 2014 at 11:13 PM, Matthias Clasen matthias.cla...@gmail.com
wrote:

 Hey Lieven,

 great that you are interested in helping out ! I'm sure you'll find
 something interesting to work on. Here's a few ideas:

 - pick any widget that is currently still using a button press event
 handler, and convert it to using event controllers instead

 - add support for switching pages by swipe gestures in GtkStack
 (probably depending on the transition)

 - investigate using swipe-from-the-edge for bringing up controls in
 fullscreen mode

 - choose any application that could benefit from touch support, and
 try to implement it using the current GTK+ gesture API (one example
 might be swipes to show/hide the sidebar in gnome-weather)/


 For your nested scrolling use case, I think it a good start would be a
 somewhat convincing testcase. In my experience nested scrolling is
 almost always a source of frustration and best avoided...

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Volunteer

2014-06-05 Thread Carlos Garnacho
Hey Lieven,


On Wed, Jun 4, 2014 at 7:32 PM, Lieven van der Heide 
lievenvanderhe...@gmail.com wrote:

 Hi,

 I'd like to volunteer to help with gtk development, preferably with
 improving touch support.


It is great that you want to help! There's being some activity around, with
the recently merged gestures branch. Some low hanging fruits would indeed
be making older widgets use this, or (possibly more entertaining)
possibility is finding places where gestures or touch-specific UI could be
handy (eg. on otherwise non interactable widgets). It would be good if
you'd compile gtk+ master and got familiarized with the changes there by
reading docs/code.



 I've already submitted the kinetic scrolling improvement fixes not too
 long ago (still waiting for it to be in git though),


It was pushed this evening :), nice work!


 so I know the code a bit. Are there any open tickets I could pick up?
 There are plenty of improvements I can think of, but I guess it's better to
 stick to the current roadmap.


One useful bugzilla query might be:
https://bugzilla.gnome.org/buglist.cgi?query_format=advanced;bug_status=UNCONFIRMED;bug_status=NEW;bug_status=ASSIGNED;bug_status=REOPENED;bug_status=NEEDINFO;component=Class%3A%20GdkDevice;component=Class%3A%20GtkGesture;product=gtk%2B

Althought there's not many opened bugs related to touch currently as you
can see. It would be great if you could hang out in #gtk+ and
#gnome-design, that's where most of the activity around GTK+/touch goes on.



 One thing I really think gtk should need though, and which I'd like to
 help with is this:

 https://bugzilla.gnome.org/show_bug.cgi?id=731221

 but I realize that it's quite a big change, so I guess it first needs to
 be decided if and how we're going to do it.


I have to agree with Matthias that it would be probably better if you found
tangible/compelling usecases before embarking on this, you realize well
that it's not a small change (not only event management wise, but very
possibly to GtkAdjustment/GtkScrollable API). IMHO, the only UIs that can't
do without scrollable-within-scrollable are webbrowsers, and GTK+ luckily
doesn't have to cater for that case.

Cheers,
  Carlos
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list