Opened 2 years ago

Last modified 2 years ago

#18229 new enhancement

Add "Restart Desktop" button to Appearance prefs

Reported by: humdinger Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: Preferences/Appearance Version: R1/beta4
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

Changing font settings only show for applications that were started after the change (besides the window labels' bold font). Restarting is easy for 'normal' applications, but re-starting Tracker and Deskbar is not as straight forward for the 'normal' users.

Should we provide a button to "Restart Desktop" in the Appearance panel that becomes enabled if the font settings are changed? If so, should it be in the Fonts tab only, or at the bottom together with the Defaults and Revert buttons?

Should we also add a note that:

Applications need to be re-started to use changed font settings.

Change History (11)

comment:1 by Starcrasher, 2 years ago

If it is not possible to fix live updating, I guess that it would be the best solution. Another could be to restart Desktop systematically when users quit Appearances if fonts have been modified. Anyway a message will be needed.

comment:2 by waddlesplash, 2 years ago

IMO we should work on live-updating fonts, instead, the same way colors were.

comment:3 by humdinger, 2 years ago

Most definitely agreed on the live-updating. I was under the impression that this was anything but trivial, given the needed re-layouting of everything. For example, an app does something like:

float width = StringWidth("Now, that would be cool!");

When you change the font size, "width" is too small and has no way of knowing...

comment:4 by waddlesplash, 2 years ago

The number of applications which do StringWidth calculations in the constructor is small and decreasing; most of them do it in Draw() functions. The Layout API should remove the need to perform such raw computations directly, most of the time.

comment:5 by humdinger, 2 years ago

I hope you're right and await your patch. :) Seriously, if we can make work with Tracker and Deskbar and many of the apps around, that would be great. The rest - probably BeOS hold-outs - will just continue to need to be restarted.

comment:6 by pulkomandy, 2 years ago

The Locale preferences automatically restarts Tracker and Deskbar when enabling or disabling "translate application names" and changing some other settings, so that's also an option.

No need for a button and a manual operation, the preferences offers to do that in a BAlert when needed.

comment:7 by humdinger, 2 years ago

With the Locale prefs it's a bit more straight forward: The user ticks a checkmark and Tracker&Deskbar get restarted after showing a BAlert. We cannot restart them here, whenever a spinner is in/decreased. So, do it automatically when Appearance is closed as Starcrasher suggested?
An additional BAlert may be too annoying.

Restarting Tracker&Deskbar isn't very disrupting. It's fast, open windows and their positions are re-instated. The only thing I can think of is that the "Find" panel isn't restored, if the user happens to construct a query while restarting Tracker&Deskbar.

Last edited 2 years ago by humdinger (previous) (diff)

comment:8 by pulkomandy, 2 years ago

The only thing I can think of is that the "Find" panel isn't restored, if the user happens to construct a query while restarting Tracker&Deskbar.

Sounds like a bug that should be fixed, or at least an good enhancement idea.

So, do it automatically when Appearance is closed as Starcrasher suggested?

Yes, that's the second best option if live update can't be done.

comment:9 by xoblite, 2 years ago

As I am currently working on bigger updates to both Appearance and Deskbar, this is one of the things I've looked into a bit, and I am with waddlesplash here - "IMO we should work on live-updating fonts, instead, the same way colors were".

For colors that is the B_COLORS_UPDATED message, and the foundations and propagation thereof seems to be fairly well in place; applications just need to be updated to recognize it. For fonts though, there is a B_FONTS_UPDATED message to, but here the foundations and propagation thereof is still lacking in places. I have some ideas on this that I will test out during the next few days, but one reflection is perhaps that B_COLORS_UPDATED and B_FONTS_UPDATED is currently handled in very different ways in the core; maybe this is something to be discussed later. Will keep you posted wrt any findings as they appear.

comment:10 by xoblite, 2 years ago

PS. The Appearance update I'm currently working on will also address #15513 and #12994. Will check if #3677 and #5800 could/should be considered as well.

comment:11 by nephele, 2 years ago

The consensus on #15513 seems to be that it should not be done at all.

Live updating colors works just fine, not sure what you are trying to do there.

Updating fonts is more work because it requires relayouting views.

Note: See TracTickets for help on using tickets.