Subject: [Gimp-gui] Make the selected tool default to the Color Picker instead of the last tool used

From: Elle Stone <[email-masked]>
Date: Tue, 3 Nov 2015 12:36:15 -0500

This is a change to the GIMP user interface that I've wanted for a long 
time. It probably would only benefit people who use the Color Picker a lot.

When you use a tool, say Curves, and the operation completes, and then 
you click on the canvas again, Curves pops up again, unless you remember 
to pick a different tool.

Almost never do I actually want to use same tool that I just used, 
immediately again.

Almost always the tool I really want to use next is the Color Picker.

It would be nice to have the option in Preferences, maybe under the Tool 
Options,  to set a "default tool", such that regardless of what the last 
tool used happened to be, upon completing the algorithm, the selected 
tool would reset itself to the user's chosen default tool.

This would eliminate the problem of having to continually reselect the 
Color Picker (if that's the tool the user chose as the default tool), 
and dismiss unwanted dialogs that pop up, and wait for unintended 
editing operations to complete before hitting the "undo" button.

Maybe there's already a way to do this in Preferences, and I just 
haven't found it?

Elle

---

From: Jehan <[email-masked]>
Date: Tue, 03 Nov 2015 19:07:51 +0100

Hi,

On 2015-11-03 18:36, Elle Stone wrote:
> This is a change to the GIMP user interface that I've wanted for a
> long time. It probably would only benefit people who use the Color
> Picker a lot.

There are so many different type of users, I seriously doubt it is 
possible to select *one* tool as being the most common case. And if we 
were, the color picker would not be my choice. Users of paint tools 
would very often use ctrl-click in place of running the color picker, 
for instance.

Of course, as a choice (as you propose below), why not, of course.

> you click on the canvas again, Curves pops up again, unless you
> remember to pick a different tool.

Doesn't it become an habit to switch tools without even thinking about 
it? Especially when you are a daily user, it seems strange reading that 
you forget to pick the tool.

I'm wondering if the issue in your specific example is not rather than 
the cursor of "Curves" is nearly the same as the cursor of the "Color 
Picker" (a small pipette)? Maybe this is confusing?

> Almost never do I actually want to use same tool that I just used,

Well once again, that depends on users and even more on which tools. 
Paint tools are again a good case where people use them again and again 
in the row (unless your art is "calligraphy" maybe, you don't paint a 
full artworks in a single stroke).

Even other tools, like transformation tools, I have often seen users 
using them several times right after another, even though this is often 
not recommended, image-quality wise.

> It would be nice to have the option in Preferences, maybe under the
> Tool Options,  to set a "default tool", such that regardless of what
> the last tool used happened to be, upon completing the algorithm, the
> selected tool would reset itself to the user's chosen default tool.
> 

Tools with long editing operations don't perform immediately (as you 
say, they usually first popup), so there should be already no wait.
Anyway I am personally trying to limit more and more options in the 
preferences which become so crowded that nearly nobody seem to know what 
is there. Yet I seem to be one of the only ones who seem to think so, so 
I don't really know.

Also I have a behavior/spec question for the feature. Let's take your 
"Curves" tool example.
Let's say I changed my mind after having run curves and I want to redo 
the curves processing differently. So I cancel (ctrl-z). When the user 
selected your "default tool" option (so now this default tool is the 
selected one), what should be the tool selected after canceling? Still 
the default tool, or should GIMP switch back to curves?

> Maybe there's already a way to do this in Preferences, and I just

I don't think so, but as I said, there are so many preferences that I 
forget them.

Jehan

> Elle
> _______________________________________________
> gimp-gui-list mailing list
> [email-masked]
> https://mail.gnome.org/mailman/listinfo/gimp-gui-list

---

From: Elle Stone <[email-masked]>
Date: Thu, 5 Nov 2015 09:34:32 -0500

> you forget to pick the tool.

It does seem strange, because I've been using GIMP a lot over the last 
couple of years. So yesterday I worked on an image, trying to figure out 
when/where/why I lost track of which tool is selected.

When working on an image, sometimes it seems like I use the Color Picker 
after just about every editing operation. Having to deliberately click 
on the tool icon to rechoose the Color Picker of itself is tedious. But 
I can ease that issue by assigning (and using) a keyboard shortcut.

Here's what seems to be the real problem:

