Bug with justification: Mellel or Mac?

Feature requests, and in-depth discussions of features and the way Mellel works

Moderators: Eyal Redler, redlers, Ori Redler

Post Reply
mi.cy
Got the auto-title mojo working
Posts: 21
Joined: Tue Aug 29, 2006 8:54 pm

Bug with justification: Mellel or Mac?

Post by mi.cy »

[Note: this is one of the points raised in the post "unwanted mouse usage". I have split the various issues into separate posts to enhance discussion.]

When I use justified text and I click on the right side of a sentence, the cursor seems to appear before the space, as shown in the image. Note that the space is outside the margin (as it should), but the cursor is placed exactly on the margin, attached to the last word of the sentence:

Image

However, this is not the 'real' placement of the cursor, because when I start typing, the text is actually added after the space. This can clearly be seen when I change to non-justified text, as shown in the next image: now the cursor is shown at the other side of the space (where it logically seems to belong:

Image

This might be a more general mac error, because it also seems to happen in TextEdit (though I'm not sure). Whatever the cause, I find this very confusing. In justified text, the cursor should also appear on the other side of the space outside the margin.

best
michael
jannuss
Knows everything, can prove it
Posts: 843
Joined: Thu Oct 20, 2005 5:35 am
Location: Israel

Post by jannuss »

Confusing -- yes.
Bug -- no.
Let's call it a " feature."

When you use [left and right] justified text or centered text, the system, correctly, does not include trailing blanks when calculating text position.
>> you can test this by centering a short phrase. Add as many trailing blanks as you like, the text won't move.

Now, the question is, when you position the cursor at the end of the line, should the application include the ignored blanks or not? I could give you a good arguments for both choices. Mellel has chosen not to include them.

Janet
mi.cy
Got the auto-title mojo working
Posts: 21
Joined: Tue Aug 29, 2006 8:54 pm

Post by mi.cy »

I think you misunderstood my problem: I think the placement of the cursor at the end of the justified sentence is wrong. It should be visually placed after the space, where it logically belongs.

I would be glad to hear about possible reasons in favour of the current behaviour. I for me only find it confusing: when I start typing in the situation as shown in the first image, the I get:

... using<space>NEWTEXTTimes...

instead of the expected:

...usingNEWTEXT<space>Times...

best
michael
jannuss
Knows everything, can prove it
Posts: 843
Joined: Thu Oct 20, 2005 5:35 am
Location: Israel

Post by jannuss »

mi.cy wrote:I think you misunderstood my problem: I think the placement of the cursor at the end of the justified sentence is wrong. It should be visually placed after the space, where it logically belongs.
Sorry, Michael, I disagree.

There's no right or wrong here. There's a choice.

Since trailing blanks have no function in justified or centered text and are ignored in text placement, the developers of Mellel chose to ignore them as well in cursor placement. This is a consistent, logical choice.

It they had chosen the other option (to place the cursor after the trailing blank), think of the difficulties it would create and the confusion it would cause. The cursor can't go in the margin. So, in order to place the cursor after the blank, the text of the entire line would have to be repositioned. If the line was already full, the cursor would have to be repositioned on the next line!

Janet
mi.cy
Got the auto-title mojo working
Posts: 21
Joined: Tue Aug 29, 2006 8:54 pm

Post by mi.cy »

I completely agree that the text placement should not be changed.

However, I don't know about possible technical problems, but as a user I would really prefer the cursor to go into the margin.

M$ Word can do it...

best
michael
eleuteruiz
Knows everything, can prove it
Posts: 82
Joined: Sun Nov 13, 2005 4:43 pm

Post by eleuteruiz »

Perhaps I misunderstood your question, Michael. But when I want to insert new text at the end of the line, appended to the last word, I put the cursor (with the mouse) directly there, and the text gets appended as in your second example:

...usingNEWTEXT<space>Times...

When instead I click outside the margin line, then the cursor gets inserted after the space (although, agreed, shown as "before" it in the justified text) and the new text appended to the following word.

I find this solution easy to understand and coherent.
Eleuterio
donb
Knows everything, can prove it
Posts: 326
Joined: Thu Oct 20, 2005 7:43 am

Post by donb »

I suggest you turn on "All invisible characters" via the Show button at the bottom left of the Mellel screen. This will show you precisely where your cursor is when you try to place it at the end of a line.

You will see a dot indicating a blank space after a word, or a paragraph indicator, etc. Place your cursor inside the line somewhere and press command+right arrow, and see where Mellel moves your cursor. Essentially, Mellel interprets end of line as the position to the right of the last character. This seems logical to me. If you want the cursor to be to the right of the blank space indicator, you can either move it there by pressing the right arrow again, or by clicking in front of the next line.

Don Broadribb
jannuss
Knows everything, can prove it
Posts: 843
Joined: Thu Oct 20, 2005 5:35 am
Location: Israel

Post by jannuss »

donb wrote:Place your cursor inside the line somewhere and press command+right arrow, and see where Mellel moves your cursor. Essentially, Mellel interprets end of line as the position to the right of the last character. This seems logical to me. If you want the cursor to be to the right of the blank space indicator, you can either move it there by pressing the right arrow again, or by clicking in front of the next line.
Don, I agree that Mellel's interpretation is logical, but, unfortunately, your solution doesn't solve Michael's problem: no amount right arrow clicking will force Mellel to move the cursor into the margin after the trailing blank.

Clicking the front of the next line is a bad solution as well: text entered here will be appended to the first word on that line.

Janet
Ori Redler
One of the boys
Posts: 342
Joined: Wed Oct 19, 2005 11:45 pm
Contact:

Re: Bug with justification: Mellel or Mac?

Post by Ori Redler »

mi.cy wrote: When I use justified text and I click on the right side of a sentence, the cursor seems to appear before the space, as shown in the image. Note that the space is outside the margin (as it should), but the cursor is placed exactly on the margin, attached to the last word of the sentence:

However, this is not the 'real' placement of the cursor, because when I start typing, the text is actually added after the space. This can clearly be seen when I change to non-justified text, as shown in the next image: now the cursor is shown at the other side of the space (where it logically seems to belong:

michael
Michael, there's no "real" placement for the cursor. When your text is block justified, Mellel is so built to ignore any space at the end of the line because this is how block justification works, but it is also sworn not to lie and pretend that there is no space at the end of the line, where there is one, actually. By the same token, it does not allow you to place the cursor beyond this space because that would mean it will allow you to place the cursor at the beginning of the next line but appear as though it is placed at the end of the line...

As other wrote: there is no definite right or wrong here, just decisions as to which way will be less misleading to most users most of the time.
Ori Redler from RedleX
mi.cy
Got the auto-title mojo working
Posts: 21
Joined: Tue Aug 29, 2006 8:54 pm

Post by mi.cy »

To Ori:

I *do* find the current situation very misleading, that's the reason I posted this in the first place. When I am editing a text, and want to insert the pointer at the end of a line somewhere in the middle of a justified text, then I click in the right margin, and the pointer gets inserted at the end of the line. Rightly so.

However: it looks as though the pointer is inserted before the space at the end of the last word of this line (see the first picture of my original post), though it is actually inserted after the space. So: what it looks is not what I get! I find this highly confusing, and to me it is just simply inconsistent.

When I see the situation as exemplified in the first picture of my original post, then I first type a space, and then add any text. The result will then be a double space after the word, and a surprise as though the text handling, because the typed text is now attached to the next word.

best
michael
Phil82
Knows everything, can prove it
Posts: 81
Joined: Sat Nov 11, 2006 9:10 am

Post by Phil82 »

If you want it block justified, you don't want the space at the end of the line taken into consideration when calculating the justification. That would defeat the entire purpose of block justification, as your block of text will no longer be a "block", but a jagged block similar to left-justify. The only difference being that instead of having large gaps like you would in left-justify, you will have gaps of 1 space.
Mart°n
Knows everything, can prove it
Posts: 672
Joined: Fri Oct 21, 2005 2:09 am
Location: Germany

Post by Mart°n »

mi.cy wrote: I *do* find the current situation very misleading, that's the reason I posted this in the first place.
While one may understand your situation, I don’t think that the requested behavior is the better solution.
mi.cy wrote: When I am editing a text, and want to insert the pointer at the end of a line somewhere in the middle of a justified text, then I click in the right margin, and the pointer gets inserted at the end of the line.
This generates two questions:

1. Why do you click at the end of a line inside a justified text, if you like to add something after the last word. The only reason the last word was justified, is that there’s no more room to add a new word. Otherwise the word wouldn’t stick to the right border. So why would anyone write something into a already full line? The right position to insert your new word is at the beginning of the next line.

2. Justification is mostly a layout feature. If you use left aligned text while writing your text, the problem won’t occur.
mi.cy wrote: However: it looks as though the pointer is inserted before the space at the end of the last word of this line (see the first picture of my original post), though it is actually inserted after the space. So: what it looks is not what I get! I find this highly confusing, and to me it is just simply inconsistent.


Have you thought about the result if Mellel would display the cursor after a space at any time? What if you enter two spaces, what if you press space 20 or 200 times. Should Mellel give you the WYSIWYG result all the time? Even if you have to purchase three of those fancy 30 inch Apple Cinema Displays to extend your Desktop and the Mellel window so that you cursor would be displayed correctly after those 200 spaces? If not, where should one draw the line. After 199, 19 or 1 space character?
If the cursor would be displayed outside the border, it gives you the impression, that you could write right there, but that’s not the case. The picture that you will get on your screen will fool you in both cases. There is no right or wrong here.
mi.cy wrote: When I see the situation as exemplified in the first picture of my original post, then I first type a space, and then add any text. The result will then be a double space after the word, and a surprise as though the text handling, because the typed text is now attached to the next word.
I never hit that trap as I (as far as I remember) never tried to add a word into a full line. The only case when I move the cursor at the end of a justified line is when I like to edit or add something to the last word. A new word would fit nicely into the next line where the cursor/space problem doesn’t occur at all.

I’m sorry that I’m not able to deliver a solution but I think the current behavior is the better one of the two possible “wrong” ways to display the cursor at the end of a line.
Post Reply