Closed
Bug 250864
Opened 21 years ago
Closed 21 years ago
Right-to-Left support for Chatzilla
Categories
(Other Applications Graveyard :: ChatZilla, enhancement, P2)
Other Applications Graveyard
ChatZilla
Tracking
(Not tracked)
RESOLVED
FIXED
mozilla1.8alpha5
People
(Reporter: bugzillamozilla, Assigned: asaf)
Details
(Keywords: relnote)
Attachments
(1 file, 1 obsolete file)
|
7.32 KB,
patch
|
bugzilla-mozilla-20000923
:
review+
|
Details | Diff | Splinter Review |
Like most IRC clients, Chatzilla currently only supports Left-to-Right paragraph
direction. Adding an option for Right-to-Left is very likely to be a killer
feature among many BiDi users (e.g. Hebrew and Arabic).
Open issues:
1. Should switching between RTL and LTR be command or GUI-based? Note that when
the input line is RTL, it may be confusing to switch back to LTR using a
command, since the / ends up on the wrong side of the sentence.
2. If BiDi is implemented using GUI, which context menus should include this
option? IMHO, the Tab-menu and contentarea-menu are prime candidates.
3. Should the direction of the content area and the input line be linked? To
simplify things, I believe that they should.
Prog.
Related to bug 128773?
| Assignee | ||
Comment 2•21 years ago
|
||
(In reply to comment #1)
> Related to bug 128773?
Noop, the issue here is a way to access .style.direction of the content area (and the input area).
----
Taking bug
Status: NEW → ASSIGNED
| Assignee | ||
Comment 3•21 years ago
|
||
What's added:
* /rtl and /ltr: switch both content and input area direction
* "Switch Text Direction" GUI in the contextual menus for tabs and content area
* direction is per channel (for both content and input areas).
* /irtl /iltr for changing (temporary) the *input area only* direction (e.g.
for commands with parameters).
| Assignee | ||
Comment 4•21 years ago
|
||
Comment on attachment 153403 [details] [diff] [review]
patch
Requesting review from Silver.
Attachment #153403 -
Flags: review?(silver)
Comment 5•21 years ago
|
||
Comment on attachment 153403 [details] [diff] [review]
patch
Pendant guide: http://www.hacksrus.com/~ginda/pedant.html
>+ // text-direction aliases
>+ ["rtl", "text-direction rtl", CMD_CONSOLE],
>+ ["ltr", "text-direction ltr", CMD_CONSOLE],
>+ ["switch-text-dir", "text-direction switch", 0],
The usual way parameter to toggle settings is 'toggle' rather than 'switch'.
>+function cmdTextDirection(e)
>+{
>+ var direction;
>+
>+ switch (e.dir)
>+ {
>+ case "switch":
>+ if (window.getComputedStyle(client.currentObject.frame.contentDocument.body, '').direction == "ltr")
Lines should be kept to 80 characters or less. Probably best to put
|client.currentObject.frame.contentDocument.body| into a variable in this case.
You can also use |null| for the second parameter to getComputedStyle - I think
it's a bit clearer, but it's up to you (it works fine with '').
>+ direction = 'rtl';
>+ else
>+ direction = 'ltr';
>+ break;
>+ case "rtl":
>+ direction = 'rtl';
>+ break
Missed a semi-colon. ;)
>+ default:
>+ // that is "case "ltr":", but even if !e.dir OR e.dir is an invalid value -> set to default direction
>+ direction = 'ltr';
>+ }
>+ client.input.style.direction = direction;
>+ client.currentObject.frame.contentDocument.body.style.direction = direction;
Here, and earlier, you use |client.currentObject|. This means it's impossible
to run this on any other view. You should be able to use |e.sourceObject| as a
direct replacement, and with the bonus that you can change the text direction
on a view you aren't looking at.
> ["-"],
> ["leave", {visibleif: "cx.TYPE == 'IRCChannel'"}],
> ["delete-view", {visibleif: "cx.TYPE != 'IRCChannel'"}],
>- ["disconnect"]
>+ ["disconnect"],
>+ ["-"],
>+ ["switch-text-dir"]
> ]
> };
>
>@@ -312,7 +314,9 @@
> ["-"],
> ["leave", {visibleif: "cx.TYPE == 'IRCChannel'"}],
> ["delete-view", {visibleif: "cx.TYPE != 'IRCChannel'"}],
>- ["disconnect"]
>+ ["disconnect"],
>+ ["-"],
>+ ["switch-text-dir"]
> ]
> };
These seems odd, adding a separator and the item to the bottom. Does it
actually look ok there?
> singleInputBox.setAttribute ("collapsed", "true");
> splitter.setAttribute ("collapsed", "false");
> multiInputBox.setAttribute ("collapsed", "false");
>+ // muliInput should have the same direction as singleInput
>+ multiInput.style.direction = window.getComputedStyle(singleInput,'').direction;
Pedant: >80 characters.
> client.input = multiInput;
> }
> else /* turn off multiline input mode */
>@@ -1876,6 +1878,8 @@
> splitter.setAttribute ("collapsed", "true");
> multiInputBox.setAttribute ("collapsed", "true");
> singleInputBox.setAttribute ("collapsed", "false");
>+ // singleInput should have the same direction as multiInput
>+ singleInput.style.direction = window.getComputedStyle(multiInput,'').direction;
Same. :)
Also, is it actually nessessay to 'copy' the direction when changing inputs?
Does it not work if you set the direction on both from cmdInputTextDirection?
> if (client.PRINT_DIRECTION == 1)
> scrollDown(obj.frame, false);
>-
>+
>+ // Input area should have the same direction as the output area
>+ client.input.style.direction = window.getComputedStyle(client.currentObject.frame.contentDocument.body,'').direction;
You know what I'm going to say here. I do also wonder if we can really be safe
assuming |.frame.contentDocument.body| will be there in each case...
>+cmd.rtl.help = Switches text direction to Right-to-Left
>+cmd.ltr.help = Switches text direction to Left-to-Right
>+
>+cmd.irtl.help = Switches input area direction to Right-to-Left
>+cmd.iltr.help = Switches input area direction to Left-to-Right
Pedant: help text should end with a full-stop (or other punctuation).
>+
>+cmd.switch-text-dir.label = Switch Text &Direction
>+
Doesn't _D_ conflict with _D_isconnect? Perhaps _T_ext?
Attachment #153403 -
Flags: review?(silver) → review-
| Assignee | ||
Comment 6•21 years ago
|
||
Addressing most comments (most means we decided to leave some things as they
are after discussing them on #chatzilla).
Keyboard shortcut has been also added (Accel+Shift+E, as in bidiui:
http://bidiui.mozdev.org).
Attachment #153403 -
Attachment is obsolete: true
| Assignee | ||
Updated•21 years ago
|
Attachment #153429 -
Flags: review?(silver)
| Assignee | ||
Updated•21 years ago
|
Priority: -- → P2
Target Milestone: --- → mozilla1.8beta
Comment 7•21 years ago
|
||
Comment on attachment 153429 [details] [diff] [review]
Fixed patch
Allignment of []s in commands.js is a little off.
r=silver@warwickcompsoc.co.uk with that fixed.
Attachment #153429 -
Flags: review?(silver) → review+
Comment 8•21 years ago
|
||
Fix checked in with the alignment corrected. Thank you, Asaf!
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Updated•21 years ago
|
Product: Core → Other Applications
| Assignee | ||
Updated•21 years ago
|
Target Milestone: mozilla1.8beta → mozilla1.8alpha5
Updated•11 months ago
|
Product: Other Applications → Other Applications Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•