For many tools, including Curves and Levels, the selected tool's Cursor 
doesn't actually appear until I "touch" the canvas, at which point the 
last-used operation dialog pops up and I have to dismiss that dialog and 
then choose the Color Picker.

> Picker" (a small pipette)? Maybe this is confusing?

Yes, the Curves Cursor is nearly the same as the Color Picker Cursor, 
and this is confusing.

> full artworks in a single stroke).

Maybe some digital painters might like to have the option to choose to 
have the selected tool default to a brush, but probably not. When I use 
Krita to paint, I wouldn't want the color picker tool to automatically 
switch back to the brush. So I think my suggestion for a global default 
tool really isn't such a good idea.

> the default tool, or should GIMP switch back to curves?

That's a good question, to which there doesn't seem to be a good answer. 
So here's how I think the issue of remembering which tool was last used 
maybe could be addressed:

It would help a lot if the Color Picker Cursor were changed, or rather 
preferably change the Curves cursor and keep the Color Picker Cursor the 
same.

It would help a lot (this would be the key change) if the selected 
tool's Cursor could immediately display "on hover",  *before* clicking 
on the canvas, for more tools, specifically including Levels, Curves, 
Desaturate, and other tools with icons that can be put in the toolbox.

Elle

---

From: Jehan <[email-masked]>
Date: Thu, 05 Nov 2015 19:26:36 +0100

Hi,

On 2015-11-05 15:34, Elle Stone wrote:
> couple of years. So yesterday I worked on an image, trying to figure
> out when/where/why I lost track of which tool is selected.
> 
> When working on an image, sometimes it seems like I use the Color
> Picker after just about every editing operation. Having to
> deliberately click on the tool icon to rechoose the Color Picker of
> itself is tedious. But I can ease that issue by assigning (and using)
> a keyboard shortcut.
> 
> For many tools, including Curves and Levels, the selected tool's
> Cursor doesn't actually appear until I "touch" the canvas, at which
> point the last-used operation dialog pops up and I have to dismiss
> that dialog and then choose the Color Picker.
> 
>> 
> have the selected tool default to a brush, but probably not. When I
> use Krita to paint, I wouldn't want the color picker tool to
> automatically switch back to the brush. So I think my suggestion for a
> global default tool really isn't such a good idea.
> 
> That's a good question, to which there doesn't seem to be a good
> answer. So here's how I think the issue of remembering which tool was
> last used maybe could be addressed:
> 
> preferably change the Curves cursor and keep the Color Picker Cursor
> the same.

I see 2 ways to do this. Either we could keep the color picker cursor 
and add a cursor modifier, like for instance the color picker tool has 
the small white and black fg/bg squares just above the pipette cursor.
Or we make a full cursor of its own, specific to curves but still with 
the idea of color picking. I would suggest you (or other artists reading 
this list) to propose something in one or another way. :-)
You can find all cursors and cursor modifiers under cursors/ in the 
source tree.

Of course, I could ask someone, and I would if there is no proposition, 
but one of the points of this list is also for getting non-developers to 
contribute. Because we all make GIMP. :-)

Only limitation is to stay in a similar design, of course.

> Desaturate, and other tools with icons that can be put in the toolbox.

For me, this is an obvious bug. The Curves tool was not considered 
"enabled" at selection but at initialization (which happened only when 
you start computing, i.e. at the first click). Fixed with commits 
011c6db for Curves.

Desaturate on the other hand does not have any cursor here, which may 
seem understandable since it does not look like it has a lot of 
interaction on canvas. Does it have a special cursor in your case?
As for Levels, the cursor changes only when you explicitly check one of 
the "Pick white/black/grey point" button, and disappears after, which 
seems reasonable and consistent to me.
Did I miss something for these 2 tools?

Jehan

---

From: Elle Stone <[email-masked]>
Date: Thu, 5 Nov 2015 15:24:27 -0500

> you start computing, i.e. at the first click). Fixed with commits

Thanks! that's a nice commit. That makes Curves indicate that it's the 
chosen tool by showing the cursor icon upon hovering over the image, and 
also it causes the status bar to display the cursor icon and some 
explanatory text. The "show icon upon hover is the more useful of the 
two for people like me who tend to have no status bar, no menu bar, ect 
cluttering up the available screen real estate.

> Did I miss something for these 2 tools?

