180 Commits

Author SHA1 Message Date
Alex Shvartzkop
2b2b7d2232 Disconnect EDA_DRAW_PANEL_GAL::onShowEvent handler in dtor.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20754
2025-04-24 19:32:22 +03:00
Mike Williams
14a05de36a schematic editor: remove 10ms OnShow timer to reduce CPU load
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/20385
(cherry picked from commit a648fccbb34becf6e17e5dd37b97885f022defea)
2025-04-23 17:41:45 -04:00
Wayne Stambaugh
5c8f4697ca Common folder housekeeping part 1. 2025-01-12 12:06:45 -05:00
Seth Hillbrand
0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
Alex Shvartzkop
9a8ac13750 Fix GAL backend switch error string. 2024-12-31 04:14:10 +05:00
Marek Roszko
22d13546fb Some DisplayError -> DisplayErrorMessage 2024-12-20 19:28:30 -05:00
Alex Shvartzkop
55ca13e7cf Revert "Support hidpi in Cairo GAL canvas; performance improvements."
This reverts commit 8e90063258cb457f43db78334ba5bf52ad78e083.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19150
2024-12-02 22:44:20 +03:00
Mike Williams
53022ab347 mouse settings: add reverse zoom option
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18583
2024-09-23 17:09:44 +00:00
Seth Hillbrand
be2a52dd2b Avoid GL ctx deadlock
Allow non-drawing routines to access error messages without dealocking
the load
2024-09-06 16:00:49 -07:00
Alex Shvartzkop
a0bc8283d3 Show/hide scrollbars earlier to reduce flickering. 2024-07-03 16:57:21 +03:00
Jeff Young
0ca7a81181 Deferred redraw for netnames. 2024-06-12 17:20:20 +01:00
Alex Shvartzkop
8e90063258 Support hidpi in Cairo GAL canvas; performance improvements.
We now draw onto wxBitmap directly, reducing the amount of copying.
Also moves the bitmap blit into paint event handler.
Modifies ClearScreen to work universally between Cairo/OpenGL backends.
2024-06-08 12:51:27 +03:00
Alex Shvartzkop
e3e63fb1b8 Disable hidpi cursors on GTK and OSX.
wxCursor scale factors won't be supported before wx 3.3.
MSW doesn't scale cursors, so it works as expected there.
2024-05-28 16:25:01 +03:00
Seth Hillbrand
ab0426d620 Detect if HiDPI cursors are needed
HiDPI cursors are twice as large as regular cursors, allowing them to be
more easily seen on a HiDPI system

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16231
2024-05-26 07:51:15 -07:00
Marek Roszko
7dee29f70a Hackfix some cases the IME on windows locks up
Asking the IME to cancel when the canvas takes focus fixes the case where:

- Windows input lang set to Chinese
- Input mode set to english instead of chinese
- You spam the M key while launching a sch/pcb from the kicad.exe until the editor opens
- The windows would then normally be frozen
2024-05-25 13:25:10 -04:00
Wayne Stambaugh
795a9eea60 Coding policy fixes.
This is primarily to change all instances of wxLogDebug with wxLogTrace
so developers do not have to sift through debugging output that is always
dumped.  The only exception is for code blocks built in debug builds and
called on demand for dumping object states.
2024-05-23 07:59:45 -04:00
Alex Shvartzkop
16e3692e71 Build time optimizations. 2024-04-27 23:49:13 +03:00
Marek Roszko
7505fd0f37 Profile can live in core 2023-09-07 07:47:01 -04:00
Marek Roszko
67b031adab Painter base class should just live in gal instead of being in denial 2023-09-06 20:23:19 -04:00
Marek Roszko
a6a20bf8dc Evict the Pgm() dependency in GAL 2023-09-06 20:13:46 -04:00
Jeff Young
e6b0a6abca ADDED: lib tree previews.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2418
2023-09-02 23:30:22 +01:00
Seth Hillbrand
db8e15ce88 Require wxWidgets 3.2
Removes old defines and work arounds for earlier wx versions and adds a
CMake requirement to use at least 3.2 (or the minimum matching wxPython
version)
2023-08-23 22:02:56 +00:00
Alex Shvartzkop
176b308128 Update graphics error message, don't try drawing after. 2023-07-10 09:32:21 +05:00
Alex Shvartzkop
bad08f88a0 Restart drawing after switching backend to fallback. 2023-07-10 09:32:21 +05:00
Alex Shvartzkop
7b5e725b98 Improve GAL panel refresh logic.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15041
2023-07-03 02:15:05 +03:00
Alex Shvartzkop
940f92a44f GAL: improve redraw handling, allowing higher refresh rates.
minRefreshPeriod can't be set in SwitchBackend because OpenGL isn't
initialized yet.
2023-06-17 12:42:22 +03:00
Alex
df4fefeb20 Fix view shifting when infobar is shown. 2023-06-02 17:46:46 +03:00
Marek Roszko
5d93487607 Disable IME input on the gal canvas
Fixes #9719
2023-05-09 20:30:15 -04:00
Marek Roszko
bfad8bb0d5 Prevent VIEW::UpdateItems and onShowTimer from firing repaints if GAL did not complete init
This appears to be a possible event race on startup

