(this function can be called repeatedly while the work area doesn't
change any further)
(cherry picked from commit fd78a25a7c0b307da32c7cd805ce9f101160610a)
tabBarClicked() should really only reset focus if a click in a different
TabBarGroup happened. And no need to issue workAreaChanged() again.
This has lead to extra and erroneous focus changes (see #12954)
(cherry picked from commit 026c4bd726f36623772dc152740f709ce9972415)
Add
- Close Other Tabs
- Close Tabs to Left/Right
- Move Tab to Start/End
- Show Enclosing Folder
to the tabs context menus.
Fix for bug #11963
(cherry picked from commit a114f12868f8b48b9507aa22bf4156af0062ac97)
Toolbars are now locked by default. Unlocked state should be saved
by Qt as a session variable.
Patch from Daniel.
(cherry picked from commit 42a8463aab6100e8209caa8cd137d3c500623729)
The LFUN buffer-reset-export states to start afresh the export for the
next run, but in fact, the boolean was never reset, so that this was
done for all subsequent runs unless the buffer had been closed and
reopened.
Now the lfun does what it states and only acts on the next pass.
(cherry picked from commit e1cb15ee5d9377cef6e3683a6d0bb68eb9b379c1)
When a buffer is reloaded, its content may remain the same, but the
memory allocation is new, so that the inset pointers in cursors are
now wrong. This requires to sanitize the cursors held by the buffer
views.
Before the biginset branch, some full metrics computation call that is
now removed probably did that as a side effect. Now we have to be more
precise.
To this effect, introduce WorkAreaManager::sanitizeCursors() and use
it in Buffer::reload().
(cherry picked from commit c1fd622c51752d790576600f5911813ff8dac3fa)
This avoids code with position/ascent/descent that is difficult to follow.
No change in function intended.
(cherry picked from commit 0b6105b9245350e428c73deee88af2cd7c0d4732)
This is used by getDate/getTime, which actually should not be
InsetInfoParams methods, but functions in anonymous namespace.
(cherry picked from commit 51562ff37732f4949441bd8c2b55692b0719093a)
Qt::ImAnchorRectangle has only been introduced in Qt 5.7. Since it is
used to answer a query from the IM machinery, there is no need for
it with older Qt versions.
(cherry picked from commit 6260689fd552a5e83d2970dcfd4d5ba7e09443e7)
It is possible I have missed some shortcut conflicts, so please report
if you find any.
(cherry picked from commit f3a4602c4c1eca9bc79e7ba0b58395b79eafe9db)
The display was wrong when a backing store is in use (which is the case
with Wayland). To fix this in GuiWorkArea::Private::resetScreen(), the
pixelRatio is now stored as a double instead of an int.
Concerning support for QT_SCALE_FACTOR, the existing code was wrong
because this value is already taken into account in devicePixelRatioF
for Qt > 5.6 (no fractional scaling support before that). The
situation is as follows:
Qt < 5.6 5.6 <= Qt < 6 Qt 6
devicePixelRatio int(ratio) int(ratio) ratio
devicePixelRatioF N/A ratio ratio
So it is only between Qt 5.6 and Qt 6 that devicePixelRatioF() has to
be used instead of devicePixelRatio().
QGuiApplication::devicePixelRatio() does not have a 'F' version, it
always returns the real thing.
Fixes ticket #13039.
The problem is caused by removing temporary aux, etc, files while
we are in the process of exporting. As Jürgen suggested, we really
do not need to remove these files until we are preparing to export:
They are not used internally. So now we just schedule the removal
and do it then.
This new warning in gcc 13 is annoying because it happens in certain
parts of our code where it is harmless to pass a temporary variable to
a function that returns a reference.
This patch introduces a new pair of macros,
LYX_BEGIN_MUTE_GCC_WARNING(warn) and LYX_END_MUTE_GCC_WARNING, which
can be used to define a block of code where a given GCC warning is disabled.
The macros are no-ops with compilers other than gcc, although some
compilers that pretend to be GCC make be mis-detected. The worse that
can happen AFAIU is a bunch of warnings.
The macro relies on an intimidating set of for nested macros. The goal
of these macros is to build a nested string bit by bit. Here is how it
works:
PRAGMA_IGNORE(dangling-reference)
=> PRAGMA_IGNORE_1(-Wdangling-reference)
=> PRAGMA_IGNORE_2("-Wdangling-reference")
=> PRAGMA_IGNORE_3(GCC diagnostic ignored "-Wdangling-reference")
=> _Pragma("GCC diagnostic ignored \""-Wdangling-reference\"")
The next question is: what is _Pragma() good for? Well, it is a
version of #pragma that can be used in a macro.
And finally, what are those pragmas good for? The 'push' and 'pop'
ones make changes to warnings local. The 'ignored' ones allow
to disable some warnings. And disabling -Wpragmas ensures that we do
not have a warning if we try to disable a warning that is not
supported by the compiler.