I went into Preferences and put every possible tool in the toolbox and 
checked to see what happens upon hovering over the image.

These tools indicate that they are the selected tool by showing an icon 
when hovering over the image, and also by displaying the icon in the 
status bar, along with some explanatory text:

airbrush
align
blur/sharpen
clone
color picker
curves
dodge/burn
ellipse select
eraser
foreground select
free select
fuzzy select
heal
ink
paintbrush
paths
pencil
rectangle select
scissors select
select by color
smudge

These tools indicate that they are the selected tool by showing an icon 
when hovering over the image. But they don't show an icon or explanatory 
text in the status bar.

blend
bucket fill
cage
crop
flip
measure
move
perspective
perspective clone
rotate
scale
shear
text
unified transform
warp
zoom

These tools don't show an icon upon hovering over the image and also 
don't show any explanatory text in the status bar:

brightness-contrast
color balance
colorize
desaturate
gegl
gegl
hue-saturation
levels
posterize
threshold

(As an aside, the second gegl icon doesn't seem to do anything. Though 
if you click on the image, the history dialog shows that a gegl 
operation happened.)

As all the tools listed above do have very nice icons, it would be nice 
if their icons would show upon hovering over the image.

That would leave all the tools that are under various menus, but don't 
have icons to put them in the toolbox. Maybe a generic icon for "all 
other tools?

What are the criteria that separate "shows the icon" tools from "doesn't 
show the icon" tools?

Best,
Elle

---

From: Jehan <[email-masked]>
Date: Thu, 05 Nov 2015 23:39:42 +0100

Hi,

On 2015-11-05 21:24, Elle Stone wrote:
> chosen tool by showing the cursor icon upon hovering over the image,
> and also it causes the status bar to display the cursor icon and some
> two for people like me who tend to have no status bar, no menu bar,
> ect cluttering up the available screen real estate.
> 
>> 
> These tools indicate that they are the selected tool by showing an
> icon when hovering over the image, and also by displaying the icon in
> the status bar, along with some explanatory text:
> 
> airbrush
> align
> blur/sharpen
> clone
> color picker
> curves
> dodge/burn
> ellipse select
> eraser
> foreground select
> free select
> fuzzy select
> heal
> ink
> paintbrush
> paths
> pencil
> rectangle select
> scissors select
> select by color
> smudge
> 
> These tools indicate that they are the selected tool by showing an
> icon when hovering over the image. But they don't show an icon or
> explanatory text in the status bar.
> 
> blend
> bucket fill
> cage
> crop
> flip
> measure
> move
> perspective
> perspective clone
> rotate
> scale
> shear
> text
> unified transform
> warp
> zoom
> 
> As all the tools listed above do have very nice icons, it would be
> nice if their icons would show upon hovering over the image.
> 

Which tools? Are you sure they are tools and not filters?

> What are the criteria that separate "shows the icon" tools from
> "doesn't show the icon" tools?

Different implementers? :-)
Joke aside, I think many tools UI were just made up as developers coded 
them and the only resemblances comes from getting ideas from existing 
tools and copy-pasting code. There is no real consistency.

I'll have a look at your list later. Maybe we could spec a base expected 
behavior for any tool (for things such as cursor, status bar icons and 
text…) upon which each should specify their more specific behavior on.

If there are any missing icons or specific cursors which would make 
sense for given tools, do not hesitate to contribute.

Jehan

---

From: Elle Stone <[email-masked]>
Date: Fri, 6 Nov 2015 02:18:27 -0500

> Which tools? Are you sure they are tools and not filters?

Most are filters, as they are under the filters menu. And there are a 
few other editing operations sprinkled around the menu tree that don't 
seem to have associated icons/cursors and also can't be put in the toolbox.

A generic "other editing operation" icon/cursor might be a nice thing to 
display when the selected editing operation doesn't have an 
editing-operation-specific" icon/cursor.

What is the defining difference between a filter and a tool, other than 
the place they show up in the menu and whether they can be put in the 
toolbox?

Best,
Elle

---

From: Jehan <[email-masked]>
Date: Sun, 08 Nov 2015 17:40:12 +0100

Hi,

Le 6 nov. 2015 à 08:18, Elle Stone <[email-masked]> a 
écrit :

> A generic "other editing operation" icon/cursor might be a nice thing 
> to display when the selected editing operation doesn't have an 