Fixes sentry KICAD-10A
2023-04-11 22:09:05 -04:00
Jeff Young
357427d803 Graphical diff for board vs library footprints.
Fixes https://gitlab.com/kicad/code/kicad/issues/13736
2023-03-10 17:16:40 +00:00
Marek Roszko
aacc9746e3 Yeet the last of wxSize/wxPoint to stop leaking gdicmn everywhere 2023-02-18 22:57:18 -05:00
Marek Roszko
9647a22e50 Prevent another GAL crash on init due to psuedo-race
Fixes Sentry KICAD-98
2023-02-13 19:10:49 -05:00
Marek Roszko
58350b4521 Ensure gal is initialized before letting DoRepaint blowup spectacularly.
Maybe a fix for KICAD-6B
2023-02-13 07:18:07 -05:00
Jeff Young
4c63b4e061 Class name <-> file name sync. 2022-12-29 18:05:57 +00:00
Alex
4b1994e554 Don't update hidden scrollbars. 2022-11-18 00:33:22 +05:00
Alex
dcb131c20d Improve canvas responsiveness by better swap interval management. 2022-11-18 00:32:25 +05:00
Seth Hillbrand
519084546e Ensure dtor throws into catch block
Explicitly destruct the GAL context to get StopDrawing throws in the
proper try block

Fixes https://gitlab.com/kicad/code/kicad/issues/12117
2022-09-29 15:26:39 -07:00
aris-kimi
7bd8cfd7f9 Added common option to hide scrollbars
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9093
2022-09-13 22:15:27 +03:00
Jeff Young
895a8a8dbc Work around focus issues for status popups.
Autoscroll wasn't working on Mac because the status popup's panel
has the focus.  This *may* also fix a problem on MSW of the auto-scroll
not being cancel-able.

Fixes https://gitlab.com/kicad/code/kicad/issues/11425
2022-09-04 21:08:01 +01:00
Seth Hillbrand
ee8116e55f Protect against double-refresh
The wxtimer can fire multiple times and there exists the possiblity for
this to happen before the flags are properly set to prevent it.  This
creates a concurrency mutex to skip the EDA_DRAW_PANEL_GAL refresh if
one is already underway.

Fixes https://gitlab.com/kicad/code/kicad/issues/12094

(cherry picked from commit 39dd51490def9bd132cb248dfa6fe9cf9368c209)
2022-07-27 20:28:48 -07:00
Seth Hillbrand
86ac77258f Don't clear our mutex when drawing
The (lite) mutex protects DoRePaint() from reentry but this breaks if it
is cleared by a timer.

Fixes https://gitlab.com/kicad/code/kicad/issues/12003
2022-07-12 20:10:46 -07:00
Mike Williams
857990a883 Hierarchy: turn into a left side pane
Drop auto-closing option as well.
2022-06-02 21:56:17 +00:00
Marek Roszko
b123f7f35f Extra sanity to avoid a gal repaint when not initialized 2022-04-28 18:34:44 -04:00
Roberto Fernandez Bautista
1b6fe615e5 Don't lock OpenGL context twice
Use GAL_DRAWING_CONTEXT as this unlocks the context in its destructor,
so that when an exception is thrown inside the `try` block, it should
automatically unlock before we switch backend.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/10840
2022-02-13 21:09:54 +00:00
Alex
4c4089e836 Allow overlay scrolling on GTK, except for GAL canvases.
This prevents glitches when both scrollbars
are visible and scrolling to the end.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/10559

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9988
2022-01-31 18:45:47 +03:00
Jeff Young
09d0f6e17c Map zone layers before checking their visibility.
Fixes https://gitlab.com/kicad/code/kicad/issues/10509
2022-01-21 23:26:10 +00:00
Seth Hillbrand
c340760eaa Prevent unneeded fallback
Starting in be8327bd540686dbc59b3f885bb3ca8c6e5bf95b, 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

(cherry picked from commit 444801ada631b83666625e666d3fd424f6c01199)
2022-01-05 13:47:43 -08:00
Jon Evans
014bad7b28 Add profile counters for PCB mouse and paint events 2021-12-05 15:16:08 -05:00
Jon Evans
a205595404 PROF_COUNTER -> PROF_TIMER
I want to add an event counter, and this one is a timer
2021-12-05 14:25:37 -05:00
Tomasz Wlostowski
cdb214d43a DRAW_PANEL_GAL: remove unused profiling counter 2021-11-29 23:30:10 +01:00