components/gnuplot/patches/wxWidgets3.patch
author Petr Sumbera <petr.sumbera@oracle.com>
Thu, 05 May 2016 07:38:15 -0700
changeset 5994 af9925efa591
permissions -rw-r--r--
23094118 Upgrade wxwidgets to 3.0.2 or newer
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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