After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 697701 - zoom controls for users without scroll wheel
zoom controls for users without scroll wheel
Status: RESOLVED FIXED
Product: gnome-maps
Classification: Applications
Component: map view
git master
Other Linux
: Normal normal
: ---
Assigned To: gnome-maps-maint
gnome-maps-maint
Depends on:
Blocks:
 
 
Reported: 2013-04-10 11:41 UTC by Jussi Kukkonen
Modified: 2013-08-16 12:48 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
zoom controls (2.86 KB, image/svg+xml)
2013-06-18 14:11 UTC, Andreas Nilsson
  Details
ZoomControl implementation (11.24 KB, patch)
2013-07-08 11:52 UTC, Jonas Danielsson
needs-work Details | Review
Implement keyboard bindings for zoom (1.55 KB, patch)
2013-07-08 11:54 UTC, Jonas Danielsson
needs-work Details | Review
Implement keyboard bindings for zoom v2 (1.55 KB, patch)
2013-07-09 13:09 UTC, Jonas Danielsson
committed Details | Review
Implement ZoomControl v2. (11.13 KB, patch)
2013-07-10 10:15 UTC, Jonas Danielsson
none Details | Review
Screenshot of my gnome-maps (47.79 KB, image/jpeg)
2013-07-10 10:20 UTC, Jonas Danielsson
  Details
Implement ZoomControl v3. (10.93 KB, patch)
2013-07-12 07:38 UTC, Jonas Danielsson
none Details | Review
Implement ZoomControl v4 (10.83 KB, patch)
2013-07-12 07:40 UTC, Jonas Danielsson
none Details | Review
Implement ZoomControl v5 (10.63 KB, patch)
2013-07-16 16:16 UTC, Jonas Danielsson
needs-work Details | Review
Implement ZoomControl v6 (10.58 KB, patch)
2013-07-24 21:08 UTC, Jonas Danielsson
none Details | Review
Implement ZoomControl v7 (10.09 KB, patch)
2013-08-15 06:53 UTC, Jonas Danielsson
none Details | Review
Implement ZoomControl v8 (3.34 KB, patch)
2013-08-15 06:57 UTC, Jonas Danielsson
needs-work Details | Review
Implement ZoomControl v9 (10.09 KB, patch)
2013-08-15 09:05 UTC, Jonas Danielsson
none Details | Review
some small visual tweaks (231.09 KB, image/png)
2013-08-15 09:29 UTC, Andreas Nilsson
  Details
Implement ZoomControl v10 (10.44 KB, patch)
2013-08-15 10:18 UTC, Jonas Danielsson
needs-work Details | Review
Add zoom-in/zoom-out controls (v11) (10.40 KB, patch)
2013-08-16 06:42 UTC, Jonas Danielsson
committed Details | Review

Description Jussi Kukkonen 2013-04-10 11:41:20 UTC
The design currently has no visible controls for zooming/panning. I like this, but it presents a problem when I'm using the laptop without a mouse: there is no way to zoom out.

The first thing I tried was middle-click-drag (IIRC Firefox calls this auto-scroll) but that does nothing and possibly isn't universally discoverable.

