Opened 9 years ago

Last modified 7 years ago

#3061 new defect

Font Controls Inconsistent and Unclear + Proposal for Revision

Reported by: irv Owned by: deryni
Milestone: Patches welcome Component: pidgin (gtk)
Version: 2.1.1 Keywords:
Cc:

Description

The controls for setting font formatting are really ambiguous, and they are in 6 different places(!) using terms that change meaning:

1) Conversations tab in Preferences: "Use font from theme"-- is this the displayed font or the transmitted font formatting or both? Does it apply to font, size, and/or color? Is it the "text[ACTIVE]" font, another font, or the conversation font selected optionally in the GTK Theme Control plugin?

2) Conversations tab in Preferences: "Conversation font"-- Again, is this the transmitted formatting, the displayed formatting, or both? Does it apply to received as well as sent messages? What is the text color transmitted if there is formatting transmitted (you can specify only font and size)? (I use the GTK theme Aero modified with white text on a dark background, but white text is bad for sending).

3) Conversations tab in Preferences: "Default formatting"-- is this an override of the selections above? Does checking none of the properties in the Font dropdown menu therefore transmit no formatting information (it appears that the answer is "no"-- the font itself (e.g. Georgia) at least is transmitted.)

4) GTK Theme Control plugin: "Conversation entry"-- What precisely is this overriding? Does this apply only to the text in the input field in the chat window and not the scrollback? How is this setting prioritized over other settings such as in preferences? What about text color (only font and size can be specified here)?

5) Conversation window: "Font" dropdown menu-- Is this for the buddy always or just for this session? Does this override every other text setting?

6) Conversation Colors plugin

I would totally redo font selection in Pidgin by having a Fonts tab in preferences with the following settings (this would also replace the GTK Theme Control Plugin, the Conversation Colors plugin, and several settings in the Conversations tab in Preferences). My proposal is as follows (I hope my outline terminology makes sense):

  1. Message font (defaults from theme, Pidgin defaults for platform): (font, size, style, color, background)
    1. Transmit formatting selected above to buddy? (yes/no-- DEFAULT: no)
      1. If above is "no" (unchecked), otherwise inactive: Message font appearing to buddy: (font, size, style, color, background-- DEFAULT: Arial, 12pt, normal, black, white)
      2. Note: Formatting specified using Font button in conversation window will override above settings.
    2. Use this font for logging? (yes/no-- DEFAULT: no)
      1. If "no" (unchecked) above, otherwise inactive: Logging font: (font, size, style, color, background-- DEFAULT Arial, 12pt, normal, black, white)
    3. Screenname color and style: Self, Buddy (DEFAULT: blue normal, red normal)
      1. Use for logging? (yes/no: DEFAULT: yes/checked)
      2. If "no" (unchecked) above, otherwise inactive: Logging screenname (colors, styles)
    4. Optional (yes/no) special formatting for system messages, etc. (specifications in new dialog unless "no" and is greyed-out) (DEFAULT: no[unchecked] and button is greyed-out/inactive)
  2. Pidgin menus and buttons (defaults from theme): (font, style, color)
  1. Buddy list (background color DEFAULTS from theme)
    1. Available buddy (font, size, style, color)
    2. Away buddy (font, size, style, color)
    3. Idle buddy (font, size, style, color)
    4. Group (font, size, style, color, highlight)
  2. Reset Font settings (re-read theme file) [button]

And then for the conversation window, next to or under the Font drop-down menu:

Remember settings for this buddy? (yes/no)

I figure that any consistent widget for selecting font formatting would be fine, as long as they allow selections as noted above. Checkboxes should substitute where I say "yes/no" above.

Change History (9)

comment:1 Changed 9 years ago by irv

In the proposal, add option right under #1: "Use for received messages?"

comment:2 Changed 9 years ago by deryni

  • pending changed from 0 to 1

The 'Use font from theme' and 'Conversation font' preferences are indeed badly named, badly placed, and unfortunately complex. I'll explain this as best I can in a separate post.

The 'Default Formatting' preference on the other hand is rather clear, the explanatory text in the text area is there for a reason and as it explains the way you see your text there is the way it will be sent out. If you set no font preferences in the dialog you will in fact send no formatting on outgoing messages, if you are seeing something else (and I have to ask how you determined that you are) I would suggest that you did in fact set font preferences at one point and that hitting the Font->Reset Formatting toolbar item might be a good idea.

The GTK+ Theme Control plugin controls the default font used in the conversation history area when a message does not specify a font of its own, it is only and exactly the 'font' gtkrc setting applied only to the history area. The name and explanation of the plugin was designed to make it clear what it was setting, as was the fact that the plugin allows you to write the settings to a file which can be examined.

