<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to patches</title><link href="https://sourceforge.net/p/foxgui/patches/" rel="alternate"/><link href="https://sourceforge.net/p/foxgui/patches/feed.atom" rel="self"/><id>https://sourceforge.net/p/foxgui/patches/</id><updated>2022-12-04T15:59:49.427000Z</updated><subtitle>Recent changes to patches</subtitle><entry><title>Fixes for 32-bit Windows Builds</title><link href="https://sourceforge.net/p/foxgui/patches/15/" rel="alternate"/><published>2022-12-04T15:59:49.427000Z</published><updated>2022-12-04T15:59:49.427000Z</updated><author><name>Max Barraclough</name><uri>https://sourceforge.net/u/maxbarraclough/</uri></author><id>https://sourceforge.net16850c69a6a3a63c26d6b42c51d1e21a6976c644</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;For FOX 1.7.81 and Visual Studio 2019.&lt;/p&gt;
&lt;p&gt;The 3 patches, in combination with the instructions in the .txt file to update the Visual Studio project configurations, get x86 (32-bit) Windows builds working again.&lt;/p&gt;
&lt;p&gt;More specifically, the instructions are enough to build foxdll and to build adie against foxdll.&lt;/p&gt;
&lt;p&gt;The changes to FXAtomic.cpp have not been tested.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#14 Consistently use '_WIN32' macro, never 'WIN32'</title><link href="https://sourceforge.net/p/foxgui/patches/14/?limit=25#5058" rel="alternate"/><published>2022-12-04T15:37:21.140000Z</published><updated>2022-12-04T15:37:21.140000Z</updated><author><name>Max Barraclough</name><uri>https://sourceforge.net/u/maxbarraclough/</uri></author><id>https://sourceforge.net06e15d1882467ee1256b0f8b4f0fee1806f370c1</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;This patch is for FOX 1.7.81.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Consistently use '_WIN32' macro, never 'WIN32'</title><link href="https://sourceforge.net/p/foxgui/patches/14/" rel="alternate"/><published>2022-12-04T15:02:30.709000Z</published><updated>2022-12-04T15:02:30.709000Z</updated><author><name>Max Barraclough</name><uri>https://sourceforge.net/u/maxbarraclough/</uri></author><id>https://sourceforge.net960e20d00e9a99fc63556be52b847eba119441b4</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;This patch replaces every reference to the 'WIN32' macro with a reference to the '_WIN32' macro. Previously, both WIN32 and _WIN32 were used. _WIN32 is always defined by MSVC itself, unlike WIN32.&lt;/p&gt;
&lt;p&gt;This change obviates the need for the Windows build configuration to define the WIN32 macro.&lt;/p&gt;
&lt;p&gt;See also:&lt;br/&gt;
&lt;a href="https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros" rel="nofollow"&gt;https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#12 Windows Build Fixes re. Atomics</title><link href="https://sourceforge.net/p/foxgui/patches/12/?limit=25#26b0" rel="alternate"/><published>2022-11-20T17:53:08.611000Z</published><updated>2022-11-20T17:53:08.611000Z</updated><author><name>Max Barraclough</name><uri>https://sourceforge.net/u/maxbarraclough/</uri></author><id>https://sourceforge.netb5cfacd8d945fa5bd221ada99248590f2ef6a8c3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Inapplicable as of FOX 1.7.81 which includes a similar change, but uses '_InterlockedExchangeAdd64' rather than  '_InlineInterlockedAdd64'. &lt;span&gt;[0]&lt;/span&gt; &lt;span&gt;[1]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;[0]&lt;/span&gt; &lt;a href="https://learn.microsoft.com/en-us/cpp/intrinsics/interlockedexchangeadd-intrinsic-functions" rel="nofollow"&gt;https://learn.microsoft.com/en-us/cpp/intrinsics/interlockedexchangeadd-intrinsic-functions&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;[1]&lt;/span&gt; &lt;a href="https://learn.microsoft.com/en-us/windows/win32/api/winnt/nf-winnt-interlockedexchangeadd64" rel="nofollow"&gt;https://learn.microsoft.com/en-us/windows/win32/api/winnt/nf-winnt-interlockedexchangeadd64&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Conditionally suppress mouse-movement propagation</title><link href="https://sourceforge.net/p/foxgui/patches/13/" rel="alternate"/><published>2022-11-13T21:54:14.485000Z</published><updated>2022-11-13T21:54:14.485000Z</updated><author><name>Max Barraclough</name><uri>https://sourceforge.net/u/maxbarraclough/</uri></author><id>https://sourceforge.net51659d220cb03cde8873db40a6dce3cdedc0df2c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;(For FOX 1.7.80.)&lt;/p&gt;
&lt;p&gt;In most GUI toolkits, if a modal window is shown, then if the user should mouse-over widgets of background windows (i.e. windows other than the modal one) then those widgets will not visually 'pop' as they usually would. (FXMenuTitle widgets are a good example.) Currently, FOX does not behave this way, and those widgets 'pop' as usual.&lt;br/&gt;
I had a go at bringing FOX into line with other toolkits in this regard.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Testing&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I've tested my changes on Windows and on Kubuntu by:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Launch Adie&lt;/li&gt;
&lt;li&gt;Hover mouse of FXMenuTitle widgets of the main Adie window, ensuring normal response (they should visually 'pop' when hovered over)&lt;/li&gt;
&lt;li&gt;Bring up the About dialog (&lt;em&gt;Help&lt;/em&gt; &amp;gt; &lt;em&gt;About Adie...&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Hover the mouse over the FXMenuTitle widgets of the main Adie window&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Expected outcome of Stage 4, prior to changes: the FXMenuTitle widgets 'pop' when hovered over.&lt;/p&gt;
&lt;p&gt;Expected outcome of Stage 4, after applying changes: the FXMenuTitle widgets will not respond when hovered over.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Windows Build Fixes re. Atomics</title><link href="https://sourceforge.net/p/foxgui/patches/12/" rel="alternate"/><published>2022-11-13T21:26:23.785000Z</published><updated>2022-11-13T21:26:23.785000Z</updated><author><name>Max Barraclough</name><uri>https://sourceforge.net/u/maxbarraclough/</uri></author><id>https://sourceforge.netd9e434b44778adaa284e54c16c5fa8bebe44910b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I'm using Windows 10 on x86-64, with Visual Studio Community 2019 version 16.11.15, targeting 64-bit builds.&lt;/p&gt;
&lt;p&gt;I had trouble building FOX on Windows:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;fox-1.7.80\lib\FXAtomic.cpp(268,10): error C3861: '_InterlockedAdd64': identifier not found
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The fix was to replace these calls with calls to '_InlineInterlockedAdd64', following &lt;a class="" href="https://learn.microsoft.com/en-us/windows/win32/api/winnt/nf-winnt-_inlineinterlockedadd64" rel="nofollow"&gt;Microsoft documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;('InterlockedAdd64' also seemed to work, but unlike 'InlineInterlockedAdd64' it doesn't appear to be documented. Curiously I wasn't able to get 'InterlockedAdd' to resolve even if I &lt;code&gt;#include &amp;lt;intrin.h&amp;gt;&lt;/code&gt;, per &lt;a class="" href="https://learn.microsoft.com/en-us/cpp/intrinsics/interlockedadd-intrinsic-functions" rel="nofollow"&gt;further Microsoft documentation&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;I've not tested the atomics functionality after my change, I can only confirm that the build succeeds.&lt;br/&gt;
Also, I've not tested on any other Windows development environments, e.g. different version of Visual Studio.&lt;br/&gt;
I've also not tested 32-bit, I've not been able to get it to build (seemingly many different problems at play).&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>FIONREAD patch for OpenIndiana Hipster</title><link href="https://sourceforge.net/p/foxgui/patches/11/" rel="alternate"/><published>2018-10-01T02:59:24.915000Z</published><updated>2018-10-01T02:59:24.915000Z</updated><author><name>Jason Martin</name><uri>https://sourceforge.net/u/agrellum/</uri></author><id>https://sourceforge.net6ca1f7a9f15f6049be3c8d9ddc031f1c69f001e6</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gd"&gt;--- fox-1.6.57/src/FXGUISignal.cpp.~1~  Tue Apr  3 23:42:42 2018&lt;/span&gt;
&lt;span class="gi"&gt;+++ fox-1.6.57/src/FXGUISignal.cpp  Sat Jul 14 23:02:52 2018&lt;/span&gt;
&lt;span class="gu"&gt;@@ -45,6 +45,10 @@&lt;/span&gt;
 #endif
 #include "FXGUISignal.h"

&lt;span class="gi"&gt;+#ifdef __sun__&lt;/span&gt;
&lt;span class="gi"&gt;+   #include &amp;lt;sys/filio.h&amp;gt;      /* For FIONREAD */&lt;/span&gt;
&lt;span class="gi"&gt;+#endif&lt;/span&gt;
&lt;span class="gi"&gt;+&lt;/span&gt;
 /*
   Notes:
   - On UNIX, pipe will be closed on exec of child process; we don't want
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>renaming enum FXFont::X11 to RawX11</title><link href="https://sourceforge.net/p/foxgui/patches/10/" rel="alternate"/><published>2007-05-16T13:43:38Z</published><updated>2007-05-16T13:43:38Z</updated><author><name>Anders F Björklund</name><uri>https://sourceforge.net/u/afb/</uri></author><id>https://sourceforge.net8a8fcdff4270ed124256330521e736a1e5e888b8</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Renames X11 enum to RawX11, due to a macro conflict&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>workaround for Mach system header</title><link href="https://sourceforge.net/p/foxgui/patches/9/" rel="alternate"/><published>2007-05-16T13:42:11Z</published><updated>2007-05-16T13:42:11Z</updated><author><name>Anders F Björklund</name><uri>https://sourceforge.net/u/afb/</uri></author><id>https://sourceforge.net216242b3cda3dabbe04f6b7b532f8d2730d5fec4</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;enum POLICY_FIFO conflicts with a Mac OS X macro&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Universal Binary endianness</title><link href="https://sourceforge.net/p/foxgui/patches/8/" rel="alternate"/><published>2007-05-16T07:38:18Z</published><updated>2007-05-16T07:38:18Z</updated><author><name>Anders F Björklund</name><uri>https://sourceforge.net/u/afb/</uri></author><id>https://sourceforge.net9e8bca8b0b648d456311814eb52ab869a4b3ff82</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;The current fxver.h hardcodes the endianness to what the build system is using for the current target platform.&lt;/p&gt;
&lt;p&gt;This doesn't work with Universal Binaries, that use the same header for two architectures (PowerPC and Intel).&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>