keybindings might help but not really solve the problem.
Comment 1 Zeeshan Ali 2013-04-10 13:05:20 UTC
(In reply to comment #0)
> The design currently has no visible controls for zooming/panning. I like this,

No you don't :) and we really need them soon. Design is very preliminary btw, Andreas and other designers have been way too busy with other stuff lately.

> keybindings might help but not really solve the problem.

Yeah, we need those too.
Comment 2 Andreas Nilsson 2013-04-15 00:11:32 UTC
Zoom control designs coming up!
Comment 3 Andreas Nilsson 2013-06-18 14:11:13 UTC
Created attachment 247151 [details]
zoom controls
Comment 4 Jonas Danielsson 2013-07-08 11:52:51 UTC
Created attachment 248609 [details] [review]
ZoomControl implementation

Hi,

Here is a suggestion for implementation of the ZoomControl. It is sort of based on the approach of Mattias wip-branch.

The styling is not my strong point so please think of ways to improve it.
It bothers me a bit that the positioning (currently at [20, 20] but that's just something I choose for having a base for discussion) is done from the js file and not from the css or ui files. Does anyone know of a way of achieving that?

Thankful for any comments and review that you have time for!
Thanks!
Comment 5 Jonas Danielsson 2013-07-08 11:54:40 UTC
Created attachment 248610 [details] [review]
Implement keyboard bindings for zoom

This patch adds simple key-pressed-event listener for ctrl-- and ctrl-+, do perform zoom.

If we want zoom to be a menu item it is better to add keyboard shortcuts via action_groups I guess, but that is up to designers.

Thanks!
Comment 6 Mattias Bengtsson 2013-07-09 12:40:34 UTC
Review of attachment 248610 [details] [review]:

::: src/mainWindow.js
@@ +195,3 @@
+
+        if (state & Gdk.ModifierType.CONTROL_MASK) {
+            if (keyval == Gdk.KEY_plus)

In general you want to use (===) instead of (==). (==) implies type coercion which most often is not what you want. 
Otherwise fine!
Comment 7 Mattias Bengtsson 2013-07-09 12:40:35 UTC
Review of attachment 248610 [details] [review]:

::: src/mainWindow.js
@@ +195,3 @@
+
+        if (state & Gdk.ModifierType.CONTROL_MASK) {
+            if (keyval == Gdk.KEY_plus)

In general you want to use (===) instead of (==). (==) implies type coercion which most often is not what you want. 
Otherwise fine!
Comment 8 Jonas Danielsson 2013-07-09 13:08:29 UTC
(In reply to comment #7)
> Review of attachment 248610 [details] [review]:
> 
> ::: src/mainWindow.js
> @@ +195,3 @@
> +
> +        if (state & Gdk.ModifierType.CONTROL_MASK) {
> +            if (keyval == Gdk.KEY_plus)
> 
> In general you want to use (===) instead of (==). (==) implies type coercion
> which most often is not what you want. 
> Otherwise fine!

Thanks for review! And for js knowledge :)
New patch below.
Comment 9 Jonas Danielsson 2013-07-09 13:09:23 UTC
Created attachment 248721 [details] [review]
Implement keyboard bindings for zoom v2
Comment 10 Mattias Bengtsson 2013-07-09 13:44:19 UTC
Review of attachment 248609 [details] [review]:

Nice work! But needs some more fiddling. Zeeshan: do you want to do a review also or are you fine with me ACKing when Jonas is done?

::: data/gnome-maps.css
@@ +44,3 @@
+#zoom-out-button:insensitive {
+ background-image: url("zoom-out-insensitive.png");
+#zoom-in-button:hover {

Most of this CSS code was made to try to mimick the designs without using images directly. And it was also very much not finished. :)
So please try to remove the border-radius stuff and anything else that doesn't really matter when using images instead. :)

::: src/mapView.js
@@ +172,3 @@
+        let maxZoomLevel = this.view.get_max_zoom_level();
+        let newZoomLevel = this.view.get_zoom_level() + steps;
+        this._zoom(-1);

GObject properties can be accessed directly in GJS. Like this:
let minZoomLevel = this.view.min_zoom_level;

@@ +187,3 @@
+            } else {
+                this._zoomControl.enableZoomIn(true);
+        if (newZoomLevel <= maxZoomLevel &&

Move the enable-/disable stuff to the zoom control and just do this.emit('zoom-end')

::: src/zoomControl.js
@@ +33,3 @@
+    Extends: GtkClutter.Actor,
+
+    _init: function () {

I think we should actually take a mapView instance here.

@@ +48,3 @@
+        this._zoomOutButton.connect('clicked', Lang.bind(this, function() {
+            this.emit('zoom-out');
+        }));

...then drop these emit's and just call the map's zoomIn/zoomOut-methods.

We should then also listen to 'zoom-in' and 'zoom-out' signals from mapview and update the disabled state in here instead I think.

@@ +57,3 @@
+    enableZoomOut: function(enabled) {
+        this._zoomOutButton.set_sensitive(enabled);
+    },

Please remove trailing comma! :)
Comment 11 Mattias Bengtsson 2013-07-09 13:46:52 UTC
Review of attachment 248721 [details] [review]:

Looks good! Not sure if I can set accepted-commit-now though. Zeeshan?
Comment 12 Mattias Bengtsson 2013-07-09 20:44:33 UTC
Looked through the libchamplain code and found out that champlain actually notifies when the zoom-level change. You should be able to do:

   this._mapView.connect("notify::zoom-level", this._updateDisabled.bind(this)); 

... or something similar.
Comment 13 Jonas Danielsson 2013-07-10 10:14:55 UTC
(In reply to comment #10)
> Review of attachment 248609 [details] [review]:
> 
> Nice work! But needs some more fiddling. Zeeshan: do you want to do a review
> also or are you fine with me ACKing when Jonas is done?
> 
> ::: data/gnome-maps.css
> @@ +44,3 @@
> +#zoom-out-button:insensitive {
> + background-image: url("zoom-out-insensitive.png");
> +#zoom-in-button:hover {
> 
> Most of this CSS code was made to try to mimick the designs without using
> images directly. And it was also very much not finished. :)
> So please try to remove the border-radius stuff and anything else that doesn't
> really matter when using images instead. :)
> 

Sure. But I would really like someone else to look at this, I don't really know what I'm doing with this. And the result I have now look different on different systems. I'll add a screenshot on how it looks at one system later.

> ::: src/mapView.js
> @@ +172,3 @@
> +        let maxZoomLevel = this.view.get_max_zoom_level();
> +        let newZoomLevel = this.view.get_zoom_level() + steps;
> +        this._zoom(-1);
> 
> GObject properties can be accessed directly in GJS. Like this:
> let minZoomLevel = this.view.min_zoom_level;

Ok.

> 
> @@ +187,3 @@
> +            } else {
> +                this._zoomControl.enableZoomIn(true);
> +        if (newZoomLevel <= maxZoomLevel &&
> 
> Move the enable-/disable stuff to the zoom control and just do
> this.emit('zoom-end')
> 

Do we need to emit?

> ::: src/zoomControl.js
> @@ +33,3 @@
> +    Extends: GtkClutter.Actor,
> +
> +    _init: function () {
> 
> I think we should actually take a mapView instance here.

Ok.

> 
> @@ +48,3 @@
> +        this._zoomOutButton.connect('clicked', Lang.bind(this, function() {
> +            this.emit('zoom-out');
> +        }));
> 
> ...then drop these emit's and just call the map's zoomIn/zoomOut-methods.
> 
> We should then also listen to 'zoom-in' and 'zoom-out' signals from mapview and
> update the disabled state in here instead I think.

Ok. (notify::zoom-level on mapView.view)

> 
> @@ +57,3 @@
> +    enableZoomOut: function(enabled) {
> +        this._zoomOutButton.set_sensitive(enabled);
> +    },
> 
> Please remove trailing comma! :)

Ok.
Comment 14 Jonas Danielsson 2013-07-10 10:15:45 UTC
Created attachment 248817 [details] [review]
Implement ZoomControl v2.
Comment 15 Jonas Danielsson 2013-07-10 10:20:31 UTC
Created attachment 248819 [details]
Screenshot of my gnome-maps

I can't seem to get rid of the border on this system. Is it theme related?
How does it look for you?

Anyone have any tips for the styling? Or can make me some svg-images for the different states?

zoom-in
zoom-out
zoom-in-insensitive
zoom-out-insensitive
Comment 16 Mattias Bengtsson 2013-07-10 14:13:37 UTC
(In reply to comment #13)
> > @@ +187,3 @@
> > +            } else {
> > +                this._zoomControl.enableZoomIn(true);
> > +        if (newZoomLevel <= maxZoomLevel &&
> > 
> > Move the enable-/disable stuff to the zoom control and just do
> > this.emit('zoom-end')
> > 
> 
> Do we need to emit?

No I don't think so. Just listen to notify::zoom-level
Comment 17 Mattias Bengtsson 2013-07-10 14:16:51 UTC
(In reply to comment #13)
> Sure. But I would really like someone else to look at this, I don't really know
> what I'm doing with this. And the result I have now look different on different
> systems. I'll add a screenshot on how it looks at one system later.

I think we only need to care about Adwaita in this case. But yeah, I got stuck here too. I have no idea on how to:
1) implement this as a custom gtk+ css-style 
2) where to find documentation on this
Comment 18 Jonas Danielsson 2013-07-12 07:38:05 UTC
Created attachment 248985 [details] [review]
Implement ZoomControl v3.

So yeah.

I ran in to problems with adwaita that i didn't have with my standard Ubuntu theme.

In adwauta I had to clear the clutteractorbg, took a while before I caught that. I checked all possible style properties of GtkBox and GtkGrid before realizing.

Also under adwaita I can't manage yo completely remove borders on the GtkButton.
I've checked inner-border, default-border and default-outside-border, they are all 0 0 0 0 but still there is something there under adwaita. So this version of the patch uses GtkEventBox. The drawback(?) with that is that I can't seem to user :hover in the css.

This version uses non-transparent, non-rounded images. The opacity and rounding is done in CSS. I don't think this should be commit as is. But rather some designer should look at making pixel-perfect images to use and update this.

Or if this is commited and later fixed. Maybe.
Or maybe this just get rejected and discarded as the rambling musings of an confused developer. And someone else implements proper sane controls.

There are options.

Much obliged.
Comment 19 Jonas Danielsson 2013-07-12 07:40:47 UTC
Created attachment 248986 [details] [review]
Implement ZoomControl v4

Remove stray context-style debug code.
Comment 20 Mattias Bengtsson 2013-07-12 22:21:25 UTC
Review of attachment 248986 [details] [review]:

Overall fine. Don't worry about the styling for now. We obviously need help from someone here.

::: src/zoomControl.js
@@ +42,3 @@
+
+        this._zoomInBox.connect('button-press-event',
+                                   Lang.bind(this, this._onZoomBoxClick));

Instead of this you can just do:

this._zoomInBox.connect('button-press-event', Lang.bind(mapView, mapView.zoomIn));

@@ +44,3 @@
+                                   Lang.bind(this, this._onZoomBoxClick));
+        this._zoomOutBox.connect('button-press-event',
+                                    Lang.bind(this, this._onZoomBoxClick));

...and then the same here.

@@ +56,3 @@
+    },
+
+    _onZoomBoxClick: function (widget, event) {

And then remove this method altogether.
Comment 21 Jonas Danielsson 2013-07-16 16:16:46 UTC
Created attachment 249280 [details] [review]
Implement ZoomControl v5

Thanks!
Comment 22 Zeeshan Ali 2013-07-22 20:46:33 UTC
Review of attachment 249280 [details] [review]:

Looks good but we really want to use a GtkButton and not an EventBox. Could you please try getting jhbuild environment setup so you can have the latest Adwaita?
Comment 23 Zeeshan Ali 2013-07-22 20:51:46 UTC
Review of attachment 248610 [details] [review]:

::: src/mainWindow.js
@@ +195,3 @@
+
+        if (state & Gdk.ModifierType.CONTROL_MASK) {
+            if (keyval == Gdk.KEY_plus)

Reference? I don't get any results from `git grep ===` in gnome-documents at least.
Comment 24 Jonas Danielsson 2013-07-24 05:02:58 UTC
(In reply to comment #22)
> Review of attachment 249280 [details] [review]:
> 
> Looks good but we really want to use a GtkButton and not an EventBox. Could you
> please try getting jhbuild environment setup so you can have the latest
> Adwaita?

I have a jhbuild environment setup and just copied my /opt/gnome/share/themes/Adwaita to ~/themes. Still the weird border around the button :(
Comment 25 Jonas Danielsson 2013-07-24 05:15:47 UTC
(In reply to comment #23)
> Review of attachment 248610 [details] [review]:
> 
> ::: src/mainWindow.js
> @@ +195,3 @@
> +
> +        if (state & Gdk.ModifierType.CONTROL_MASK) {
> +            if (keyval == Gdk.KEY_plus)
> 
> Reference? I don't get any results from `git grep ===` in gnome-documents at
> least.

I don't have a reference, but a git grep in gnome-shell give quite a few occurrences.

Btw, I could rework these two patches so that the keybindings can stand on it's own and could go in before the zoom-control one.
Comment 26 Zeeshan Ali 2013-07-24 14:03:24 UTC
(In reply to comment #24)
> (In reply to comment #22)
> > Review of attachment 249280 [details] [review] [details]:
> > 
> > Looks good but we really want to use a GtkButton and not an EventBox. Could you
> > please try getting jhbuild environment setup so you can have the latest
> > Adwaita?
> 
> I have a jhbuild environment setup and just copied my
> /opt/gnome/share/themes/Adwaita to ~/themes. Still the weird border around the
> button :(

I don't think you need any copying. Are you sure you are launching maps inside jhbuild environment? You could either do `jhbuild run gnome-maps` or `jhbuild shell` and then be in jhbuild env on the terminal from then on..

If you could provide the patch with button, I'll look into the theme issues.
Comment 27 Jonas Danielsson 2013-07-24 21:08:12 UTC
(In reply to comment #26)
> 
> I don't think you need any copying. Are you sure you are launching maps inside
> jhbuild environment? You could either do `jhbuild run gnome-maps` or `jhbuild
> shell` and then be in jhbuild env on the terminal from then on..
> 
> If you could provide the patch with button, I'll look into the theme issues.


I do the jhbuild run gnome-maps thing. But I grant that there might be something wrong with my jhbuild setup, will look into it when I get some more time.

Patch below.
Comment 28 Jonas Danielsson 2013-07-24 21:08:36 UTC
Created attachment 250074 [details] [review]
Implement ZoomControl v6
Comment 29 Zeeshan Ali 2013-08-03 10:22:51 UTC
Comment on attachment 248721 [details] [review]
Implement keyboard bindings for zoom v2

Patch commited with some changes, mainly that I added the implementation.
Comment 30 Jonas Danielsson 2013-08-15 06:53:42 UTC
Created attachment 251687 [details] [review]
Implement ZoomControl v7

So, the property that removed the funny border was: border-image-width.

This patch is rebased against master and now uses the ChamplainView zoom functions.

Any comments on the style and position of the controls would be welcome, maybe we can get this in to 3.10.

Thanks.
Comment 31 Jonas Danielsson 2013-08-15 06:57:59 UTC
Created attachment 251688 [details] [review]
Implement ZoomControl v8

Sorry, git config mixup, correct email now.
Comment 32 Zeeshan Ali 2013-08-15 08:55:58 UTC
Review of attachment 251688 [details] [review]:

You fogot to add the zoomControl.js ?
Comment 33 Zeeshan Ali 2013-08-15 08:58:18 UTC
Review of attachment 251688 [details] [review]:

::: src/gnome-maps.gresource.xml
@@ +4,3 @@
     <file preprocess="xml-stripblanks">app-menu.ui</file>
     <file preprocess="xml-stripblanks">main-window.ui</file>
+    <file preprocess="xml-stripblanks">zoom-control.ui</file>

You forgot to add this file too. :)

@@ +9,3 @@
+    <file alias="zoom-out.png">../data/media/zoom-out.png</file>
+    <file alias="zoom-in-insensitive.png">../data/media/zoom-in-insensitive.png</file>
+    <file alias="zoom-out-insensitive.png">../data/media/zoom-out-insensitive.png</file>

Are we still using these? If so, you want to addd these files to the patch.
Comment 34 Jonas Danielsson 2013-08-15 09:05:24 UTC
Created attachment 251702 [details] [review]
Implement ZoomControl v9

Added missing files. Sorry.
Comment 35 Andreas Nilsson 2013-08-15 09:29:12 UTC
Created attachment 251703 [details]
some small visual tweaks

* smaller + and -
* no rounding on bottom for the top button, no rounding on top for the bottom button
* 1px padding instead of 2px
Comment 36 Jonas Danielsson 2013-08-15 10:18:00 UTC
Created attachment 251710 [details] [review]
Implement ZoomControl v10

Better?
Comment 37 Zeeshan Ali 2013-08-15 16:27:43 UTC
Review of attachment 251710 [details] [review]:

The commit log is obsolete as we ended-up not adding any zoomControl in previous patch. Suggestion: Add zoom-in/out controls

::: src/gnome-maps.gresource.xml
@@ +9,3 @@
+    <file alias="zoom-out.png">../data/media/zoom-out.png</file>
+    <file alias="zoom-in-insensitive.png">../data/media/zoom-in-insensitive.png</file>
+    <file alias="zoom-out-insensitive.png">../data/media/zoom-out-insensitive.png</file>

These are still redundant.

::: src/zoomControl.js
@@ +30,3 @@
+
+    _init: function (mapView) {
+        GtkClutter.Actor.prototype._init.call(this);

Pardon my lack of JS skills but is this very indirect call really needed? Are you simply chaining up to parent's constructor? If so, you probably want to do it the same way as Application class does:

        this.parent({ application_id: 'org.gnome.Maps' });
Comment 38 Jonas Danielsson 2013-08-15 17:43:21 UTC
(In reply to comment #37)
> Review of attachment 251710 [details] [review]:
> 
> The commit log is obsolete as we ended-up not adding any zoomControl in
> previous patch. Suggestion: Add zoom-in/out controls
> 
> ::: src/gnome-maps.gresource.xml
> @@ +9,3 @@
> +    <file alias="zoom-out.png">../data/media/zoom-out.png</file>
> +    <file
> alias="zoom-in-insensitive.png">../data/media/zoom-in-insensitive.png</file>
> +    <file
> alias="zoom-out-insensitive.png">../data/media/zoom-out-insensitive.png</file>
> 
> These are still redundant.
> 

Sorry, but in what way are they redundant?
The files are in use, and referenced in the css as background images.
If I don't add them here, then where should I add them?

> ::: src/zoomControl.js
> @@ +30,3 @@
> +
> +    _init: function (mapView) {
> +        GtkClutter.Actor.prototype._init.call(this);
> 
> Pardon my lack of JS skills but is this very indirect call really needed? Are
> you simply chaining up to parent's constructor? If so, you probably want to do
> it the same way as Application class does:
> 
>         this.parent({ application_id: 'org.gnome.Maps' });

Changed it to this.parent(); I need to chain up before the clear-background thing.
Comment 39 Zeeshan Ali 2013-08-15 21:43:10 UTC
(In reply to comment #38)
> (In reply to comment #37)
> > Review of attachment 251710 [details] [review] [details]:
> > 
> > The commit log is obsolete as we ended-up not adding any zoomControl in
> > previous patch. Suggestion: Add zoom-in/out controls
>
> > ::: src/gnome-maps.gresource.xml
> > @@ +9,3 @@
> > +    <file alias="zoom-out.png">../data/media/zoom-out.png</file>
> > +    <file
> > alias="zoom-in-insensitive.png">../data/media/zoom-in-insensitive.png</file>
> > +    <file
> > alias="zoom-out-insensitive.png">../data/media/zoom-out-insensitive.png</file>
> > 
> > These are still redundant.
> > 
> 
> Sorry, but in what way are they redundant?
> The files are in use, and referenced in the css as background images.
> If I don't add them here, then where should I add them?

Sorry my bad, more like spliter's bad as it doesn't show the binary files.

> > ::: src/zoomControl.js
> > @@ +30,3 @@
> > +
> > +    _init: function (mapView) {
> > +        GtkClutter.Actor.prototype._init.call(this);
> > 
> > Pardon my lack of JS skills but is this very indirect call really needed? Are
> > you simply chaining up to parent's constructor? If so, you probably want to do
> > it the same way as Application class does:
> > 
> >         this.parent({ application_id: 'org.gnome.Maps' });
> 
> Changed it to this.parent(); I need to chain up before the clear-background
> thing.

Cool, patch should be ready to push in next iteration then.
Comment 40 Jonas Danielsson 2013-08-16 06:42:16 UTC
Created attachment 251785 [details] [review]
Add zoom-in/zoom-out controls (v11)

Here is latest.

How is the visual looking, Andreas?
Comment 41 Andreas Nilsson 2013-08-16 08:54:20 UTC
(In reply to comment #40)
> Created an attachment (id=251785) [details] [review]
> Add zoom-in/zoom-out controls (v11)
> 
> Here is latest.
> 
> How is the visual looking, Andreas?

Looking good!
Comment 42 Jonas Danielsson 2013-08-16 09:47:54 UTC
Hi,

Andreas wanted to put the controls in the bottom right, but I have no idea how to do that using ClutterActors. Do anyone have an idea?

I've tried the properties that looked relevant on ClutterActor, and even tried:


this._zoomControl.set_position(this.view.get_width() - 20,
                               this.view.get_height() - 20);

But no go.

I'm not familiar enough with Clutter to know how to do this.
Comment 43 Andreas Nilsson 2013-08-16 09:55:20 UTC
My idea was that it would feel less intrusive, but if it's too hard, we can have it in the top-left for now.
Comment 44 Zeeshan Ali 2013-08-16 12:48:10 UTC
Ok, lets get these controls in for now.

Some thoughts:

1. I don't think controls should be in bottom right, they look out of the place there.
2. I wonder if we really need or even want to use clutter actor here. The sidebar (which is currently hidden because of lack of any content) use a gtk overlay so would be nice to use the same here.
3. The buttons don't seem to have a 'pressed' state, which is what a user will expect from a button.
4. For simple buttons like these, do we really need to use images for background?

We could address all these concerns/action items in separate bug(s) now as this bug is really fixed now.