The properties:
System.setProperty("awt.useSystemAAFontSettings", "on");
System.setProperty("swing.aatext", "true");
actually works on Linux (where the hint helps X11 to enable antialiased
rendering) but makes things worse on Windows where the outcome is exactly
the opposite (anti-alias is disabled).
Previously those settings had no effect because they were executed
*after* the initialization of the graphics. This is no more true
after the merge of #5578, that moved the graphics initialization
after commmand line parsing and consequently revealed the weird
behaviour on windows.
Fix#5750
Fixes#5401
The bug was introduced by 982d4f3f, when DiscourseFormat(Editor, bool html) declarations were swapped. The contextual/right click menu in EditorTab already behaves correctly.
Previously it was used to prevent the Editor from being displayed
when running in command-line mode. Now the Editor is not created at
all, so this parameter is useless.
This is also confirmed by the remaining calls to `handleOpen` that
all have the parameter set to `true`.
Move the initialization of Editor into the GUI section of the big
if-then-elseif chain. This actually breaks cases for Verify and
Upload that uses Editor to access core functions.
This will be fixed in next commits.
This commit makes this changes:
- SplashScreenHelper is now local in Base constructor
- if SplashScreenHelper is instantiated with a null SplashScreen
instance then it outputs progress in console and avoid to make
calls to Swing toolkit
- The parsing of command line arguments is anticipated so we can
determine if we are in command line or GUI mode early and setup
objects that produces output to not use graphics toolkits.
- In this case the SplashScreenHelper is initialized with a real
splashscreen only if we are in GUI mode
Previously it was selected always the last tab because the action
sequence was:
- create the new tab (in the last position)
- select the new tab index (last)
- sort the tabs (the new tab is now in the middle but the selected
is always the last)
instead the correct action sequence is
- create the new tab (in the last position)
- sort the tabs (now the new tab is in the middle)
- select the new tab index (now the correct index is selected)
The snippet:
boolean wrapNeeded = false;
if (wrap && nextIndex == -1) {
// if wrapping, a second chance is ok, start from the end
wrapNeeded = true;
}
Can be moved inside the `if (nextIndex == -1)` that follows, this way:
if (nextIndex == -1) {
boolean wrapNeeded = false;
if (wrap) {
// if wrapping, a second chance is ok, start from the end
wrapNeeded = true;
}
[...CUT...]
if (wrapNeeded) {
nextIndex = backwards ? text.lastIndexOf(search) : text.indexOf(search, 0);
}
}
but since `wrapNeeded` is used only at the very end of the `if` statement
we can move it forward:
if (nextIndex == -1) {
[...CUT...]
boolean wrapNeeded = false;
if (wrap) {
// if wrapping, a second chance is ok, start from the end
wrapNeeded = true;
}
if (wrapNeeded) {
nextIndex = backwards ? text.lastIndexOf(search) : text.indexOf(search, 0);
}
}
and finally simplify it by removing `wrapNeeded` altogether:
if (nextIndex == -1) {
[...CUT...]
if (wrap) {
nextIndex = backwards ? text.lastIndexOf(search) : text.indexOf(search, 0);
}
}
The snippet:
boolean wrapNeeded = false;
if (wrap && nextIndex == -1) {
// if wrapping, a second chance is ok, start from the end
wrapNeeded = true;
}
is present on both sides of the `if` statement so it can be factored out.