Filters are basically plugins/scripts made to edit pixels (though 
nowadays they have mostly been re-implemented as GEGL operations 
instead), and as such they have a very limited interaction with GIMP GUI 
as of today (limited by the API GIMP provides). As far as I know, GIMP 
has no API to change the cursor to be used over the main canvas. 
Moreover you can perfectly run several plugins at once (which in many 
cases — in particular for these plugins which actually edit pixels — 
would not be wise), so how would this be dealt with anyway?

Tools are hard-coded in GIMP, not through plugins, and you can only 
select one tool at a time. Being hard coded in GIMP core, they have 
access to any part of a GUI that you are willing to implement. But users 
are not able to create their own tools without going through the normal 
upstream validation.

Jehan

---

From: Elle Stone <[email-masked]>
Date: Sun, 8 Nov 2015 16:05:31 -0500

>> What is the defining difference between a filter and a tool, other
>> than the place they show up in the menu and whether they can be put in
>> the toolbox?
>
> as of today (limited by the API GIMP provides).

Thanks! That makes sense. So GEGL operations under "Tools" are also filters?

> As far as I know, GIMP

Hmm, I think I've accidentally run more than one filter at a time, and 
it doesn't seem like a good idea, I think I might even have crashed GIMP 
once or twice doing that. Is there any advantage to keeping this option?

> are not able to create their own tools without going through the normal

Thanks! That's a very clear explanation.

Best,
Elle

---

From: Jehan <[email-masked]>
Date: Sun, 08 Nov 2015 23:08:33 +0100

Hi,

> Thanks! That makes sense. So GEGL operations under "Tools" are also 

They are different from the old-style filters in the implementation 
perspective, but we can say they are the same conceptually, i.e. 
basically some "operations" which transform an input image into another. 
Nowadays we are trying to get rid of old-style filters (upstream at 
least. I think third-party dev would still be able to create old-style 
filters without making a GEGL op, even though these are not upstream 
preferences anymore).

> it doesn't seem like a good idea, I think I might even have crashed
> GIMP once or twice doing that. Is there any advantage to keeping this
> option?

It's less an "option" than a lack in our API. Also some plugins are not 
meant to edit the image (they are not really filters). For instance the 
animation plugin could run for a very long time alongside other filters 
and not be much of a problem. Well it's not entirely true currently (for 
instance removing a layer in particular can be a problem), but it should 
be. This is a preview plugin which should be able to run while you 
modify your image.

In any case, these are just daily proofs that our API is still too 
limited.
Because you are right: a plugin which modifies deeply an image should be 
able to advertize to GIMP it cannot run alongside another similar 
plugin. And plugins should be able to receive "updates" from GIMP about 
modified images, and so on.

Jehan

---

From: Jehan <[email-masked]>
Date: Mon, 09 Nov 2015 16:17:14 +0100

Hi,

> checked to see what happens upon hovering over the image.

I've created this Wiki page where I reported your very helpful list:
http://gui.gimp.org/index.php/Tools_generic_ui_workgroup

My proposition (basically yours too) is that every tool could 
consistently have an icon (top-right of the cursor) unless they already 
have a unique and recognizable icon. Also they should have status text, 
as you note too.

I will pass this through Mitch to validate but I'm pretty sure he will 
agree (or you can answer, if you read this, Mitch). This is quite simple 
and straightforward but meaningful.

So now what we miss are the texts and the missing icons (which would 
likely be nearly the same ones as the toolbox version, but monochrome). 
See under cursors/ directory for style and size. Basically you will see 
various icons like tool-*.png. Let's make the missing ones (like 
tool-brightness-contrast.png, etc.).

Anyone up to the task?
Icon and text contributors are welcome. :-)

Jehan

---

From: Elle Stone <[email-masked]>
Date: Mon, 9 Nov 2015 12:27:30 -0500

> tool-brightness-contrast.png, etc.).

On my default GIMP 2.9 installation, all the tools that were available 
to put in the toolbox already have icons, including the 
Brightness/Contrast tool. Maybe this varies from one theme to another? 
I'm using the default "Small" theme.

Also all the tools in the toolbox have text that appears when hovering 
over the tool icons in the toolbox. The existing text seems just fine 
for putting in the status bar. It would reduce the task of translators 
if the same text is used in both places, on hover over the tool and in 
the task bar.

Elle