On some Linux desktops, we get extra icons in the application dock.
This happens because the dock doesn't know the "class" of the
application. We need to add StartupWMClass=xxx lines, where xxx is
the name associated with the application.
This patch addresses the following issue:
https://gitlab.com/kicad/packaging/kicad-ubuntu-builder/kicad-daily-package/-/issues/30
While it was written against Ubuntu, it also affects Fedora, and
probably other Linux systems too.
Rather than skipping our endEdit() call in libedit, we need to
parameterize whether we want the shape open/closed. Closed will remove
the last segment if it lands on the first point. We don't want that
but we do want to remove the last point if it duplicates the second to
last (in the case of double-clicking)
Fixes https://gitlab.com/kicad/code/kicad/issues/10334
It is too easy to accidentally hide your zones and the 'A' hotkey is
intuitively mapped to Add Footprint, to match Add Symbol in eeschema.
This won't change current hotkey customizations but will help prevent
future user error. Users can still map the action to a hotkey if the
new toggle is useful to their workflow
Mesa does not support adaptive swapping but will sometimes report that
it does. This prevents Mesa drivers from testing (and segfaulting) the
limits of their call
Fixes https://gitlab.com/kicad/code/kicad/issues/10069
A long-standing issue with multiple workarounds
(https://gitlab.com/kicad/code/kicad/-/issues/1877) prevented eeschema
printouts with multiple images or images in both the worksheet and the
schematic.
We worked around this by ordering the bitmap printing to be the first
step in the printing process. This partially worked but didn't get
everything correct. The primary difficulty in debugging this was that
the wxPrintPreview that we generate looked correct. Only the actual
printout was incorrect.
The fix is to explicitly clip bitmap drawing to the bitmap area,
regardless of how large the bitmap is.
SHAPE_LINE_CHAIN will, by default, remove duplicate points when
appending. We don't want to do this when constructing our polygons in
symbol editor, so we need to explicitly call the routine without
deduplication
Fixes https://gitlab.com/kicad/code/kicad/issues/10289
When leaving the main point editor loop, we need to ensure that the edit
point is cleared as well. This is usually cleared by a ClearEvent call
but in case this is missed, we need to ensure that other tools are not
caught out
Fixes https://gitlab.com/kicad/code/kicad/issues/10288
wxSafeYield() is not "safe". Pending actions may include deletion of
the currently active class. This will cause crashes when exiting. If
needed for specific behaviors, we should use wxSafeYieldFor( flag ) with
the appropriate events specified rather than a general yield which can
cause more problems
s_SettingsManager is not always initialized when the WriteDRCReport is
run. We should first attempt to extract the project from the actual
board being checked. Failing that, we fall back to the static settings manager and then exit if we don't have a project associated.
Fixes https://gitlab.com/kicad/code/kicad/issues/10221
Checking for the existence of the call only validated that our header
defined the value, not that the video card/driver supported the call.
We query the extensions string directly to check for support. This
should fix both the X11 and virtualization issues (potentially other
crashes with older video cards as well)
Fixes https://gitlab.com/kicad/code/kicad/issues/8944
Refresh event changes focus (on GTK). We fix this by storing the
existing insertion point in the text box, refocusing and restoring the
text position
Fixes https://gitlab.com/kicad/code/kicad/issues/10029
Undo/Redo can change the symbol referenced by the symbol drawing tool.
This updates the current symbol before important steps to keep the
system synced
Fixes https://gitlab.com/kicad/code/kicad/issues/10125
Starting in be8327bd54, we assume that all
exceptions in DoRePaint() are caused by OpenGL. But many calls in
UpdateItems() will throw if there are internal errors such as
std::out_of_range. Here, we catch those errors and simply skip ahead
rather than falling back to Cairo