author | Petr Sumbera <petr.sumbera@oracle.com> |
Thu, 05 May 2016 07:38:15 -0700 | |
changeset 5994 | af9925efa591 |
permissions | -rw-r--r-- |
5994
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
1 |
Oficial fixes to make Gnuplot work with wxWidgets 3.0. |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
2 |
Can be removed with Gnuplot update to version 5.0 or later. |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
3 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
4 |
https://github.com/gnuplot/gnuplot/commit/a275a85b335fb358cea09d7e64204caca3193e1a |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
5 |
https://github.com/gnuplot/gnuplot/commit/632f86b64659b9ad14bfae1c850ce268f0d39352 |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
6 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
7 |
--- gnuplot-4.6.0/src/wxterminal/wxt_gui.h |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
8 |
+++ gnuplot-4.6.0/src/wxterminal/wxt_gui.h |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
9 |
@@ -203,6 +203,8 @@ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
10 |
* ====================================================================*/ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
11 |
|
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
12 |
#ifdef WXT_MULTITHREADED |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
13 |
+#include <X11/Xlib.h> /* Magic fix for linking against wxgtk3.0 */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
14 |
+ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
15 |
/* thread class, where the gui loop runs. |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
16 |
* Not needed with Windows, where the main loop |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
17 |
* already processes the gui messages */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
18 |
@@ -234,6 +236,10 @@ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
19 |
class wxtApp : public wxApp |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
20 |
{ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
21 |
public: |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
22 |
+#ifdef WXT_MULTITHREADED |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
23 |
+ /* Magic fix needed by wxgtk3.0 */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
24 |
+ wxtApp() : wxApp() { XInitThreads(); } |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
25 |
+#endif |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
26 |
/* This one is called just after wxWidgets initialization */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
27 |
bool OnInit(); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
28 |
/* cleanup on exit */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
29 |
--- gnuplot-4.6.0/src/wxterminal/wxt_gui.cpp |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
30 |
+++ gnuplot-4.6.0/src/wxterminal/wxt_gui.cpp |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
31 |
@@ -2493,6 +2498,20 @@ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
32 |
/* refresh the plot by (re)processing the plot commands list */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
33 |
void wxtPanel::wxt_cairo_refresh() |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
34 |
{ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
35 |
+ /* This check may prevent the assert+die behavior seen with wxgtk3.0 */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
36 |
+ /* Symptom: |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
37 |
+ ./src/gtk/dcclient.cpp(2043): assert "m_window" failed in DoGetSize(): GetSize() doesn't work without window [in thread 7fb21f386700] |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
38 |
+ Call stack: |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
39 |
+ [00] wxOnAssert(char const*, int, char const*, char const*, wchar_t const*) |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
40 |
+ [01] wxClientDCImpl::DoGetSize(int*, int*) const |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
41 |
+ [02] wxBufferedDC::UnMask() |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
42 |
+ wxwidgets documentation to the contrary, panel->IsShownOnScreen() is unreliable |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
43 |
+ */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
44 |
+ if (!wxt_current_window) { |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
45 |
+ FPRINTF((stderr,"wxt_cairo_refresh called before window exists\n")); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
46 |
+ return; |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
47 |
+ } |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
48 |
+ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
49 |
/* Clear background. */ |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
50 |
gp_cairo_solid_background(&plot); |
af9925efa591
23094118 Upgrade wxwidgets to 3.0.2 or newer
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff
changeset
|
51 |