The Font dropdown is just for that buddy and only until reset, which is exactly how it works in every other application anyone will ever have used. Both other IM applications and word processors work exactly this way. I find it unlikely that this will have confused anyone and, in fact, can not recall ever hearing anyone express confusion about it.

The Conversation Colors plugin could likely stand to be made a little more clear, and were I to have my way we would likely just drop it altogether as I personally don't like it much and have seen it cause a number of font, color, etc. annoyances for a number of people.

Pidgin level preferences to override or control or manipulate GTK+ theme settings are incredibly unlikely to make it into pidgin as they are in general really not a good idea. The only reason the GTK+ Theme Control plugin exists is because the GTK+ theme documentation is generally lacking and the only reason I wrote it at all was because I was going to include the ability to write the settings out to a file in the hopes of people being able to see the file and copy/understand it. I will strongly argue against any addition of random GTK+ theme setting controls into pidgin (and have done so on more than one occasion).

Similarly, message level formatting options do not belong in pidgin as preferences, if these were to happen at all they would be done at the gtkrc level via gtkimhtml (the text rendering widget we currently use) setting up the right GTK+ properties/settings or by our moving to a more feature complete text rendering widget (like the GTK+ port of WebKit) and the use of message styles/themes there.

I hope I didn't come across sounding too harsh, that was not my intent, I only wanted to indicate that I feel your proposal makes the pidgin font settings more complicated, harder to understand and work out correctly, and makes it more difficult to work correctly with GTK+ and GTK+ themes rather than unifying the (potentially conflicting) font configuration interfaces that currently exists.

Both suggestions on how to make the existing options more readily clear and/or ways to simplify the settings we currently are more than welcome.

comment:3 Changed 9 years ago by deryni

To explain 'Use font from theme' and 'Conversation font' a bit... A while back pidgin was changed to (when it is available) grab the 'document-font' from Gnome and to use that as the default history and entry area local display font. This worked nicely for Gnome users who had actually set that font to something they liked to read in their documents and didn't work at all for those who hadn't. At the time this usage of the document-font was mandatory and this didn't make people very happy. So the 'Use font from theme' preference was added to allow people to turn that off. A preference was needed because the coded font selection was overriding any gtkrc font choice the user might have made.

Apparently the 'Conversation font' preference was added as part of the ability to turn off the usage of the 'document-font' because the HIG in one section suggests that users be allowed to override the chosen document font. Given that I think the 'Conversation font' preference should be removed and if people want to set their own history area font they can use the GTK+ theme control plugin or use the correct snippet from our example gtkrc file.

comment:4 Changed 9 years ago by irv

  • pending changed from 1 to 0

Replying to deryni:

I appreciate the feedback. Really!

The 'Use font from theme' and 'Conversation font' preferences are indeed badly named, badly placed, and unfortunately complex. I'll explain this as best I can in a separate post.

The 'Default Formatting' preference on the other hand is rather clear, the explanatory text in the text area is there for a reason and as it explains the way you see your text there is the way it will be sent out. If you set no font preferences in the dialog you will in fact send no formatting on outgoing messages, if you are seeing something else (and I have to ask how you determined that you are) I would suggest that you did in fact set font preferences at one point and that hitting the Font->Reset Formatting toolbar item might be a good idea.

This issue came up for me using the Aero theme but not liking the light grey text. I set the foreground and background text color this way, but a buddy on Meebo said she couldn't see any text. I then changed the text color to white by changing the GTK theme file (unnecessarily tricky, if you ask me and is what really inspired this ticket). I later used Meebo to find out that Georgia (or whatever the conversation font is) is still transmitted even if "font face" is unchecked in the Font drop-down list. This might be a separate bug, but it makes sense to me to include it in this issue, because the effect for the user is still confusion on setting the font formatting.

The GTK+ Theme Control plugin controls the default font used in the conversation history area when a message does not specify a font of its own, it is only and exactly the 'font' gtkrc setting applied only to the history area. The name and explanation of the plugin was designed to make it clear what it was setting, as was the fact that the plugin allows you to write the settings to a file which can be examined.

Sorry, I don't understand this. I think it makes sense to combine all font settings into one pane. The fact that they're spanned onto plugins is taxing on the user. I shouldn't have to even understand how GTK themes work to set formatting preferences in Pidgin.

The Font dropdown is just for that buddy and only until reset, which is exactly how it works in every other application anyone will ever have used. Both other IM applications and word processors work exactly this way. I find it unlikely that this will have confused anyone and, in fact, can not recall ever hearing anyone express confusion about it.

This is kind of an enhancement, that is true. For my buddy with Meebo, it might be helpful to set formatting preferences just for that buddy. In retrospect, this point seems quite minor and not worth including compared to my other points.

The Conversation Colors plugin could likely stand to be made a little more clear, and were I to have my way we would likely just drop it altogether as I personally don't like it much and have seen it cause a number of font, color, etc. annoyances for a number of people.

Pidgin level preferences to override or control or manipulate GTK+ theme settings are incredibly unlikely to make it into pidgin as they are in general really not a good idea. The only reason the GTK+ Theme Control plugin exists is because the GTK+ theme documentation is generally lacking and the only reason I wrote it at all was because I was going to include the ability to write the settings out to a file in the hopes of people being able to see the file and copy/understand it. I will strongly argue against any addition of random GTK+ theme setting controls into pidgin (and have done so on more than one occasion).

Again, I don't think users care to learn anything about GTK+ theme settings. I think users are more inclined to set preferences for the specific application; i.e., Pidgin. I don't even use another GTK app.

Similarly, message level formatting options do not belong in pidgin as preferences, if these were to happen at all they would be done at the gtkrc level via gtkimhtml (the text rendering widget we currently use) setting up the right GTK+ properties/settings or by our moving to a more feature complete text rendering widget (like the GTK+ port of WebKit) and the use of message styles/themes there.

Sorry, I don't understand the implications of this for the user. Most of my issues are with the interface and not with the mechanisms.

I hope I didn't come across sounding too harsh, that was not my intent, I only wanted to indicate that I feel your proposal makes the pidgin font settings more complicated, harder to understand and work out correctly, and makes it more difficult to work correctly with GTK+ and GTK+ themes rather than unifying the (potentially conflicting) font configuration interfaces that currently exists.

I believe controls that make sense to go together should be combined in the interface, even if some effect GTK+ themes and others Pidgin itself behind the scenes.

Both suggestions on how to make the existing options more readily clear and/or ways to simplify the settings we currently are more than welcome.

I hope my feedback is useful. I spent a lot of time writing it, so I hope it wasn't totally in vain.

comment:5 Changed 9 years ago by irv

I'm starting to think that my proposal might only make sense for a typical Windows user. I still don't really understand what GTK+ is, but if it's the system for GNOME, or more universal on a Linux system than on a typical Windows system. Maybe this should be considered as a Windows-specific change. Would that address your issue with incorporating font formatting settings into Pidgin itself, deryni?

comment:6 Changed 9 years ago by deryni

  • Milestone set to Patches welcome

Windows *does* provide system level font settings, most people just never mess with them because Windows doesn't encourage you to do so and most applications allow you to override their font settings specifically (well at least in the realm of IM applications if not all applications). I think it is this expectation that is causing some of your confusion and some of your requests. pidgin (and well-behaved linux applications in general) support per-application font settings but don't expose such settings themselves. Generally, there are system-wide (or more accurately toolkit-wide) settings and the same system can be used to configure per-application, per-widget, etc. settings. It is this difference that contributes to the types and locations of options that pidgin presents in the interface.

Personally, I think more people should know how to modify their system configuration settings and the lack of useful GTK+ theme configuration utilities is a problem. The Gnome and KDE people have solved this configuration issue for the most part for people who use those environments, those people on linux who don't and those people on Windows unfortunately have not had the same attention paid to them.

I'm setting this ticket to the 'Patches welcome' milestone hoping that someone who wants to make this better will come up with something that can work and will fit with both your requests and the pidgin idea of what belongs and what doesn't. I don't have much more to add to this myself unfortunately.

comment:7 Changed 9 years ago by asbjornu

I think there are two rather completely issues being discussed here:

  • The font used by the Pidgin chrome
  • The font used inside conversation windows

While I understand how GTK+ theming has control of the former, I don't quite understand why it has to control the latter. The latter should obviously be in complete control by the user. I really hope someone can come up with a better way to set this in a unified place in Pidgin.

While I understand why Pidgin really can't change GTK+'s default font behaviour, I also think it's quite obvious that GTK+ should respect the environment on which it is installed and not set the font size to something that doesn't adhere to the overall font settings in the operating system (mainly Windows). When the default Windows XP theme has a font size of at least 2 pixels more than GTK+ on the same system, something's wrong.

comment:8 Changed 9 years ago by deryni

GTK+ controls the fonts used inside the conversation windows because GTK+ draws the conversation windows. pidgin really shouldn't be in the business of picking and choosing fonts, that should be up to the user at the System and Toolkit level (per-application control at the toolkit level even). If you are using the MS-Windows theme than GTK+ does in fact try to make itself match the currently selected Windows theme settings (if that is not working or working incorrectly that is more properly something that should be taken up with the GTK+ Windows theme folks).

comment:9 Changed 7 years ago by deryni

  • Owner set to deryni
Note: See TracTickets for help on using tickets.
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!